Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Restrictions on the conversion into S procedures

&pagelevel(4)&pagelevel
  • 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

    1. 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.

    2. 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.