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
(PureBasic) Xero Get Individual Employee Details (Payroll API Australia)Demonstrates how to get the detailed data for a particular employee. Note: This example requires Chilkat v9.5.0.64 or greater.
IncludeFile "CkXml.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkRest.pb" Procedure ChilkatExample() ; 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. rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; 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.. sbPath.i = CkStringBuilder::ckCreate() If sbPath.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppend(sbPath,"/payroll.xro/1.0/Employees/") ; To get the detailed information for an individual employee, ; add the EmployeeID to the path. CkStringBuilder::ckAppend(sbPath,"056a9821-55b8-4c91-b5ce-a6ce2ab508ab") ; Get the data for the indicated employee. sbXml.i = CkStringBuilder::ckCreate() If sbXml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkRest::ckFullRequestNoBodySb(rest,"GET",CkStringBuilder::ckGetAsString(sbPath),sbXml) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbPath) CkStringBuilder::ckDispose(sbXml) ProcedureReturn EndIf ; A 200 response is expected for actual success. If CkRest::ckResponseStatusCode(rest) <> 200 Debug CkStringBuilder::ckGetAsString(sbXml) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbPath) CkStringBuilder::ckDispose(sbXml) ProcedureReturn EndIf ; Iterate over the employees and get some information.. bAutoTrim.i = 0 xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadSb(xml,sbXml,bAutoTrim) CkXml::ckSaveXml(xml,"qa_cache/xero_employee_lebron.xml") ; Use GetChild2 to navigate to the BankAccounts node. success = CkXml::ckFindChild2(xml,"Employees|Employee|BankAccounts") If success = 0 Debug "BankAccounts node not found." CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbPath) CkStringBuilder::ckDispose(sbXml) CkXml::ckDispose(xml) ProcedureReturn EndIf ; Demonstrate how to iterate over each of the employee's Bank Accounts to get information ; from each. (This same technique can be used for other parts of the XML.) recordCount.i = CkXml::ckNumChildren(xml) Debug "Number of Bank Accounts = " + Str(recordCount) i.i = 0 While i < recordCount CkXml::setCkI(xml, i) Debug "AccountName: " + CkXml::ckGetChildContent(xml,"BankAccount|AccountName") Debug "StatementText: " + CkXml::ckGetChildContent(xml,"BankAccount|StatementText") Debug "AccountNumber: " + CkXml::ckGetChildContent(xml,"BankAccount|AccountNumber") Debug "Amount: " + CkXml::ckGetChildContent(xml,"BankAccount|Amount") Debug "----" i = i + 1 Wend ; Return back to the root. CkXml::ckGetRoot2(xml) ; The output looks like this: ; Number of Bank Accounts = 2 ; AccountName: James Lebron Savings ; StatementText: Salary ; AccountNumber: 345678 ; Amount: 200.00 ; ---- ; AccountName: James Lebron Savings ; StatementText: Salary ; AccountNumber: 345678 ; Amount: 200.00 ; ---- ; The employee XML looks like this: ; <?xml version="1.0" encoding="utf-8" ?> ; <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> ; <Id>6131dfc6-d11c-4fe0-aa1c-f7356c54754c</Id> ; <Status>OK</Status> ; <ProviderName>ChilkatAU</ProviderName> ; <DateTimeUTC>2016-11-11T20:53:38.752419Z</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> ; <HomeAddress> ; <AddressLine1>123 Main St</AddressLine1> ; <City>St. Kilda</City> ; <Region>VIC</Region> ; <PostalCode>3182</PostalCode> ; <Country>AUSTRALIA</Country> ; </HomeAddress> ; <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> ; <IsAuthorisedToApproveLeave>false</IsAuthorisedToApproveLeave> ; <TaxDeclaration> ; <TaxFileNumber>999999811</TaxFileNumber> ; <EmploymentBasis>FULLTIME</EmploymentBasis> ; <AustralianResidentForTaxPurposes>true</AustralianResidentForTaxPurposes> ; <TaxFreeThresholdClaimed>true</TaxFreeThresholdClaimed> ; <HasHELPDebt>true</HasHELPDebt> ; <HasSFSSDebt>false</HasSFSSDebt> ; <EligibleToReceiveLeaveLoading>false</EligibleToReceiveLeaveLoading> ; <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC> ; <HasStudentStartupLoan>false</HasStudentStartupLoan> ; </TaxDeclaration> ; <BankAccounts> ; <BankAccount> ; <StatementText>Salary</StatementText> ; <AccountName>James Lebron Savings</AccountName> ; <BSB>122344</BSB> ; <AccountNumber>345678</AccountNumber> ; <Remainder>false</Remainder> ; <Amount>200.00</Amount> ; </BankAccount> ; <BankAccount> ; <StatementText>Salary</StatementText> ; <AccountName>James Lebron</AccountName> ; <BSB>123443</BSB> ; <AccountNumber>2345678</AccountNumber> ; <Remainder>true</Remainder> ; </BankAccount> ; </BankAccounts> ; <OpeningBalances> ; <OpeningBalanceDate>2016-02-01T00:00:00</OpeningBalanceDate> ; <EarningsLines> ; <EarningsLine> ; <EarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</EarningsRateID> ; <Amount>13333.33</Amount> ; </EarningsLine> ; </EarningsLines> ; <DeductionLines> ; <DeductionLine> ; <DeductionTypeID>2fd4c1e2-5bbb-43e4-a396-4c146f2f9b77</DeductionTypeID> ; <Amount>40.00</Amount> ; </DeductionLine> ; </DeductionLines> ; <Tax>4000.00</Tax> ; <SuperLines> ; <SuperLine> ; <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID> ; <ContributionType>SGC</ContributionType> ; <Amount>3999.99</Amount> ; </SuperLine> ; </SuperLines> ; <ReimbursementLines /> ; <LeaveLines> ; <LeaveLine> ; <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID> ; <NumberOfUnits>100.0000</NumberOfUnits> ; </LeaveLine> ; <LeaveLine> ; <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID> ; <NumberOfUnits>40.0000</NumberOfUnits> ; </LeaveLine> ; </LeaveLines> ; </OpeningBalances> ; <PayTemplate> ; <EarningsLines> ; <EarningsLine> ; <EarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</EarningsRateID> ; <CalculationType>ANNUALSALARY</CalculationType> ; <AnnualSalary>40000.00</AnnualSalary> ; <NumberOfUnitsPerWeek>38.0000</NumberOfUnitsPerWeek> ; </EarningsLine> ; </EarningsLines> ; <DeductionLines> ; <DeductionLine> ; <DeductionTypeID>2fd4c1e2-5bbb-43e4-a396-4c146f2f9b77</DeductionTypeID> ; <CalculationType>FIXEDAMOUNT</CalculationType> ; <Amount>10.00</Amount> ; </DeductionLine> ; </DeductionLines> ; <SuperLines> ; <SuperLine> ; <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID> ; <ContributionType>SGC</ContributionType> ; <CalculationType>PERCENTAGEOFEARNINGS</CalculationType> ; <MinimumMonthlyEarnings>450.00</MinimumMonthlyEarnings> ; <ExpenseAccountCode>478</ExpenseAccountCode> ; <LiabilityAccountCode>826</LiabilityAccountCode> ; <Percentage>9.0000</Percentage> ; </SuperLine> ; <SuperLine> ; <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID> ; <ContributionType>SALARYSACRIFICE</ContributionType> ; <CalculationType>FIXEDAMOUNT</CalculationType> ; <ExpenseAccountCode>478</ExpenseAccountCode> ; <LiabilityAccountCode>826</LiabilityAccountCode> ; <Amount>50.0000</Amount> ; </SuperLine> ; </SuperLines> ; <ReimbursementLines /> ; <LeaveLines> ; <LeaveLine> ; <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID> ; <CalculationType>FIXEDAMOUNTEACHPERIOD</CalculationType> ; <AnnualNumberOfUnits>152.0000</AnnualNumberOfUnits> ; </LeaveLine> ; <LeaveLine> ; <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID> ; <CalculationType>FIXEDAMOUNTEACHPERIOD</CalculationType> ; <AnnualNumberOfUnits>76.0000</AnnualNumberOfUnits> ; </LeaveLine> ; </LeaveLines> ; </PayTemplate> ; <SuperMemberships> ; <SuperMembership> ; <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID> ; <SuperFundID>2bab4eeb-6f3c-4c66-a1f0-52fcb81f412a</SuperFundID> ; <EmployeeNumber>1234</EmployeeNumber> ; </SuperMembership> ; </SuperMemberships> ; <LeaveBalances> ; <LeaveBalance> ; <LeaveName>Annual Leave</LeaveName> ; <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID> ; <NumberOfUnits>88.8602</NumberOfUnits> ; <TypeOfUnits>Hours</TypeOfUnits> ; </LeaveBalance> ; <LeaveBalance> ; <LeaveName>Personal/Carer's Leave</LeaveName> ; <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID> ; <NumberOfUnits>45.8302</NumberOfUnits> ; <TypeOfUnits>Hours</TypeOfUnits> ; </LeaveBalance> ; </LeaveBalances> ; </Employee> ; </Employees> ; </Response> ; ; CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbPath) CkStringBuilder::ckDispose(sbXml) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.