Sample code for 30+ languages & platforms
PowerBuilder Requires Chilkat v11.0.0+

effectconnect Read Orderlist

See more effectconnect Examples

Get a set of orders filtered by the parameters in the XML payload.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
string ls_FullUri
string ls_Uri
string ls_ApiVersion
oleobject loo_Http
oleobject loo_Dt
string ls_Timestamp
oleobject loo_Xml
oleobject loo_SbXml
oleobject loo_SbStringToSign
oleobject loo_Crypt
oleobject loo_Resp
oleobject loo_XmlResp

li_Success = 0

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

ls_FullUri = "https://submit.effectconnect.com/orderlist"
ls_Uri = "/orderlist"
ls_ApiVersion = "2.0"

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//  Use your effectconnect public key here..
loo_Http.SetRequestHeader("KEY","PUBLIC_KEY")
loo_Http.SetRequestHeader("VERSION",ls_ApiVersion)
loo_Http.SetRequestHeader("URI",ls_Uri)
loo_Http.SetRequestHeader("RESPONSETYPE","XML")
loo_Http.SetRequestHeader("RESPONSELANGUAGE","en")

//  Get the current date/time in timestamp format.
loo_Dt = create oleobject
li_rc = loo_Dt.ConnectToNewObject("Chilkat.CkDateTime")

loo_Dt.SetFromCurrentSystemTime()
ls_Timestamp = loo_Dt.GetAsTimestamp(1)

loo_Http.SetRequestHeader("TIME",ls_Timestamp)
Write-Debug "timestamp = " + ls_Timestamp

//  Create the following XML request body:
//  <?xml version="1.0" encoding="utf-8"?>
//  <list>
//    <filters>
//      <fromDateFilter>
//        <filterValue>2018-09-14T12:12:12+01:00</filterValue>
//      </fromDateFilter>
//      <toDateFilter>
//        <filterValue>2019-04-13T23:59:59+01:00</filterValue>
//      </toDateFilter>
//      <hasStatusFilter>
//        <filterValue>paid</filterValue>
//      </hasStatusFilter>
//      <hasTagFilter>
//        <filterValue>
//          <tagName>Test</tagName>
//          <exclude>false</exclude>
//        </filterValue>
//      </hasTagFilter>
//    </filters>
//  </list>

//  Use this online tool to generate the code from sample XML: 
//  Generate Code to Create XML

loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")

loo_Xml.Tag = "list"
loo_Xml.UpdateChildContent("filters|fromDateFilter|filterValue","2018-09-14T12:12:12+01:00")
loo_Xml.UpdateChildContent("filters|toDateFilter|filterValue","2019-04-13T23:59:59+01:00")
loo_Xml.UpdateChildContent("filters|hasStatusFilter|filterValue","paid")
loo_Xml.UpdateChildContent("filters|hasTagFilter|filterValue|tagName","Test")
loo_Xml.UpdateChildContent("filters|hasTagFilter|filterValue|exclude","false")
loo_Xml.EmitCompact = 1

loo_SbXml = create oleobject
li_rc = loo_SbXml.ConnectToNewObject("Chilkat.StringBuilder")

loo_Xml.GetXmlSb(loo_SbXml)

//  Build a string-to-sign and sign it using our effectconnect private key
loo_SbStringToSign = create oleobject
li_rc = loo_SbStringToSign.ConnectToNewObject("Chilkat.StringBuilder")

loo_SbStringToSign.AppendInt(loo_SbXml.Length)
loo_SbStringToSign.Append("POST")
loo_SbStringToSign.Append(ls_Uri)
loo_SbStringToSign.Append(ls_ApiVersion)
loo_SbStringToSign.Append(ls_Timestamp)

loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")

loo_Crypt.MacAlgorithm = "hmac"
loo_Crypt.HashAlgorithm = "sha512"
loo_Crypt.EncodingMode = "base64"
//  Use your effectconnect private key here:
loo_Crypt.SetMacKeyString("PRIVATE_KEY")
loo_Http.SetRequestHeader("SIGNATURE",loo_Crypt.MacStringENC(loo_SbStringToSign.GetAsString()))

//  Send the POST..
loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")

li_Success = loo_Http.HttpStr("POST",ls_FullUri,loo_Xml.GetXml(),"utf-8","application/xml",loo_Resp)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_Dt
    destroy loo_Xml
    destroy loo_SbXml
    destroy loo_SbStringToSign
    destroy loo_Crypt
    destroy loo_Resp
    return
end if

Write-Debug "response status code = " + string(loo_Resp.StatusCode)

//  Examine the response.  The response status code can be 200 for both errors and success.
//  The success or error is based on the XML returned in the response body.
loo_XmlResp = create oleobject
li_rc = loo_XmlResp.ConnectToNewObject("Chilkat.Xml")

loo_XmlResp.LoadXml(loo_Resp.BodyStr)

Write-Debug "response body:"
Write-Debug loo_XmlResp.GetXml()

//  Remove previously set headers (unless we want the same headers for the next request,
//  in which case we may remove or update individual headers by calling SetRequestHeader.
loo_Http.ClearHeaders()


destroy loo_Http
destroy loo_Dt
destroy loo_Xml
destroy loo_SbXml
destroy loo_SbStringToSign
destroy loo_Crypt
destroy loo_Resp
destroy loo_XmlResp