Modified a processor with a symbolic &CMPSYSIN.
Had no issues when specifying just the DSName -
// CMPSYSIN='iprfx.xx.xxxx.VPS#00.CBL',
Changed &CMPSYSIN to DSName(member) and now get the C1A0010E error :
Changed processor code lines:
// CMPSYSIN='iprfx.xx.xxx.VPS#00.CBL(xxxxxx)',
…
//SYSIN DD DSN=&CMPSYSIN,
// DISP=SHR
C1MSGS1 output:
C1G0009I ORIGINAL : &CMPSYSIN
C1G0009I SUBSTITUTED : iprfx.xx.xxx.VPS#00.CBL(xxxxxx)
…
C1X0010I STEP TESTSRCE PROGRAM IRXJCL COMPLETED, RC=0000
C1A0010E ALLOCATION ERROR RC=035C-0002, DDNAME=SYSIN
C1A0011E IKJ56231I FILE SYSIN NOT ALLOCATED, SYSTEM OR INSTALLATION E
C1A0012E IKJ56231I TEXT UNIT X'0002' CONTAINS INVALID PARAMETER
C1G0000I ELEMENT xxxxxx
Results: Program generate fails with RC=0016
All Supported Releases
This is expected and documented behavior.
When using a symbolic for a data name, cannot include the member name as part of symbolic. Must use 2 symbolics.
See Symbolic Parameters:
- When using a symbol for a data set, do not include the member name as part of the symbol or you get an allocation error. Use two symbols, for example:
//SYSLIB DD DSN=&LIB1(&C1ELEMENT)
NOTE: There are scenarios where there are no symbolics being used for the dataset naming convention. Other items to check for TEXT UNIT X'0002' is whether the physical dataset exists (could be defined via symbolic override) or check in the symbolic override screen to ensure there are no random (possibly invisible) characters at the end of the dataset name.