Guardian Programmer's Guide

Table Of Contents
Communicating With Processes
Guardian Programmer’s Guide 421922-014
6 - 40
Programming the Requester
! Prompt for a part description:
SBUFFER ':=' "Enter Part Description: " -> @S^PTR;
CALL WRITEREADX(TERMNUM,SBUFFER,@S^PTR '-' @SBUFFER,
BUFSIZE,COUNT^READ);
IF <> THEN CALL FILE^ERRORS(TERMNUM);
IF TYPE = NEW OR COUNT^READ > 0 THEN
BEGIN
COUNT^READ := $MIN(COUNT^READ,DESCSIZE);
BLANK^FILL(REQUEST.PART.DESCRIPTION);
REQUEST.PART.DESCRIPTION ':=' SBUFFER
FOR COUNT^READ;
REQUEST.PART.DESC^LEN := COUNT^READ;
END;
! Prompt for the name of the supplier:
SBUFFER ':=' "Enter Supplier Name: " -> @S^PTR;
CALL WRITEREADX(TERMNUM,SBUFFER,@S^PTR '-' @SBUFFER,
BUFSIZE,COUNT^READ);
IF <> THEN CALL FILE^ERRORS(TERMNUM);
IF TYPE = NEW OR COUNT^READ > 0 THEN
BEGIN
COUNT^READ := $MIN(COUNT^READ,SUPPSIZE);
BLANK^FILL(REQUEST.PART.SUPPLIER);
REQUEST.PART.SUPPLIER ':=' SBUFFER
FOR COUNT^READ;
REQUEST.PART.SUP^LEN := COUNT^READ;
END;
! Prompt for the quantity on hand:
PROMPT^AGAIN:
SBUFFER ':=' "Enter Quantity On Hand: " -> @S^PTR;
CALL WRITEREADX(TERMNUM,SBUFFER,@S^PTR '-' @SBUFFER,
BUFSIZE,COUNT^READ);
IF <> THEN CALL FILE^ERRORS(TERMNUM);
IF TYPE = NEW OR COUNT^READ > 0 THEN
BEGIN
SBUFFER[COUNT^READ] := 0;
@NEXT^ADDR := NUMIN(SBUFFER,REQUEST.PART.ON^HAND,10,
STATUS);
IF STATUS OR @NEXT^ADDR <> @SBUFFER[COUNT^READ] THEN
BEGIN
PRINT^STR("Invalid number");
GOTO PROMPT^AGAIN;
END;
END;