Sample code for 30+ languages & platforms
Visual FoxPro

Peoplevox SaveData

See more Peoplevox Examples

Demonstrates how to call the Peoplevox SaveData SOAP method. This example adds a new carrier (DHL) to the system.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSbSoapXml
LOCAL loSbCsvData
LOCAL lnNumReplacements
LOCAL loReq
LOCAL loHttp
LOCAL loResp
LOCAL loXmlResponse
LOCAL lcReference
LOCAL lcStatus

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

* Sends a POST that looks like this:

* 	POST /PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx HTTP/1.1
* 	Content-Type: text/xml;charset=UTF-8
* 	SOAPAction: http://www.peoplevox.net/SaveData
* 	Content-Length: (automatically computed and added by Chilkat)
* 	Host: qac.peoplevox.net
* 
* 	<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:peop="http://www.peoplevox.net/">
* 	   <soap:Header>
* 	      <peop:UserSessionCredentials>
* 	         <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId>
* 	         <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId>
* 	         <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId>
* 	      </peop:UserSessionCredentials>
* 	   </soap:Header>
*         <soap:Body>
*           <peop:SaveData>
*              <peop:saveRequest>
*                 <peop:TemplateName>Carriers</peop:TemplateName>
*                 <peop:CsvData>CSV_DATA</peop:CsvData>
*                 <peop:Action>0</peop:Action>
*              </peop:saveRequest>
*           </peop:SaveData>
*        </soap:Body>
* 	</soap:Envelope>
* 

* Notice that a UserId is needed here.  This is different than the username required for Peoplevox authentication.
*    The UserId for the admin account is 1.
*     
loSbSoapXml = CreateObject('Chilkat.StringBuilder')
loSbSoapXml.Append('<?xml version="1.0" encoding="utf-8"?>' + CHR(13) + CHR(10))
loSbSoapXml.Append('<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:peop="http://www.peoplevox.net/">' + CHR(13) + CHR(10))
loSbSoapXml.Append("   <soap:Header>" + CHR(13) + CHR(10))
loSbSoapXml.Append("      <peop:UserSessionCredentials>" + CHR(13) + CHR(10))
loSbSoapXml.Append("         <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId>" + CHR(13) + CHR(10))
loSbSoapXml.Append("         <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId>" + CHR(13) + CHR(10))
loSbSoapXml.Append("         <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId>" + CHR(13) + CHR(10))
loSbSoapXml.Append("      </peop:UserSessionCredentials>" + CHR(13) + CHR(10))
loSbSoapXml.Append("   </soap:Header>" + CHR(13) + CHR(10))
loSbSoapXml.Append("   <soap:Body>" + CHR(13) + CHR(10))
loSbSoapXml.Append("      <peop:SaveData>" + CHR(13) + CHR(10))
loSbSoapXml.Append("         <peop:saveRequest>" + CHR(13) + CHR(10))
loSbSoapXml.Append("            <peop:TemplateName>Carriers</peop:TemplateName>" + CHR(13) + CHR(10))
loSbSoapXml.Append("            <peop:CsvData>CSV_DATA</peop:CsvData>" + CHR(13) + CHR(10))
loSbSoapXml.Append("            <peop:Action>0</peop:Action>" + CHR(13) + CHR(10))
loSbSoapXml.Append("         </peop:saveRequest>" + CHR(13) + CHR(10))
loSbSoapXml.Append("      </peop:SaveData>" + CHR(13) + CHR(10))
loSbSoapXml.Append("   </soap:Body>" + CHR(13) + CHR(10))
loSbSoapXml.Append("</soap:Envelope>")

loSbCsvData = CreateObject('Chilkat.StringBuilder')
loSbCsvData.Append("Name,Reference" + CHR(13) + CHR(10))
loSbCsvData.Append("DHL,D0001")
lnNumReplacements = loSbSoapXml.Replace("CSV_DATA",loSbCsvData.GetAsString())

loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.SendCharset = 1
loReq.Charset = "utf-8"
loReq.AddHeader("Content-Type","text/xml")
loReq.AddHeader("SOAPAction","http://www.peoplevox.net/SaveData")
loReq.Path = "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx"
lnSuccess = loReq.LoadBodyFromString(loSbSoapXml.GetAsString(),"utf-8")

loHttp = CreateObject('Chilkat.Http')
loHttp.FollowRedirects = 1

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpSReq("qac.peoplevox.net",443,1,loReq,loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loSbSoapXml
    RELEASE loSbCsvData
    RELEASE loReq
    RELEASE loHttp
    RELEASE loResp
    CANCEL
ENDIF

* We should expect a 200 response if successful.
IF (loResp.StatusCode <> 200) THEN
    ? "Response StatusCode = " + STR(loResp.StatusCode)
    ? "Response StatusLine: " + loResp.StatusLine
    ? "Response Header:"
    ? loResp.Header
    ? loResp.BodyStr
    RELEASE loSbSoapXml
    RELEASE loSbCsvData
    RELEASE loReq
    RELEASE loHttp
    RELEASE loResp
    CANCEL
ENDIF

loXmlResponse = CreateObject('Chilkat.Xml')
lnSuccess = loXmlResponse.LoadXml(loResp.BodyStr)
? loXmlResponse.GetXml()

* A successful response is shown below.
* To parse a successful response:
lcReference = loXmlResponse.ChilkatPath("soap:Body|SaveDataResponse|SaveDataResult|Statuses|IntegrationStatusResponse|Reference|*")
? "Reference = " + lcReference
lcStatus = loXmlResponse.ChilkatPath("soap:Body|SaveDataResponse|SaveDataResult|Statuses|IntegrationStatusResponse|Status|*")
? "Status = " + lcStatus

* <?xml version="1.0" encoding="utf-8" ?>
* <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
*     <soap:Body>
*         <SaveDataResponse xmlns="http://www.peoplevox.net/">
*             <SaveDataResult>
*                 <ResponseId>0</ResponseId>
*                 <TotalCount>1</TotalCount>
*                 <Detail />
*                 <Statuses>
*                     <IntegrationStatusResponse>
*                         <Reference>D0001</Reference>
*                         <Status>Success</Status>
*                         <LineNo>0</LineNo>
*                     </IntegrationStatusResponse>
*                 </Statuses>
*                 <ImportingQueueId>0</ImportingQueueId>
*                 <SalesOrdersToDespatchIds />
*             </SaveDataResult>
*         </SaveDataResponse>
*     </soap:Body>
* </soap:Envelope>

RELEASE loSbSoapXml
RELEASE loSbCsvData
RELEASE loReq
RELEASE loHttp
RELEASE loResp
RELEASE loXmlResponse