How can I ADD a DBRM or other members with special characters to a PANVALET PANLIB?

Document ID : KB000012031
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

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 *****     

Question:

How can I ADD DBRMs or other members with special characters such as ++ or /?

Environment:
Panvalet for z/OS
Answer:

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.



Additional Information:

You could optionally use a PAN#8 ++SCAN and ++REPLACE at a later time
to remove or substitute the problem characters.