CMDBuild Forum

Run sync operation from CSV file

Hi,

I enter the cmdbuild world last Friday so, in advance, i beg for apologize for my rookie doubt.

I want to implement a sync process for one or more class from a csv file and, based on what i read, this can be done implementing an Advance Connector, that will create a shell script that can be scheduled in cmdbuild.

So my doubt is where can i configure a scheduler that invokes the script that is stored on my file system?

Thanks

The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the “cron” tool).
CMDBuild Team

Previously Tecnoteca wrote:

The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Previously David wrote:

Previously Tecnoteca wrote:
The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Hi,

 

Further investigation led me to, what i think, is the problem.

 

The request generated by my client code doesn't include the Enconding Type for the nonce element. This is a sample of a request generated by my client application:

 

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
      <wsa:Action />
      <wsa:MessageID>urn:uuid:21fc4e86-e0a3-4d53-867a-80ed06f2e669</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://10.8.194.230:8080/cmdbuild/services/soap/Webservices</wsa:To>
      <wsse:Security env:mustUnderstand="true">
         <wsu:Timestamp wsu:Id="Timestamp-fd1fd639-a922-4c31-84b3-eeae1150863f">
            <wsu:Created>2016-08-22T14:38:15Z</wsu:Created>
            <wsu:Expires>2016-08-22T14:43:15Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="SecurityToken-1e83cb77-821d-4d90-a888-9375828145a4">
            <wsse:Username>***</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">***</wsse:Password>
            <wsse:Nonce>kTlZpacOjCxEeQ63ccOVxg==</wsse:Nonce>
            <wsu:Created>2016-08-22T14:38:14Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </env:Header>
   <soap:Body>
      <getCardMenuSchema xmlns="http://soap.services.cmdbuild.org" />
   </soap:Body>
</soap:Envelope>

So how can I change the request in order to provide the Encoding Type?

 

Thanks,

David Santos

Dear David,
 
this is a simple working request
 
   <soap:Header>
         <wsse:UsernameToken wsu:Id="UsernameToken-48197D1AB4F17C86F514719348740991">
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">5eb9V4lfeOLJvHUJ2L+JP1R5dBo=</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">e8OX3SOcRyOBM0i2G3mAfA==</wsse:Nonce>
            <wsu:Created>2016-08-23T06:47:54.098Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <soap1:getCardList>
         <soap1:className>Employee</soap1:className>
      </soap1:getCardList>
   </soap:Body>
</soap:Envelope>
 
with the EncodingType for Nonce.
 
Best regards.
 
-- CMDBuild Team
 
Previously David wrote:
Previously David wrote:
Previously Tecnoteca wrote:
The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Hi,

 

Further investigation led me to, what i think, is the problem.

 

The request generated by my client code doesn't include the Enconding Type for the nonce element. This is a sample of a request generated by my client application:

 

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
      <wsa:Action />
      <wsa:MessageID>urn:uuid:21fc4e86-e0a3-4d53-867a-80ed06f2e669</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://10.8.194.230:8080/cmdbuild/services/soap/Webservices</wsa:To>
      <wsse:Security env:mustUnderstand="true">
         <wsu:Timestamp wsu:Id="Timestamp-fd1fd639-a922-4c31-84b3-eeae1150863f">
            <wsu:Created>2016-08-22T14:38:15Z</wsu:Created>
            <wsu:Expires>2016-08-22T14:43:15Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="SecurityToken-1e83cb77-821d-4d90-a888-9375828145a4">
            <wsse:Username>***</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">***</wsse:Password>
            <wsse:Nonce>kTlZpacOjCxEeQ63ccOVxg==</wsse:Nonce>
            <wsu:Created>2016-08-22T14:38:14Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </env:Header>
   <soap:Body>
      <getCardMenuSchema xmlns="http://soap.services.cmdbuild.org" />
   </soap:Body>
</soap:Envelope>

So how can I change the request in order to provide the Encoding Type?

 

Thanks,

David Santos

 

Previously Tecnoteca wrote:

Dear David,
 
this is a simple working request
 
   <soap:Header>
         <wsse:UsernameToken wsu:Id="UsernameToken-48197D1AB4F17C86F514719348740991">
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">5eb9V4lfeOLJvHUJ2L+JP1R5dBo=</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">e8OX3SOcRyOBM0i2G3mAfA==</wsse:Nonce>
            <wsu:Created>2016-08-23T06:47:54.098Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <soap1:getCardList>
         <soap1:className>Employee</soap1:className>
      </soap1:getCardList>
   </soap:Body>
</soap:Envelope>
 
with the EncodingType for Nonce.
 
