Adding members to Panvalet that contain Panvalet commands

Document ID : KB000055582
Last Modified Date : 30/03/2018
Show Technical Document Details
Introduction:

When reading SYSIN statements, CA Panvalet checks for commands to execute and it does this by checking positions 1 & 2 of the input records. If it encounters a record with a ++ or -- , it acts on that record as though it is a Panvalet command and it attempts to execute it.

There are times when one wants to add a member to a Panvalet library that contain ++ or --  in columns 1 & 2. 

Using the ++ADD DLM parameter eliminates the need to manually modify the member before adding it to the Panvalet library.  

Background:
There are several ways to add members with special characters in positions 1 & 2. One method that has been around for quite a while is to change the 1st character to a $  resulting in the special character combinations of:  $+ , $- , $/.   The member will be added to the Panvalet library with the $+ , $- , $/  combination. When the member is written back out, Panvalet will convert them back to ++ and -- and // respectively. However, in order for this to occur, one must manually change the first character in all of the records before adding the member.   See  Special Input Character Combinations for more information about using special character combinations in positions one and two.
Instructions:
Download SO00056 from CA Support Online and apply it. 

Use a DLM parameter on the ++ADD command for any members containing statements with  ++ or --  in column 1 & 2:
++ADD newmem,type,DLM=dc
dc

Select two characters that are not currently in positions 1 & 2 of the member being added as the delimiter characters.  Panvalet will now read the input as data until it reads the two character delimiter.

Here is an example for adding 3 JCL members from a PDS.  When reading members directly from a PDS library or sequential file, you do not need to change the 1st character of any JCL statements to $, because it is not instream in SYSIN and JES will not see it.  

//STEP01   EXEC PGM=PAN#1,REGION=4M               
//SYSPRINT DD  SYSOUT=*                                                                                                      
//PANDD1   DD  DISP=SHR,DSN=YOUR.PANVALET.LIBRARY
//PDSIN    DD  DISP=SHR,DSN=INPUT.PDS.FILE
//SYSIN    DD  *                                  
++OPTION INPUT,PDSIN
++ADD JCL001,JCL,DLM=??
??
++ADD PARM1,DATA
++ADD JCL002,JCL,DLM=??
??
++ADD JCL003,JCL,DLM=$$
$$
++ADD PARM2,DATA
/*
//



In this example which contains JCL as instream in SYSIN and seen by JES. You must still change the 1st character to a $, otherwise JES will take it as JCL to be executed.

  
//STEP01   EXEC PGM=PAN#1,REGION=4M               
//SYSPRINT DD  SYSOUT=*                                                 
//PANDD1   DD  DISP=SHR,DSN=YOUR.PANVALET.LIBRARY 
//SYSIN    DD  *                                  
++ADD SV1DLM,JCL,DLM=##                           
$/JOBCARD1 JOB  (00000000),'NAME',CLASS=K,MSGCLASS=X,MSGLEVEL=(1,1)             
$/STEP01   EXEC PGM=PAN#2,REGION=4M               
$/SYSPRINT DD  SYSOUT=*                                            
$/PANDD1   DD  DISP=SHR,DSN=YOUR.PANVALET.LIBRARY 
$/SYSIN    DD  *                                  
++PRINT 0-UP                                      
$*
$/
##
/* 
//

 

 

Additional Information:
See the ADD Command on CA DocOps