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