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
(Tcl) Xero Create New AccountsDemonstrates how to create a new account in Xero. Note: Requires Chilkat v9.5.0.64 or greater.
load ./chilkat.dll # 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.. # -------------------------------------------------------------- # To add certain accounts, we need a unique Code that hasn't yet been used. # Chilkat provided an example to download and save the Accounts data. # We can load this data into a hashtable to help us find an unused Code. # See Hash Xero Account Codes to see how this file was created. set sbAccounts [new_CkStringBuilder] set success [CkStringBuilder_LoadFile $sbAccounts "qa_cache/xero_accounts_by_code.xml" "utf-8"] if {!$success} then { puts "failed to load xero_accounts_by_code.xml" delete_CkRest $rest delete_CkStringBuilder $sbAccounts exit } set htAccounts [new_CkHashtable] CkHashtable_AddFromXmlSb $htAccounts $sbAccounts # -------------------------------------------------------------- # Build the request XML to create a Xero sales account. # Find an unused Code... set code 600 while {[CkHashtable_ContainsIntKey $htAccounts $code] == 1} { set code [expr $code + 1] } set xml [new_CkXml] CkXml_put_Tag $xml "Account" CkXml_NewChildInt2 $xml "Code" $code CkXml_NewChild2 $xml "Name" "Sales - clearance lines" CkXml_NewChild2 $xml "Type" "SALES" CkXml_put_EmitCompact $xml 1 # Do not emit the XML declarator. Xero does not accept the XML if it # has the initial line: <?xml version="1.0" encoding="utf-8"?> CkXml_put_EmitXmlDecl $xml 0 CkRest_AddQueryParam $rest "xml" [CkXml_getXml $xml] CkRest_put_VerboseLogging $rest 1 set responseXml [CkRest_fullRequestFormUrlEncoded $rest "PUT" "/api.xro/2.0/Accounts"] if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest delete_CkStringBuilder $sbAccounts delete_CkHashtable $htAccounts delete_CkXml $xml exit } # A 200 response is expected for actual success. if {[CkRest_get_ResponseStatusCode $rest] != 200} then { puts "$responseXml" delete_CkRest $rest delete_CkStringBuilder $sbAccounts delete_CkHashtable $htAccounts delete_CkXml $xml exit } # Examine the XML response puts "$responseXml" # A successful XML response is as follows: # <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> # <Id>dac71f1b-7afb-49a7-8a57-719b91f2088e</Id> # <Status>OK</Status> # <ProviderName>ChilkatPrivate</ProviderName> # <DateTimeUTC>2016-11-10T23:53:43.487791Z</DateTimeUTC> # <Accounts> # <Account> # <AccountID>cb8c94cf-57d4-41ee-b866-4c27632fe838</AccountID> # <Code>601</Code> # <Name>Sales - clearance lines</Name> # <Status>ACTIVE</Status> # <Type>SALES</Type> # <TaxType>OUTPUT</TaxType> # <Class>REVENUE</Class> # <EnablePaymentsToAccount>false</EnablePaymentsToAccount> # <ShowInExpenseClaims>false</ShowInExpenseClaims> # <ReportingCode>REV</ReportingCode> # <ReportingCodeName>Revenue</ReportingCodeName> # <UpdatedDateUTC>2016-11-10T23:53:43.94</UpdatedDateUTC> # </Account> # </Accounts> # </Response> # To access the information: CkXml_LoadXml $xml $responseXml puts "AccountID: [CkXml_getChildContent $xml Accounts|Account|AccountID]" puts "TaxType: [CkXml_getChildContent $xml Accounts|Account|TaxType]" # .. delete_CkRest $rest delete_CkStringBuilder $sbAccounts delete_CkHashtable $htAccounts delete_CkXml $xml |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.