Sample code for 30+ languages & platforms
Visual FoxPro

SugarCRM Filtering Records

See more SugarCRM Examples

Export records and filter.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL loJsonReq
LOCAL loSbReq
LOCAL loSbJson
LOCAL loJson
LOCAL lnNext_offset
LOCAL i
LOCAL lnCount_i
LOCAL lcId
LOCAL lcDate_modified
LOCAL lcV_module

lnSuccess = 0

loRest = CreateObject('Chilkat.Rest')

lnSuccess = loRest.Connect("your.site.domain",443,1,1)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loRest.AddHeader("Cache-Control","no-cache")
loRest.AddHeader("OAuth-Token","<access_token>")

* The following code creates the JSON request body.
* The JSON created by this code is shown below.
loJsonReq = CreateObject('Chilkat.JsonObject')
loJsonReq.UpdateString("filter[0].$or[0].name.$starts","A")
loJsonReq.UpdateString("filter[0].$or[1].name.$starts","b")
loJsonReq.UpdateNumber("max_num","2")
loJsonReq.UpdateNumber("offset","0")
loJsonReq.UpdateString("fields","id")
loJsonReq.UpdateString("order_by","date_entered")
loJsonReq.UpdateBool("favorites",0)
loJsonReq.UpdateBool("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
* }

loSbReq = CreateObject('Chilkat.StringBuilder')
loJsonReq.EmitSb(loSbReq)

loRest.AddHeader("Content-Type","application/json")

loSbJson = CreateObject('Chilkat.StringBuilder')
lnSuccess = loRest.FullRequestSb("POST","/rest/v10/Accounts/filter",loSbReq,loSbJson)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loJsonReq
    RELEASE loSbReq
    RELEASE loSbJson
    CANCEL
ENDIF

IF (loRest.ResponseStatusCode <> 200) THEN
    ? "Received error response code: " + STR(loRest.ResponseStatusCode)
    ? "Response body:"
    ? loSbJson.GetAsString()
    RELEASE loRest
    RELEASE loJsonReq
    RELEASE loSbReq
    RELEASE loSbJson
    CANCEL
ENDIF

loJson = CreateObject('Chilkat.JsonObject')
loJson.LoadSb(loSbJson)

* The following code parses the JSON response.
* A sample JSON response is shown below the sample code.

lnNext_offset = loJson.IntOf("next_offset")
i = 0
lnCount_i = loJson.SizeOfArray("records")
DO WHILE i < lnCount_i
    loJson.I = i
    lcId = loJson.StringOf("records[i].id")
    lcDate_modified = loJson.StringOf("records[i].date_modified")
    lcV_module = loJson.StringOf("records[i]._module")
    i = i + 1
ENDDO

* 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"
*     }
*   ]
* }

? "Example Completed."

RELEASE loRest
RELEASE loJsonReq
RELEASE loSbReq
RELEASE loSbJson
RELEASE loJson