Best regards.
 
-- CMDBuild Team
 
Previously David wrote:
Previously David wrote:
Previously Tecnoteca wrote:
The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Hi,

 

Further investigation led me to, what i think, is the problem.

 

The request generated by my client code doesn't include the Enconding Type for the nonce element. This is a sample of a request generated by my client application:

 

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
      <wsa:Action />
      <wsa:MessageID>urn:uuid:21fc4e86-e0a3-4d53-867a-80ed06f2e669</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://10.8.194.230:8080/cmdbuild/services/soap/Webservices</wsa:To>
      <wsse:Security env:mustUnderstand="true">
         <wsu:Timestamp wsu:Id="Timestamp-fd1fd639-a922-4c31-84b3-eeae1150863f">
            <wsu:Created>2016-08-22T14:38:15Z</wsu:Created>
            <wsu:Expires>2016-08-22T14:43:15Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="SecurityToken-1e83cb77-821d-4d90-a888-9375828145a4">
            <wsse:Username>***</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">***</wsse:Password>
            <wsse:Nonce>kTlZpacOjCxEeQ63ccOVxg==</wsse:Nonce>
            <wsu:Created>2016-08-22T14:38:14Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </env:Header>
   <soap:Body>
      <getCardMenuSchema xmlns="http://soap.services.cmdbuild.org" />
   </soap:Body>
</soap:Envelope>

So how can I change the request in order to provide the Encoding Type?

 

Thanks,

David Santos

 Hi,

Yes, through Soap UI, I was able to make the request but my problem is in my client application.

You don't have any example on how can i achieve that same request using visual basic or c# as programing language?

Thanks,

David Santos

 

Previously David wrote:

Previously Tecnoteca wrote:
Dear David,
 
this is a simple working request
 
   <soap:Header>
         <wsse:UsernameToken wsu:Id="UsernameToken-48197D1AB4F17C86F514719348740991">
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">5eb9V4lfeOLJvHUJ2L+JP1R5dBo=</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">e8OX3SOcRyOBM0i2G3mAfA==</wsse:Nonce>
            <wsu:Created>2016-08-23T06:47:54.098Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <soap1:getCardList>
         <soap1:className>Employee</soap1:className>
      </soap1:getCardList>
   </soap:Body>
</soap:Envelope>
 
with the EncodingType for Nonce.
 
Best regards.
 
-- CMDBuild Team
 
Previously David wrote:
Previously David wrote:
Previously Tecnoteca wrote:
The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Hi,

 

Further investigation led me to, what i think, is the problem.

 

The request generated by my client code doesn't include the Enconding Type for the nonce element. This is a sample of a request generated by my client application:

 

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
      <wsa:Action />
      <wsa:MessageID>urn:uuid:21fc4e86-e0a3-4d53-867a-80ed06f2e669</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://10.8.194.230:8080/cmdbuild/services/soap/Webservices</wsa:To>
      <wsse:Security env:mustUnderstand="true">
         <wsu:Timestamp wsu:Id="Timestamp-fd1fd639-a922-4c31-84b3-eeae1150863f">
            <wsu:Created>2016-08-22T14:38:15Z</wsu:Created>
            <wsu:Expires>2016-08-22T14:43:15Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="SecurityToken-1e83cb77-821d-4d90-a888-9375828145a4">
            <wsse:Username>***</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">***</wsse:Password>
            <wsse:Nonce>kTlZpacOjCxEeQ63ccOVxg==</wsse:Nonce>
            <wsu:Created>2016-08-22T14:38:14Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </env:Header>
   <soap:Body>
      <getCardMenuSchema xmlns="http://soap.services.cmdbuild.org" />
   </soap:Body>
</soap:Envelope>

So how can I change the request in order to provide the Encoding Type?

 

Thanks,

David Santos

 Hi,

Yes, through Soap UI, I was able to make the request but my problem is in my client application.

You don't have any example on how can i achieve that same request using visual basic or c# as programing language?

Thanks,

David Santos

 

Hi,

 

Could anyone provide any help on this matter?

 

Thanks,

David Santos

Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru
 
Previously David wrote:
Previously David wrote:
Previously Tecnoteca wrote:
Dear David,
 
this is a simple working request
 
   <soap:Header>
         <wsse:UsernameToken wsu:Id="UsernameToken-48197D1AB4F17C86F514719348740991">
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">5eb9V4lfeOLJvHUJ2L+JP1R5dBo=</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">e8OX3SOcRyOBM0i2G3mAfA==</wsse:Nonce>
            <wsu:Created>2016-08-23T06:47:54.098Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <soap1:getCardList>
         <soap1:className>Employee</soap1:className>
      </soap1:getCardList>
   </soap:Body>
