Guardian Programmer's Guide

Table Of Contents
Writing a Server Program
Guardian Programmer’s Guide 421922-014
22 - 39
The Process-Order Server ($SER2)
! Create an order number based on a Julian timestamp and
! the part number. The INTERPRETTIMESTAMP procedure
! converts the timestamp into a Gregorian date and time,
! which subsequent calls to NUMOUT convert into strings.
! Note that in the year part, the first 2 digits are
! truncated:
J^TIME := JULIANTIMESTAMP;
JD^NUMBER := INTERPRETTIMESTAMP(J^TIME,J^DATE^AND^TIME);
L := 0;
BASE := 10;
WIDTH := 2;
WHILE L < 6 DO
BEGIN
CALL NUMOUT(ORDER^RECORD.ORDER^NUMBER[L * 2],
J^DATE^AND^TIME[L],
BASE,WIDTH);
L := L + 1;
END;
WIDTH := 3;
CALL NUMOUT(ORDER^RECORD.ORDER^NUMBER[12],
J^DATE^AND^TIME[6],
BASE,WIDTH);
CALL NUMOUT(ORDER^RECORD.ORDER^NUMBER[15],
J^DATE^AND^TIME[7],
BASE,WIDTH);
ORDER^RECORD.ORDER^NUMBER[18] ':='
ORDER^REQUEST.PART^NUMBER FOR 10;
! Copy customer information from order record into
! order request:
ORDER^RECORD.NAME.LAST ':=' ORDER^REQUEST FOR
($LEN(ORDER^REQUEST) / 2);
! Get the date ordered (today's date) and put it into the
! order record:
CALL TIMESTAMP(ORDER^RECORD.DATE^ORDERED);
! Assign "NO" (new order) as the shipping status:
ORDER^RECORD.SHIPPING^STATUS ':=' "NO";