Open dialog with virtual printer
Component: | SPOOL |
Functional area: | Controlling spoolout job |
Domain: | SPOOL-PRINT-SERVICES |
Privileges: | STD-PROCESSING |
Function
The OPEN-VIRTUAL-DEVICE-DIALOG command initializes the dialog between a virtual device and the user application procedure in which the call takes place. It is executed in batch mode only.
The command is part of a set of four commands which enable an application to be created in the form of an S procedure (see "Sample application procedure"). These commands manage the dialog between a virtual device and the application which was started in batch mode as an S procedure:
OPEN-VIRTUAL-DEVICE-DIALOG
GET-JOB-FROM-VIRTUAL-DEVICE
RETURN-JOB-TO-VIRTUAL-DEVICE
CLOSE-VIRTUAL-DEVICE-DIALOG
Format
OPEN-VIRTUAL-DEVICE-DIALOG |
Return codes
(SC2) | SC1 | Maincode | Meaning |
---|---|---|---|
0 | CMD0001 | No error; command successfully processed | |
32 | SCP0974 | Unexpected command | |
5 | 32 | SCP0974 | Memory request error |
Notes
This dialog with the virtual device need be initialized only once, at the beginning of the procedure.
If the dialog cannot be initialized, the command is rejected and a return code is set.
If initialization has already taken place, the command is rejected and a return code is set.
This command can only be used in batch mode.
Spin-off processing is activated each time an error is detected.
Sample application procedure
/SET-PROC-OPTIONS DATA-ESCAPE-CHAR=*STD,LOGGING-ALLOWED=*YES / " *************************************************************** " / " * PARAMETERS DECLARATION * " / " *************************************************************** " /BEGIN-PARAMETER-DECLARATION /END-PARAMETER-DECLARATION / " *************************************************************** " / " * END PARAMETERS DECLARATION * " / " *************************************************************** " /MODIFY-PROC-TEST-OPTIONS LOGGING=*PARAMETERS(CMD=*YES,DATA=*YES) /MODIFY-JOB-OPTIONS LOGGING=*PARAMETERS(LISTING=*YES,/ HARDCOPY=*YES) /MOD-TERMINAL-OPTION OVERFLOW-CONTROL=NO-CONTROL /STEP /DECL-VAR VAR-NA=JOB-ID,TYP=*STRING,SCOPE=*TASK /DECL-VAR TSN,TYP=*STRING /DECL-VAR ACTION(TYP=*STRING,INIT-VAL='*INIT') /DECL-VAR CONDITION,TYP=*BOOLEAN /DECL-VAR ERROR-LIST(INIT='(0,0,CMD0001)',TYP=*STRING) /STEP /OPEN-VIRTUAL-DEVICE-DIALOG / IF-CMD-ERROR / END-IF /STEP /WHILE CONDITION=(ACTION<>'*LAST') /STEP /GET-JOB-FROM-VIRTUAL-DEVICE FILE-PREFIX=*NONE, - / METADAT-PREFIX=*NONE, - / OUTPUT-DOC-ID=JOB-ID / IF-CMD-ERROR / ERROR-LIST='(&SUBCODE1,&SUBCODE2,&MAINCODE)' / SH-VAR ERROR-LIST / END-IF /STEP /IF ('&(SUBSTRING(JOB-ID,1,5))' == '*NONE') /CLOSE-VIRTUAL-DEVICE-DIALOG / IF-CMD-ERROR / ERROR-LIST='(&SUBCODE1,&SUBCODE2,&MAINCODE)' / SH-VAR ERROR-LIST / END-IF /EXIT-PROC /END-IF /STEP /TSN=SUBSTRING(JOB-ID,1,4) /STEP . . User-specific procedure part . . /RETURN-JOB-TO-VIRTUAL-DEVICE POST-ACTION=*WAIT /END-WHILE