Sample code for 30+ languages & platforms
DataFlex

Peoplevox WMS Export Data

See more HTTP Examples

Demonstrates how to export data from a Peoplevox Warehouse Management System (WMS) using the GetData. It can return up to 1000 records for each call. The page number and number of items per page parameters are used to repeat the same method to return pages of information.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSbSoapXml
    Variant vReq
    Handle hoReq
    Handle hoHttp
    Variant vResp
    Handle hoResp
    Handle hoXmlResponse
    String sDetail
    Handle hoCsv
    Integer i
    Integer iNumRows
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

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

    // --------------------------------------------------------------------------------
    // Also see Chilkat's Online WSDL Code Generator
    // to generate code and SOAP Request and Response XML for each operation in a WSDL.
    // --------------------------------------------------------------------------------

    // 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/GetData
    // 	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:GetData>
    // 	         <peop:getRequest>
    // 	            <peop:TemplateName>Item Types</peop:TemplateName>
    // 	            <peop:PageNo>1</peop:PageNo>
    // 	            <peop:ItemsPerPage>10</peop:ItemsPerPage>
    // 	            <peop:SearchClause>Name.Contains("T")</peop:SearchClause>
    // 	         </peop:getRequest>
    // 	      </peop:GetData>
    // 	   </soap:Body>
    // 	</soap:Envelope>
    // 

    // A few helpful notes about this request:
    // 1) 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.
    // 2) The sample data contains a TEST product with SKU/Code= "TEST". Search key is set to "T".
    //     
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbSoapXml
    If (Not(IsComObjectCreated(hoSbSoapXml))) Begin
        Send CreateComObject of hoSbSoapXml
    End
    Get ComAppend Of hoSbSoapXml '<?xml version="1.0" encoding="utf-8"?>' + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:peop="http://www.peoplevox.net/">' + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "   <soap:Header>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "      <peop:UserSessionCredentials>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "         <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "         <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "         <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "      </peop:UserSessionCredentials>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "   </soap:Header>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "   <soap:Body>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "      <peop:GetData>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "         <peop:getRequest>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "            <peop:TemplateName>Item Types</peop:TemplateName>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "            <peop:PageNo>1</peop:PageNo>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "            <peop:ItemsPerPage>10</peop:ItemsPerPage>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml '            <peop:SearchClause>Name.Contains("T")</peop:SearchClause>' + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "         </peop:getRequest>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "      </peop:GetData>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "   </soap:Body>" + (character(13)) + (character(10)) To iSuccess
    Get ComAppend Of hoSbSoapXml "</soap:Envelope>" To iSuccess

    Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
    If (Not(IsComObjectCreated(hoReq))) Begin
        Send CreateComObject of hoReq
    End
    Set ComHttpVerb Of hoReq To "POST"
    Set ComSendCharset Of hoReq To True
    Set ComCharset Of hoReq To "utf-8"
    Send ComAddHeader To hoReq "Content-Type" "text/xml"
    Send ComAddHeader To hoReq "SOAPAction" "http://www.peoplevox.net/GetData"
    Set ComPath Of hoReq To "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx"
    Get ComGetAsString Of hoSbSoapXml To sTemp1
    Get ComLoadBodyFromString Of hoReq sTemp1 "utf-8" To iSuccess

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End
    Set ComFollowRedirects Of hoHttp To True

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoReq to vReq
    Get pvComObject of hoResp to vResp
    Get ComHttpSReq Of hoHttp "qac.peoplevox.net" 443 True vReq vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // We should expect a 200 response if successful.
    Get ComStatusCode Of hoResp To iTemp1
    If (iTemp1 <> 200) Begin
        Get ComStatusCode Of hoResp To iTemp1
        Showln "Response StatusCode = " iTemp1
        Get ComStatusLine Of hoResp To sTemp1
        Showln "Response StatusLine: " sTemp1
        Showln "Response Header:"
        Get ComHeader Of hoResp To sTemp1
        Showln sTemp1
        Get ComBodyStr Of hoResp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatXml)) To hoXmlResponse
    If (Not(IsComObjectCreated(hoXmlResponse))) Begin
        Send CreateComObject of hoXmlResponse
    End
    Get ComBodyStr Of hoResp To sTemp1
    Get ComLoadXml Of hoXmlResponse sTemp1 To iSuccess
    Get ComGetXml Of hoXmlResponse To sTemp1
    Showln sTemp1

    // A sample response is shown below.  The following code loads the CSV into a Chilkat CSV object, and then demonstrates how to access the data from the CSV API.
    Get ComChilkatPath Of hoXmlResponse "soap:Body|GetDataResponse|GetDataResult|Detail|*" To sDetail

    Get Create (RefClass(cComChilkatCsv)) To hoCsv
    If (Not(IsComObjectCreated(hoCsv))) Begin
        Send CreateComObject of hoCsv
    End
    Set ComHasColumnNames Of hoCsv To True
    Get ComLoadFromString Of hoCsv sDetail To iSuccess

    Get ComNumRows Of hoCsv To iTemp1
    Showln "NumRows = " iTemp1
    Get ComNumColumns Of hoCsv To iTemp1
    Showln "NumColumns = " iTemp1

    // Iterate over the rows, getting the ItemCode, Name, and Barcode
    Move 0 To i
    Get ComNumRows Of hoCsv To iNumRows
    While (i < iNumRows)
        Get ComGetCellByName Of hoCsv i "ItemCode" To sTemp1
        Showln "ItemCode: " sTemp1
        Get ComGetCellByName Of hoCsv i "Name" To sTemp1
        Showln "Name: " sTemp1
        Get ComGetCellByName Of hoCsv i "Barcode" To sTemp1
        Showln "Barcode: " sTemp1
        Showln "-"
        Move (i + 1) To i
    Loop

    // <?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>
    //         <GetDataResponse xmlns="http://www.peoplevox.net/">
    //             <GetDataResult>
    //                 <ResponseId>0</ResponseId>
    //                 <TotalCount>7</TotalCount>
    //                 <Detail>"ItemCode","Name","Barcode","Description","ItemGroup","UnitOfMeasure","DefaultEconomicOrderQuantity","DefaultLeadTime","DefaultSuppliersPartNumber","HasSerialNumbers","UseManufacturersSerialNumber","ReorderPoint","PickPolicy","Traceability","ShelfLife","DefaultNumberItemsPerContainer","DefaultContainerType","DefaultNumberItemsPerOuterCase","DefaultNumberItemsPerInnerCase","BuyPrice","WholesalePrice","RetailPrice","Weight","WeightMeasure","Height","Width","Depth","DimensionMeasure","Tags","Attribute1","Attribute2","Attribute3","Attribute4","Attribute5","Attribute6","Attribute7","Attribute8","Attribute9","Attribute10","Attribute11","Attribute12","Attribute13","Attribute14","Attribute15","OnHand","Allocated","Available","POQuantityOutstanding","MinimumPickLocationQuantity","DefaultReplenishmentQuantity"
    // "B246","48 PACK TENNIS BALLS","503147002876","","Item group","EA","","","","False","False","0","","False","","288","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","9995","520","9475","0","0","0"
    // "BGG1411","Scan testing product","503147011937","","Group1","EA","","","","False","False","0","","False","","288","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","0","0","0","0","0","0"
    // "OLOO15","TENT PEG REMOVER","503147006613","","Group1","EA","","","","False","False","0","","False","","80","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","10000","15","9985","0","0","0"
    // "TEST","testing product","123456789","testing product
    // line 2","Group1","EA","","","","False","False","0","","False","","70","Pallet","20","10","0","0","0","10.00","kg","120.00","10.00","12.00","cm","","","","","","","","","","","","","","","","","0","0","0","0","0","0"
    // "TY3120","PLASTIC COATED PLAYING CARDS","503147001942","","Item group","EA","","","","False","False","0","","False","","255","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","10000","213","9787","0","0","0"
    // "TY5263","WATER ARROWS","503147007813","","Item group","EA","","","","False","False","0","","False","","144","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","10000","576","9424","0","0","0"
    // "TY5281","QUOITS SET","503147007851","","Item group","EA","","","","False","False","0","","False","","48","Container","","","0","0","0","0.00","EA","0.00","0.00","0.00","cm","","","","","","","","","","","","","","","","","10000","0","10000","0","0","0"</Detail>
    //                 <Statuses />
    //                 <ImportingQueueId>0</ImportingQueueId>
    //                 <SalesOrdersToDespatchIds />
    //             </GetDataResult>
    //         </GetDataResponse>
    //     </soap:Body>
    // </soap:Envelope>


End_Procedure