DataFlex
DataFlex
MyInvois Malaysia Get Document Types
See more Malaysia MyInvois Examples
There are multiple types of documents supported by MyInvois, and this API retrieves their definitions through API call.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Variant vSb
Handle hoSb
Integer iStatusCode
Handle hoJson
Integer iId
Integer iInvoiceTypeCode
String sDescription
String sActiveFrom
String sActiveTo
Integer j
Integer iCount_j
String sName
String sVersionNumber
String sStatus
Integer i
Integer iCount_i
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Adds the "Authorization: Bearer <access_token>" header.
Set ComAuthToken Of hoHttp To "<access_token>"
// Note: The access token is valid for a short amount of time. Perhaps 1 hour.
// The access token is used in the "Authorization: Bearer <access_token>" header in subsequent requests until it expires.
// Your application would then need to get a new access token, and so on..
// To get an access token, see How to Get a MyInvois Access Token
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get pvComObject of hoSb to vSb
Get ComQuickGetSb Of hoHttp "https://preprod-api.myinvois.hasil.gov.my/api/v1.0/documenttypes" vSb To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComLastStatus Of hoHttp To iStatusCode
Showln "response status code = " iStatusCode
If (iStatusCode <> 200) Begin
// Failed.
Get ComGetAsString Of hoSb To sTemp1
Showln sTemp1
Procedure_Return
End
// Sample response:
// {"result":
// [
// {"id":45,
// "invoiceTypeCode":4,
// "description":"Invoice",
// "activeFrom":"2015-02-13T13:15:00Z",
// "activeTo":"2027-03-01T00:00:00Z",
// "documentTypeVersions":
// [
// {"id":454,
// "name":"1.0",
// "description":"Invoice version 1.1",
// "activeFrom":"2015-02-13T13:15:00Z",
// "activeTo":"2027-03-01T00:00:00Z",
// "versionNumber":1.1,
// "status":"published"
// }
// ]
// }
// ]
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get pvComObject of hoSb to vSb
Get ComLoadSb Of hoJson vSb To iSuccess
Move 0 To i
Get ComSizeOfArray Of hoJson "result" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Get ComIntOf Of hoJson "result[i].id" To iId
Get ComIntOf Of hoJson "result[i].invoiceTypeCode" To iInvoiceTypeCode
Get ComStringOf Of hoJson "result[i].description" To sDescription
Get ComStringOf Of hoJson "result[i].activeFrom" To sActiveFrom
Get ComStringOf Of hoJson "result[i].activeTo" To sActiveTo
Move 0 To j
Get ComSizeOfArray Of hoJson "result[i].documentTypeVersions" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJson To j
Get ComIntOf Of hoJson "result[i].documentTypeVersions[j].id" To iId
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].name" To sName
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].description" To sDescription
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].activeFrom" To sActiveFrom
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].activeTo" To sActiveTo
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].versionNumber" To sVersionNumber
Get ComStringOf Of hoJson "result[i].documentTypeVersions[j].status" To sStatus
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
End_Procedure