Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

MYOB: Get List of Company Files

See more MYOB Examples

Gets a list of company files.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.JsonObject,
  Chilkat.Http;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  http: THttp;
  strResp: string;
  jsonResponse: TJsonObject;
  Id: string;
  Name: string;
  LibraryPath: string;
  ProductVersion: string;
  ProductLevelCode: Integer;
  ProductLevelName: string;
  CheckedOutDate: string;
  CheckedOutBy: string;
  Uri: string;
  Country: string;

begin
  //  This example requires the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http := THttp.Create;

  http.AuthToken := 'ACCESS_TOKEN';

  http.Accept := 'application/json';

  http.SetRequestHeader('x-myobapi-key','MYOB_API_KEY');
  http.SetRequestHeader('x-myobapi-version','v2');

  strResp := http.QuickGetStr('https://ar1.api.myob.com/accountright');
  if (http.LastMethodSuccess <> True) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  WriteLn('Response Status Code: ' + http.LastStatus);

  jsonResponse := TJsonObject.Create;
  jsonResponse.Load(strResp);
  jsonResponse.EmitCompact := False;
  WriteLn(jsonResponse.Emit());

  if (http.LastStatus <> 200) then
    begin
      WriteLn('Failed.');
      Exit;
    end;

  //  Sample output...
  //  (See the parsing code below..)
  //  
  //  Use the this online tool to generate parsing code from sample JSON: 
  //  Generate Parsing Code from JSON

  //  {
  //    "Id": "d2014f64-ffdf-487b-8d12-67a20976aca6",
  //    "Name": "Internal Sandbox API",
  //    "LibraryPath": "Internal Sandbox API",
  //    "ProductVersion": "2013.0",
  //    "ProductLevel": {
  //      "Code": 20,
  //      "Name": "Standard"
  //    },
  //    "CheckedOutDate": "2013-06-11T01:47:47.0065514",
  //    "CheckedOutBy": "developers@myob.com",
  //    "Uri": "{cf_uri}",
  //    "Country": "AU"
  //  }
  //  

  Id := jsonResponse.StringOf('Id');
  Name := jsonResponse.StringOf('Name');
  LibraryPath := jsonResponse.StringOf('LibraryPath');
  ProductVersion := jsonResponse.StringOf('ProductVersion');
  ProductLevelCode := jsonResponse.IntOf('ProductLevel.Code');
  ProductLevelName := jsonResponse.StringOf('ProductLevel.Name');
  CheckedOutDate := jsonResponse.StringOf('CheckedOutDate');
  CheckedOutBy := jsonResponse.StringOf('CheckedOutBy');
  Uri := jsonResponse.StringOf('Uri');
  Country := jsonResponse.StringOf('Country');


  http.Free;
  jsonResponse.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.