You are on page 1of 2

@openapi.openedge.

export FILE(type="REST", executionMode="single-run", useReturnValue="false", writeDataSetBeforeImage="fals


e").

/*------------------------------------------------------------------------
File : customer.p
Purpose :

Syntax :

Description :

Author(s) :
Created : Fri Jul 04 17:45:03 BST 2014
Notes :
----------------------------------------------------------------------*/

/* *************************** Definitions ************************** */

ROUTINE-LEVEL ON ERROR UNDO, THROW.

DEFINE TEMP-TABLE ttCustomer BEFORE-TABLE bttCustomer


FIELD CustNum AS INTEGER INITIAL "0" LABEL "Cust Num"
FIELD Name AS CHARACTER LABEL "Name"
FIELD SalesRep AS CHARACTER LABEL "Sales Rep"
FIELD State AS CHARACTER LABEL "State"
FIELD Address AS CHARACTER LABEL "Address"
FIELD Address2 AS CHARACTER LABEL "Address2"
FIELD Balance AS DECIMAL INITIAL "0" LABEL "Balance"
FIELD City AS CHARACTER LABEL "City"
FIELD Comments AS CHARACTER LABEL "Comments"
FIELD Contact AS CHARACTER LABEL "Contact"
FIELD Country AS CHARACTER INITIAL "USA" LABEL "Country"
FIELD CreditLimit AS DECIMAL INITIAL "1500" LABEL "Credit Limit"
FIELD Discount AS INTEGER INITIAL "0" LABEL "Discount"
FIELD EmailAddress AS CHARACTER LABEL "Email"
FIELD Fax AS CHARACTER LABEL "Fax"
FIELD Phone AS CHARACTER LABEL "Phone"
FIELD PostalCode AS CHARACTER LABEL "Postal Code"
FIELD Terms AS CHARACTER INITIAL "Net30" LABEL "Terms"
INDEX CustNum IS UNIQUE CustNum

/* ******************** Preprocessor Definitions ******************** */

/* *************************** Main Block *************************** */

/* ********************** Internal Procedures *********************** */

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").


PROCEDURE readCustomer:
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER custnum AS INTEGER NO-UNDO.
DEFINE OUTPUT PARAMETER jsonText AS LONGCHAR NO-UNDO.

DEFINE VARIABLE jsonArray AS Progress.Json.ObjectModel.JsonArray NO-UNDO.

EMPTY TEMP-TABLE ttCustomer.


FIND Customer WHERE Customer.CustNum = custnum NO-ERROR.
CREATE ttCustomer.
BUFFER-COPY Customer TO ttCustomer.

jsonArray = NEW Progress.Json.ObjectModel.JsonArray().


jsonArray:Read(TEMP-TABLE ttCustomer:HANDLE).

jsonText = jsonArray:GetJsonObject(1):GetJsonText().
END PROCEDURE.

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").


PROCEDURE readCustomers:
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER filter AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER TABLE FOR ttCustomer.

DEFINE VARIABLE iCustNum AS INTEGER NO-UNDO.

iCustNum = INTEGER(filter) NO-ERROR.


MESSAGE "DEBUG: " iCustNum.
IF ERROR-STATUS:ERROR THEN
UNDO, THROW NEW Progress.Lang.AppError("Invalid filter.").

EMPTY TEMP-TABLE ttCustomer.


FOR EACH Customer WHERE Customer.CustNum < iCustNum:
CREATE ttCustomer.
BUFFER-COPY Customer TO ttCustomer.
END.
END PROCEDURE.

You might also like