Tcl
Tcl
Xero Get Employees (Payroll API Australia)
Demonstrates how to get the summarised list of active employees.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat Tcl Downloads
load ./chilkat.dll
set success 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.
set rest [new_CkRest]
# 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..
# Get the full list of employees.
set sbXml [new_CkStringBuilder]
set success [CkRest_FullRequestNoBodySb $rest "GET" "/payroll.xro/1.0/Employees" $sbXml]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
delete_CkStringBuilder $sbXml
exit
}
# A 200 response is expected for actual success.
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
puts [CkStringBuilder_getAsString $sbXml]
delete_CkRest $rest
delete_CkStringBuilder $sbXml
exit
}
# Iterate over the employees and get some information..
set bAutoTrim 0
set xml [new_CkXml]
CkXml_LoadSb $xml $sbXml $bAutoTrim
CkXml_SaveXml $xml "qa_cache/xero_employees.xml"
# How many records exist?
set recordCount [CkXml_NumChildrenAt $xml "Employees"]
puts "numRecords = $recordCount"
set i 0
while {$i < $recordCount} {
CkXml_put_I $xml $i
puts "EmployeeID: [CkXml_getChildContent $xml {Employees|Employee[i]|EmployeeID}]"
puts "FirstName: [CkXml_getChildContent $xml {Employees|Employee[i]|FirstName}]"
puts "LastName: [CkXml_getChildContent $xml {Employees|Employee[i]|LastName}]"
puts "----"
set i [expr $i + 1]
}
# The output looks like this:
# numRecords = 6
# EmployeeID: 056a9821-55b8-4c91-b5ce-a6ce2ab508ab
# FirstName: James
# LastName: Lebron
# ----
# EmployeeID: 1f606d28-0537-42af-80ce-312d449458af
# FirstName: Odette
# LastName: Garrison
# ----
# EmployeeID: c086c9ce-821b-4636-8e9a-7864bd50d882
# FirstName: Oliver
# LastName: Gray
# ----
# EmployeeID: 1612dfee-37d2-4c5d-a7b9-187aee5f264a
# FirstName: Sally
# LastName: Martin
# ----
# EmployeeID: 2df65756-538b-4bc1-b0c3-f3971d86b650
# FirstName: Sonia
# LastName: Michaels
# ----
# EmployeeID: 08dcd870-3d8f-495f-af54-69029a89eb7d
# FirstName: Tracy
# LastName: Green
# ----
# The xero_employees.xml file contains data that looks like this:
# <?xml version="1.0" encoding="utf-8" ?>
# <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
# <Id>c1dfd096-5552-4459-bf94-f283357998c5</Id>
# <Status>OK</Status>
# <ProviderName>ChilkatAU</ProviderName>
# <DateTimeUTC>2016-11-11T20:47:18.4411917Z</DateTimeUTC>
# <Employees>
# <Employee>
# <EmployeeID>056a9821-55b8-4c91-b5ce-a6ce2ab508ab</EmployeeID>
# <FirstName>James</FirstName>
# <LastName>Lebron</LastName>
# <Status>ACTIVE</Status>
# <Email>JL@madeup.email.com</Email>
# <DateOfBirth>1982-03-15T00:00:00</DateOfBirth>
# <Gender>M</Gender>
# <Phone>0400-000-123</Phone>
# <Mobile> 408-230-9732</Mobile>
# <StartDate>2015-09-01T00:00:00</StartDate>
# <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
# <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# <Employee>
# <EmployeeID>1f606d28-0537-42af-80ce-312d449458af</EmployeeID>
# <FirstName>Odette</FirstName>
# <LastName>Garrison</LastName>
# <Status>ACTIVE</Status>
# <Email>ogg@madeup.email.com</Email>
# <DateOfBirth>1978-12-18T00:00:00</DateOfBirth>
# <Gender>F</Gender>
# <Phone>9000 1234</Phone>
# <StartDate>2015-11-05T00:00:00</StartDate>
# <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
# <PayrollCalendarID>e53023e6-70f1-45c7-b699-6558b5e42b4e</PayrollCalendarID>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# <Employee>
# <EmployeeID>c086c9ce-821b-4636-8e9a-7864bd50d882</EmployeeID>
# <FirstName>Oliver</FirstName>
# <LastName>Gray</LastName>
# <Status>ACTIVE</Status>
# <Email>og@madeup.email.com</Email>
# <DateOfBirth>1969-07-28T00:00:00</DateOfBirth>
# <Gender>M</Gender>
# <Phone>0401 123 456</Phone>
# <StartDate>2016-02-02T00:00:00</StartDate>
# <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
# <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# <Employee>
# <EmployeeID>1612dfee-37d2-4c5d-a7b9-187aee5f264a</EmployeeID>
# <FirstName>Sally </FirstName>
# <LastName>Martin</LastName>
# <Status>ACTIVE</Status>
# <Email>sm@madeup3993.com</Email>
# <DateOfBirth>1987-06-28T00:00:00</DateOfBirth>
# <Gender>F</Gender>
# <Phone>0400 123 456</Phone>
# <StartDate>2016-08-01T00:00:00</StartDate>
# <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
# <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# <Employee>
# <EmployeeID>2df65756-538b-4bc1-b0c3-f3971d86b650</EmployeeID>
# <FirstName>Sonia</FirstName>
# <LastName>Michaels</LastName>
# <Status>ACTIVE</Status>
# <Email>som@madeup3993.com</Email>
# <DateOfBirth>1989-08-24T00:00:00</DateOfBirth>
# <Gender>F</Gender>
# <Phone>02 2345 6789</Phone>
# <Mobile> </Mobile>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# <Employee>
# <EmployeeID>08dcd870-3d8f-495f-af54-69029a89eb7d</EmployeeID>
# <FirstName>Tracy</FirstName>
# <LastName>Green</LastName>
# <Status>ACTIVE</Status>
# <Email>tg@madeup.email.com</Email>
# <DateOfBirth>1989-03-06T00:00:00</DateOfBirth>
# <Gender>F</Gender>
# <Phone>0402 123 456</Phone>
# <StartDate>2015-12-02T00:00:00</StartDate>
# <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
# <PayrollCalendarID>e53023e6-70f1-45c7-b699-6558b5e42b4e</PayrollCalendarID>
# <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
# </Employee>
# </Employees>
# </Response>
delete_CkRest $rest
delete_CkStringBuilder $sbXml
delete_CkXml $xml