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
(PowerBuilder) QuickBooks - Read an Employee (with Error Response)Demonstrates how to fetch the information for a specific Quickbooks employee, but tries to fetch using an invalid employee id. Shows the error response and how to parse it. For more information, see https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/employee#read-an-employee
integer li_rc oleobject loo_JsonToken integer li_Success oleobject loo_Rest integer li_BAutoReconnect oleobject loo_SbAuth string ls_ResponseBody oleobject loo_Json integer li_NumErrors integer i // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Get our previously obtained OAuth2 access token, which should contain JSON like this: // { // "expires_in": 3600, // "x_refresh_token_expires_in": 8726400, // "refresh_token": "L011546037639r ... 3vR2DrbOmg0Sdagw", // "access_token": "eyJlbmMiOiJBMTI4Q0 ... oETJEMbeggg", // "token_type": "bearer" // } loo_JsonToken = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_JsonToken.ConnectToNewObject("Chilkat.JsonObject") if li_rc < 0 then destroy loo_JsonToken MessageBox("Error","Connecting to COM object failed") return end if li_Success = loo_JsonToken.LoadFile("qa_data/tokens/qb-access-token.json") loo_Rest = create oleobject // Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest") // Connect using TLS. // A single REST object, once connected, can be used for many Quickbooks REST API calls. // The auto-reconnect indicates that if the already-established HTTPS connection is closed, // then it will be automatically re-established as needed. li_BAutoReconnect = 1 li_Success = loo_Rest.Connect("sandbox-quickbooks.api.intuit.com",443,1,li_BAutoReconnect) if li_Success <> 1 then Write-Debug loo_Rest.LastErrorText destroy loo_JsonToken destroy loo_Rest return end if loo_SbAuth = create oleobject // Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 li_rc = loo_SbAuth.ConnectToNewObject("Chilkat.StringBuilder") loo_SbAuth.Append("Bearer ") loo_SbAuth.Append(loo_JsonToken.StringOf("access_token")) loo_Rest.Authorization = loo_SbAuth.GetAsString() loo_Rest.AddHeader("Accept","application/json") loo_Rest.AllowHeaderFolding = 0 // The company ID is 123146096291789 // The employee ID is 999 (There is no employee with this ID and we should get a 400 response code w/ a response body indicating the error.) ls_ResponseBody = loo_Rest.FullRequestNoBody("GET","/v3/company/123146096291789/employee/999?minorversion=45") if loo_Rest.LastMethodSuccess <> 1 then Write-Debug loo_Rest.LastErrorText destroy loo_JsonToken destroy loo_Rest destroy loo_SbAuth return end if // Load the JSON response into a JSON object for parsing. // A sample JSON response is shown below. loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.Load(ls_ResponseBody) loo_Json.EmitCompact = 0 Write-Debug loo_Json.Emit() // A 400 response is what we'd expect if trying to query for a non-existent employee ID if loo_Rest.ResponseStatusCode <> 400 then Write-Debug "Request Header: " Write-Debug loo_Rest.LastRequestHeader Write-Debug "----" Write-Debug "Response StatusCode = " + string(loo_Rest.ResponseStatusCode) Write-Debug "Response StatusLine: " + loo_Rest.ResponseStatusText Write-Debug "Response Header:" Write-Debug loo_Rest.ResponseHeader destroy loo_JsonToken destroy loo_Rest destroy loo_SbAuth destroy loo_Json return end if // If we got here, the response status code was 400.. // Iterate over the errors.. li_NumErrors = loo_Json.SizeOfArray("Fault.Error") i = 0 do while i < li_NumErrors loo_Json.I = i Write-Debug "Message: " + loo_Json.StringOf("Fault.Error[i].Message") Write-Debug "Detail: " + loo_Json.StringOf("Fault.Error[i].Detail") Write-Debug "code: " + loo_Json.StringOf("Fault.Error[i].code") Write-Debug "----" i = i + 1 loop // ------------------------------------------------------ // The JSON error response looks like this: // { // "Fault": { // "Error": [ // { // "Message": "Object Not Found", // "Detail": "Object Not Found : Something you're trying to use has been made inactive. Check the fields with accounts, customers, items, vendors or employees.", // "code": "610", // "element": "" // } // ], // "type": "ValidationFault" // }, // "time": "2020-03-07T10:21:19.089-08:00" // } destroy loo_JsonToken destroy loo_Rest destroy loo_SbAuth destroy loo_Json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.