When DBRMs or other members that contain special characters such as ++ or /, the item does not ADD to a PANLIB. When the speical characters are encountered in the member during an ADD, they are interpretted as commands and INVALID COMMAND errors are generated -
++OPTION INPUT,PDSDDN
***** ABOVE ACTION SATISFACTORILY COMPLETED *****
++ADD INVALID3,DATA
1 STATEMENT(S) 1 BLOCK(S) 76.00 AVERAGE BYTES
***** ABOVE ACTION SATISFACTORILY COMPLETED *****
++COMMAND 00011000
***** INVALID COMMAND ***** * ERROR MESSAGE = PV001 *
***** UNSATISFACTORY ACTION DUE TO ERROR *****
How can I ADD DBRMs or other members with special characters such as ++ or /?
The DLM parameter is implemented and documented for the AUDIT command,
but it works quite nicely for the ADD command as well.
Simply add DLM=xx to the ++ADD command.
In the examples below I used ## as the delimiters
but you can use any pair of characters not included in the member or input stream.
Example using PDS member:
//SYSIN DD *
++OPTION INPUT,PDSDDN
++ADD INVALID3,DATA,DLM=##
//
Example using instream data:
Delimit characters ## follow the last line of input data.
//SYSIN DD *
++ADD MYTST3,DATA,DLM=##
statement 1
statement 2
...etc
##
/*
//
The ++ADD will process until the ## statement is encountered.
This will cause the problem characters to be ignored and the data to be stored.
Be sure to have // at the end of the ADD job whether data is instream or not
or you will get a S013 abend.
You could optionally use a PAN#8 ++SCAN and ++REPLACE at a later time
to remove or substitute the problem characters.