</soap:Envelope>
 
with the EncodingType for Nonce.
 
Best regards.
 
-- CMDBuild Team
 
Previously David wrote:
Previously David wrote:
Previously Tecnoteca wrote:
The Advance Connector is a framework developed by Tecnoteca and not released in a public way (it comes to those who subscribe to the Subscription).
You may, however, write your own application that reads your CSV file and then synchronize the data in CMDBuild using its SOAP or REST webservice.
Then you can schedule your application through the system scheduler (in Linux, the "cron" tool).
CMDBuild Team

Hi,

First of all thanks of your response.

Yes, later i understood that to use the advance connector i have to subscribe your product so i try to implement a call to the web services that you provide in order to fulfill my purpose.

So now i'm kind of stuck in an error

                Caused by: org.apache.wss4j.common.ext.WSSecurityException: BSP:R4220: Any NONCE MUST specify an EncodingType attribute

I edit the
${cmdbuild_webapp}/webapps/cmdbuild/WEB-INF/classes/org/cmdbuild/soap/soapws-r1.xml to uncomment the following lines

                <entry key="ws-security.enable.nonce.cache" value="false" />
                <entry key="ws-security.enable.timestamp.cache" value="false" />

So i think the problem is one my client code, that do not include the nonce information.

So my question is how can I provide this in my client? I'm using vb as ma prograaming language.

Thanks,
David Santos

 

Hi,

 

Further investigation led me to, what i think, is the problem.

 

The request generated by my client code doesn't include the Enconding Type for the nonce element. This is a sample of a request generated by my client application:

 

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
      <wsa:Action />
      <wsa:MessageID>urn:uuid:21fc4e86-e0a3-4d53-867a-80ed06f2e669</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://10.8.194.230:8080/cmdbuild/services/soap/Webservices</wsa:To>
      <wsse:Security env:mustUnderstand="true">
         <wsu:Timestamp wsu:Id="Timestamp-fd1fd639-a922-4c31-84b3-eeae1150863f">
            <wsu:Created>2016-08-22T14:38:15Z</wsu:Created>
            <wsu:Expires>2016-08-22T14:43:15Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="SecurityToken-1e83cb77-821d-4d90-a888-9375828145a4">
            <wsse:Username>***</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">***</wsse:Password>
            <wsse:Nonce>kTlZpacOjCxEeQ63ccOVxg==</wsse:Nonce>
            <wsu:Created>2016-08-22T14:38:14Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </env:Header>
   <soap:Body>
      <getCardMenuSchema xmlns="http://soap.services.cmdbuild.org" />
   </soap:Body>
</soap:Envelope>

So how can I change the request in order to provide the Encoding Type?

 

Thanks,

David Santos

 Hi,

Yes, through Soap UI, I was able to make the request but my problem is in my client application.

You don't have any example on how can i achieve that same request using visual basic or c# as programing language?

Thanks,

David Santos

 

Hi,

 

Could anyone provide any help on this matter?

 

Thanks,

David Santos

 

Hi Herru,

 

Thanks for your suggestion.

 

Effectively by Rest, after some fight, I was able to connect and to do some request to cmdbuild.

 

Regarding the API method there is nothing to do in order to solve the problem?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru
 

 

Hello,
 
CMDBuild web service (SOAP and REST) provide method to search, add, modify, delete card. But for bulk data processing, I think it's easier by direct access to CMDBuild PostgreSQL DB.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

Thanks for your suggestion.

 

Effectively by Rest, after some fight, I was able to connect and to do some request to cmdbuild.

 

Regarding the API method there is nothing to do in order to solve the problem?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru
 

 

 

Hi Herru,

 

My purpose or my necessity is to have an ETL process built over the cmdbuild to allow the loading, update or delete of the information stored on the application.

 

If I go directly to the database I will not follow the logic defined on the application so i might get some errors, isn't that right?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello,
 
CMDBuild web service (SOAP and REST) provide method to search, add, modify, delete card. But for bulk data processing, I think it's easier by direct access to CMDBuild PostgreSQL DB.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

Thanks for your suggestion.

 

Effectively by Rest, after some fight, I was able to connect and to do some request to cmdbuild.

 

Regarding the API method there is nothing to do in order to solve the problem?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru
 

 

 

 

Hi David,
 
To do this, there are some approaches:
 
1. You can first prepare your data in a temporary table in CMDBuild or another JDBC supported database, then create basic connector in task manager from CMDBuild Administration module. Basic connector allow you to specify the frequency of sync porcess from temporary table to CMDBuild class. From my experience, I found issue in sync process if the data type not string (numeric, date, etc.). Unnecessary update will happen if data type not string, even if there is no changes. This lead to increment of history data every time the task run.
 
