Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Swift 2) Peoplevox GetReportDataDemonstrates how to export data from a Peoplevox Warehouse Management System (WMS) using a system report template.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success: Bool // 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/GetReportData // 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:GetReportData> // <peop:getReportRequest> // <peop:TemplateName>Item movement history</peop:TemplateName> // <peop:PageNo>1</peop:PageNo> // <peop:ItemsPerPage>20</peop:ItemsPerPage> // <peop:OrderBy>[Date timestamp]</peop:OrderBy> // <peop:Columns>[Item code],[Date timestamp],[From],[To],[Quantity],[Comments]</peop:Columns> // <peop:SearchClause>([Date timestamp] > DateTime(2016,01,01,09,00,00))</peop:SearchClause> // </peop:getReportRequest> // </peop:GetReportData> // </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. // let sbSoapXml = CkoStringBuilder() sbSoapXml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n") sbSoapXml.Append("<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:peop=\"http://www.peoplevox.net/\">\r\n") sbSoapXml.Append(" <soap:Header>\r\n") sbSoapXml.Append(" <peop:UserSessionCredentials>\r\n") sbSoapXml.Append(" <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId>\r\n") sbSoapXml.Append(" <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId>\r\n") sbSoapXml.Append(" <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId>\r\n") sbSoapXml.Append(" </peop:UserSessionCredentials>\r\n") sbSoapXml.Append(" </soap:Header>\r\n") sbSoapXml.Append(" <soap:Body>\r\n") sbSoapXml.Append(" <peop:GetReportData>\r\n") sbSoapXml.Append(" <peop:getReportRequest>\r\n") sbSoapXml.Append(" <peop:TemplateName>Item movement history</peop:TemplateName>\r\n") sbSoapXml.Append(" <peop:PageNo>1</peop:PageNo>\r\n") sbSoapXml.Append(" <peop:ItemsPerPage>20</peop:ItemsPerPage>\r\n") sbSoapXml.Append(" <peop:OrderBy>[Date timestamp]</peop:OrderBy>\r\n") sbSoapXml.Append(" <peop:Columns>[Item code],[Date timestamp],[From],[To],[Quantity],[Comments]</peop:Columns>\r\n") sbSoapXml.Append(" <peop:SearchClause>([Date timestamp] > DateTime(2016,01,01,09,00,00))</peop:SearchClause>\r\n") sbSoapXml.Append(" </peop:getReportRequest>\r\n") sbSoapXml.Append(" </peop:GetReportData>\r\n") sbSoapXml.Append(" </soap:Body>\r\n") sbSoapXml.Append("</soap:Envelope>") let req = CkoHttpRequest() req.HttpVerb = "POST" req.SendCharset = true req.Charset = "utf-8" req.AddHeader("Content-Type", value: "text/xml") req.AddHeader("SOAPAction", value: "http://www.peoplevox.net/GetReportData") req.Path = "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx" success = req.LoadBodyFromString(sbSoapXml.GetAsString(), charset: "utf-8") let http = CkoHttp() http.FollowRedirects = true var resp: CkoHttpResponse? = http.SynchronousRequest("qac.peoplevox.net", port: 443, ssl: true, req: req) if http.LastMethodSuccess != true { print("\(http.LastErrorText)") return } // We should expect a 200 response if successful. if resp!.StatusCode.intValue != 200 { print("Response StatusCode = \(resp!.StatusCode.intValue)") print("Response StatusLine: \(resp!.StatusLine)") print("Response Header:") print("\(resp!.Header)") print("\(resp!.BodyStr)") return } let xmlResponse = CkoXml() success = xmlResponse.LoadXml(resp!.BodyStr) print("\(xmlResponse.GetXml())") resp = nil var detail: String? = xmlResponse.ChilkatPath("soap:Body|GetReportDataResponse|GetReportDataResult|Detail|*") let csv = CkoCsv() csv.HasColumnNames = true csv.LoadFromString(detail) print("NumRows = \(csv.NumRows.intValue)") print("NumColumns = \(csv.NumColumns.intValue)") // Iterate over the rows, getting the ItemCode, Name, and Barcode var i: Int = 0 var numRows: Int = csv.NumRows.intValue while i < numRows { print("Item code: \(csv.GetCellByName(i, columnName: "Item code"))") print("Date timestamp: \(csv.GetCellByName(i, columnName: "Date timestamp"))") print("From: \(csv.GetCellByName(i, columnName: "From"))") print("To: \(csv.GetCellByName(i, columnName: "To"))") print("Quantity: \(csv.GetCellByName(i, columnName: "Quantity"))") print("Comments: \(csv.GetCellByName(i, columnName: "Comments"))") print("-") i = i + 1 } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.