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) SugarCRM Filtering RecordsExport records and filter.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkRest.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i success = CkRest::ckConnect(rest,"your.site.domain",443,1,1) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) ProcedureReturn EndIf CkRest::ckAddHeader(rest,"Cache-Control","no-cache") CkRest::ckAddHeader(rest,"OAuth-Token","<access_token>") ; The following code creates the JSON request body. ; The JSON created by this code is shown below. jsonReq.i = CkJsonObject::ckCreate() If jsonReq.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(jsonReq,"filter[0].$or[0].name.$starts","A") CkJsonObject::ckUpdateString(jsonReq,"filter[0].$or[1].name.$starts","b") CkJsonObject::ckUpdateNumber(jsonReq,"max_num","2") CkJsonObject::ckUpdateNumber(jsonReq,"offset","0") CkJsonObject::ckUpdateString(jsonReq,"fields","id") CkJsonObject::ckUpdateString(jsonReq,"order_by","date_entered") CkJsonObject::ckUpdateBool(jsonReq,"favorites",0) CkJsonObject::ckUpdateBool(jsonReq,"my_items",0) ; The JSON request body created by the above code: ; { ; "filter": [ ; { ; "$or": [ ; { ; "name": { ; "$starts": "A" ; } ; }, ; { ; "name": { ; "$starts": "b" ; } ; } ; ] ; } ; ], ; "max_num": 2, ; "offset": 0, ; "fields": "id", ; "order_by": "date_entered", ; "favorites": false, ; "my_items": false ; } sbReq.i = CkStringBuilder::ckCreate() If sbReq.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckEmitSb(jsonReq,sbReq) CkRest::ckAddHeader(rest,"Content-Type","application/json") sbJson.i = CkStringBuilder::ckCreate() If sbJson.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkRest::ckFullRequestSb(rest,"POST","/rest/v10/Accounts/filter",sbReq,sbJson) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonReq) CkStringBuilder::ckDispose(sbReq) CkStringBuilder::ckDispose(sbJson) ProcedureReturn EndIf If CkRest::ckResponseStatusCode(rest) <> 200 Debug "Received error response code: " + Str(CkRest::ckResponseStatusCode(rest)) Debug "Response body:" Debug CkStringBuilder::ckGetAsString(sbJson) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonReq) CkStringBuilder::ckDispose(sbReq) CkStringBuilder::ckDispose(sbJson) ProcedureReturn EndIf json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(json,sbJson) ; The following code parses the JSON response. ; A sample JSON response is shown below the sample code. next_offset.i i.i count_i.i id.s date_modified.s v_module.s next_offset = CkJsonObject::ckIntOf(json,"next_offset") i = 0 count_i = CkJsonObject::ckSizeOfArray(json,"records") While i < count_i CkJsonObject::setCkI(json, i) id = CkJsonObject::ckStringOf(json,"records[i].id") date_modified = CkJsonObject::ckStringOf(json,"records[i].date_modified") v_module = CkJsonObject::ckStringOf(json,"records[i]._module") i = i + 1 Wend ; A sample JSON response body that is parsed by the above code: ; { ; "next_offset": 2, ; "records": [ ; { ; "id": "f16760a4-3a52-f77d-1522-5703ca28925f", ; "date_modified": "2016-04-05T10:23:28-04:00", ; "_acl": { ; "fields": {} ; }, ; "_module": "Accounts" ; }, ; { ; "id": "ec409fbb-2b22-4f32-7fa1-5703caf78dc3", ; "date_modified": "2016-04-05T10:23:28-04:00", ; "_acl": { ; "fields": {} ; }, ; "_module": "Accounts" ; } ; ] ; } Debug "Example Completed." CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonReq) CkStringBuilder::ckDispose(sbReq) CkStringBuilder::ckDispose(sbJson) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.