2. You can use CMDBuild SOAP/RESTful web service. You have to identify changes in your master table and update data in CMDBuild using web service.
 
3. You can access directly to CMDBuild DB (I'm not sure whether this is recomended by Tecnoteca or not :)). CMDBuild implement some trigger and function in PostgreSQL, to maintain data integrity and history. So, when you execute delete statement, it will won't delete anything. For deleting you need to run update statement to your class table, set the "Status" = 'N', but you need to delete the relation from Map* table and GIS table first. For update, you can simply run update statement to active card, PostgreSQL will backup the old card to history, so you will see there will be new data inserted with "Status" = 'U' when you do update. For insert, simple insert statement with "Status" = 'A' will do, PostgreSQL will generate new Id.
 
Those are my sugestion, but please do test and explore it yourself to make sure.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

My purpose or my necessity is to have an ETL process built over the cmdbuild to allow the loading, update or delete of the information stored on the application.

 

If I go directly to the database I will not follow the logic defined on the application so i might get some errors, isn't that right?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello,
 
CMDBuild web service (SOAP and REST) provide method to search, add, modify, delete card. But for bulk data processing, I think it's easier by direct access to CMDBuild PostgreSQL DB.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

Thanks for your suggestion.

 

Effectively by Rest, after some fight, I was able to connect and to do some request to cmdbuild.

 

Regarding the API method there is nothing to do in order to solve the problem?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru
 

 

 

 

 

HI Herru,

 

Once again thanks for your input.

 

I thing that only option 1 and 2 are viable so I'm already testing this two scenarios.

 

Both scenarios I was able to put them to work, at least as an example for each one and, due to the flexibility that provides the scenario 2 seems more interesting for me but I have 2 problems:

     - First of all, as i already talked about it on this thread, I wasn't able to put SOAP web service to work.

     - The second is related with the time that takes to sync a class. For instance I was loading a class via Rest web service and it takes around 3h to create 27k cards. There is anything that i can do to improve this performance?

 

One minor problem that I have, and that I already reply to another topic on this forum about that, is related with the update of on relation. I always get an error via Rest and i notice that via SOAP this operation isn't provided. This indicates that even via Rest we are not able to perform this kind of operation?

 

Best Regards,

David Santos

 

Previously Herru Windiarto wrote:
Hi David,
 
To do this, there are some approaches:
 
1. You can first prepare your data in a temporary table in CMDBuild or another JDBC supported database, then create basic connector in task manager from CMDBuild Administration module. Basic connector allow you to specify the frequency of sync porcess from temporary table to CMDBuild class. From my experience, I found issue in sync process if the data type not string (numeric, date, etc.). Unnecessary update will happen if data type not string, even if there is no changes. This lead to increment of history data every time the task run.
 
2. You can use CMDBuild SOAP/RESTful web service. You have to identify changes in your master table and update data in CMDBuild using web service.
 
3. You can access directly to CMDBuild DB (I'm not sure whether this is recomended by Tecnoteca or not :)). CMDBuild implement some trigger and function in PostgreSQL, to maintain data integrity and history. So, when you execute delete statement, it will won't delete anything. For deleting you need to run update statement to your class table, set the "Status" = 'N', but you need to delete the relation from Map* table and GIS table first. For update, you can simply run update statement to active card, PostgreSQL will backup the old card to history, so you will see there will be new data inserted with "Status" = 'U' when you do update. For insert, simple insert statement with "Status" = 'A' will do, PostgreSQL will generate new Id.
 
Those are my sugestion, but please do test and explore it yourself to make sure.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

My purpose or my necessity is to have an ETL process built over the cmdbuild to allow the loading, update or delete of the information stored on the application.

 

If I go directly to the database I will not follow the logic defined on the application so i might get some errors, isn't that right?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello,
 
CMDBuild web service (SOAP and REST) provide method to search, add, modify, delete card. But for bulk data processing, I think it's easier by direct access to CMDBuild PostgreSQL DB.
 
Regards,
Herru
 
Previously David wrote:

Hi Herru,

 

Thanks for your suggestion.

 

Effectively by Rest, after some fight, I was able to connect and to do some request to cmdbuild.

 

Regarding the API method there is nothing to do in order to solve the problem?

 

Thanks,

David Santos

 

Previously Herru Windiarto wrote:
Hello David,
 
Before moving further, maybe you can try RESTful client. For me, it's simpler and relatively faster.
 
Regards,
Herru