ENTER files cannot be converted into S procedures by means of SDF-CONV.
SDF-CONV reports an error if the name of a procedure parameter exceeds 20 characters. While the names of procedure parameters in non-S procedures may be up to 255 characters long, a maximum length of 20 characters applies to S procedures.This restriction does not apply to positional operands; these are automatically abbreviated by SDF-CONV, if required.
Command lines in non-S input procedures are only evaluated up to the 72nd character; all characters from column 73 onward are ignored.
Conversion may affect the logging control. While in non-S procedures, logging is determined exclusively by the called procedure, in S procedures, it is also dependent on the relevant setting for the calling environment.
No conversion takes place if more than one job variable has to be replaced in any value of any procedure parameter.
If the first significant character following a command name in a non-S input procedure is an equal sign, SDF-CONV issues a WARNING, except in the event of command records containing the REMARK command.
SDF-P does not support recursive replacement of procedure parameters.
Procedure parameters and job variables in S procedures can contain further expressions which are to be replaced within the parentheses which enclose them, e.g. &(JOBVAR1&(JOBVAR2)). This feature is not supported by SDF-CONV.
Example
Non-S procedure:
/BEGIN-PROC A,PAR=YES(PROC-PAR=(&TEST=)) /MOD-JV JV(JV-NAME=JOBVAR),VALUE='&&TEST' /SHO-JV JV(JV-NAME=JOBVAR) /REMARK &TEST /WR-TEXT '&(JOBVAR)' /EXIT-PROC
Trace listing of the non-S procedure:
/CALL-PROC EXA-NON-S %/BEGIN-PROC A,PAR=YES(PROC-PAR=(&TEST=)) %/MOD-JV JV(JV-NAME=JOBVAR),VALUE='&TEST' %/SHO-JV JV(JV-NAME=JOBVAR) %&TEST %/REMARK &TEST %&TEST=hallo %/REMARK HALLO %/WR-TEXT 'HALLO' HALLO %/EXIT-PROC
The job variable JOBVAR is replaced in two steps.
JOBVAR contains the value of the procedure parameter TEST i.e. HALLO.
S procedure:
/SET-PROC-OPTIONS LOG=YES /BEGIN-PAR-DEC /DECLARE-PAR NAME=TEST (INIT=*PROMPT) /END-PAR-DEC /MOD-JV JV(JV-NAME=JOBVAR),VALUE='&&TEST' /SHO-JV JV(JV-NAME=JOBVAR) /REMARK &TEST /WR-TEXT '&(JV('JOBVAR'))'
Trace listing of the S procedure:
/CALL-PROC EXA-S,LOG=YES % 1 1 /SET-PROCEDURE-OPTIONS LOGGING-ALLOWED=YES,INTERRUPT% ALLOWED=YES,DATA-ESCAPE-CHAR=NONE,SYSTEM-FILE-CONTEXT=OWN,% DATA-ERROR-HANDLING=NO % 1 1 /BEGIN-PARAMETER-DECLARATION % 1 1 /DECLARE-PARAMETER NAME=TEST,TYPE=ANY,INIT=*PROMPT % 1 1 /END-PARAMETER-DECLARATION % 6 1 /MOD-JV JV(JV-NAME=JOBVAR),VALUE='&TEST' % 7 1 /SHOW-JV JV(JV-NAME=JOBVAR) %&TEST %TEST: hallo % 8 1 /REMARK 'HALLO' % 9 1 /WRITE-TEXT '&TEST' &TEST % 11 1 /IF-BLOCK-ERROR % 11 1 /END-IF % 11 1 /EXIT-PROCEDURE
The job variable JOBVAR is replaced in a single step.
JOBVAR contains &TEST.