Skip to main content
Version: 8.1

call - UDM Command

Syntax​

call script-file [parameter-name=parameter-value]...

Description​

The call command loads and executes a command script.

Scripts are interpreted line by line, with parameter substitution made just before each line is executed. Parameter substitution is indicated with a $(PARAMETER_NAME) sequence in the called script. Parameters are replaced by the value corresponding with the parameter's name (name=value format) in the call command itself. Each parameter of the call command must have a corresponding value.

call commands can be nested in called scripts up to ten levels deep.

If a parameter with the same name appears more than once in call, the first instance of the parameter with that name is used. If a parameter is referenced in the script, but was not passed in via the call command, an error is issued when the line with the reference is parsed.

Parameters​

Parameter

Description

script-file

Filename of the script to process.

parameter-name

Name of a parameter to pass to the script.

parameter-value

Value to be set for the parameter.

Examples​

To invoke a script called script.udm.

  • Parameter file has a value of *.
  • Parameter src has a value of c:\source.
  • Parameter dst has the value /etc/dest.
call script.udm file=* src=c:\source dst=/etc/dest

To invoke a script under IBM i, the member name is required and can be *FILE:

call mylib/myfile(myscript)

Specifying *FILE invokes the normal default IBM i file search order.

To invoke a script under IBM i included as an inline file in a database job, the call must specify *FIRST as the database member name.

The following example illustrates both:

  • Invocation of an inline script, CALLME, using the STRUDM command from a database job.
  • Invocation of an inline script, CALL1, using the CALL command from a database job.
//BCHJOB JOB(testcall) ENDSEV(10) OUTQ(mytest/UDMOUTQ) LOGCLPGM(*YES)
LOG(2 20 *SECLVL) MSGQ(*USRPRF)
//DATA FILE(CALL1) ENDCHAR(ENDDATAFILE)
print msg="I made it to call1 - an inline file"
ENDDATAFILE
//DATA FILE(CALLME) ENDCHAR(ENDDATAFILE)
OPEN S=AS400V5 USER=qatest PWD=***** PORT=4311
CALL CALL1(*FIRST)
CLOSE
ENDDATAFILE
STRUDM SCRFILE(CALLME)
//ENDBCHJOB