Sample code for 30+ languages & platforms
Visual FoxPro

Xero Get a Filtered Set of Resources (Get all SALES Accounts)

Demonstrates how to add the "where" parameter to get a filtered set of resources. See Get Filtered Resources.

This example gets the accounts where the Type = "SALES".

Note: Requires Chilkat v9.5.0.64 or greater.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL loSbXml
LOCAL lnBAutoTrim
LOCAL loXml
LOCAL lnNumAccounts
LOCAL i

lnSuccess = 0

* Note: Requires Chilkat v9.5.0.64 or greater.

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

loRest = CreateObject('Chilkat.Rest')

* Before sending REST API calls, the REST object needs to be
* initialized for OAuth1.
* See Xero 2-Legged OAuth1 Setup for sample code.

* Assuming the REST object's OAuth1 authenticator is setup, and the initial
* connection was made, we may now send REST HTTP requests..

* ------------------------------------------------------------
* Add the "where" parameter.
loRest.AddQueryParam("where",'Type=="SALES"')

* Get the full list of accounts.
loSbXml = CreateObject('Chilkat.StringBuilder')
lnSuccess = loRest.FullRequestNoBodySb("GET","/api.xro/2.0/Accounts",loSbXml)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loSbXml
    CANCEL
ENDIF

* A 200 response is expected for actual success.
IF (loRest.ResponseStatusCode <> 200) THEN
    ? loSbXml.GetAsString()
    RELEASE loRest
    RELEASE loSbXml
    CANCEL
ENDIF

* Iterate over the accounts and get some information..

lnBAutoTrim = 0
loXml = CreateObject('Chilkat.Xml')
loXml.LoadSb(loSbXml,lnBAutoTrim)

* How many accounts exist?
lnNumAccounts = loXml.NumChildrenAt("Accounts")
? "numAccounts = " + STR(lnNumAccounts)

i = 0
DO WHILE i < lnNumAccounts
    loXml.I = i
    ? "AccountID: " + loXml.GetChildContent("Accounts|Account[i]|AccountID")
    ? "Name: " + loXml.GetChildContent("Accounts|Account[i]|Name")
    ? "Code: " + STR(loXml.GetChildIntValue("Accounts|Account[i]|Code"))
    ? "EnablePaymentsToAccount: " + STR(loXml.GetChildBoolValue("Accounts|Account[i]|EnablePaymentsToAccount"))
    ? "----"
    i = i + 1
ENDDO

RELEASE loRest
RELEASE loSbXml
RELEASE loXml