|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Cover Sheets are contained on a separate page |
and or,
| DJDE Packets generated by XPFC are applied by the Xerox printer at the next page boundary. |
![]()
![]()
MUST a *HOF be coded for certain situations?
![]()
In many cases, a *HOF is coded just to make sure that a Skip-to-HOF immediate PCC byte
WILL be output immediately before a SYSOUT dataset is sent to the printer.
For cases where there is NO XPFC Cover Sheet to be output at Start-of-Dataset..... such as ..... only a DJDE Packet is output to specify the output style of the following SYSOUT...... then a subsequent *HOF is not necessary. JES2 will generate an output line with a Skip-to-HOF immediate PCC byte if the first line in the SYSOUT dataset does NOT specify one.
For example, the JES2 JCL Image File and System Messages, asssociated with a job's JCL and execution do NOT contain such HOF skips.
For these SYSOUT datasets, and ANY other SYSOUT datasets generated by applications with no starting HOF skip, if XPFC is to produce a Start-of-Dataset Cover Sheet AND a DJDE Packet specifying the output style of the following SYSOUT, a *HOF AFTER the DJDE Packet line MUST be coded to ensure that the necessary Skip-to-HOF immediate PCC byte is generated BEFORE the SYSOUT dataset lines are sent to the printer.
This is because JES2 will NOT automatically generate an output line with a Skip-to-HOF immediate PCC byte BEFORE the SYSOUT dataset is sent to the printer ! JES2 detects that this has already been done by the *HOF specified before the XPFC Cover Sheet was sent to the printer.
For safety, the latest QuickStart XPFC Configurator Files supplied on the Install Tape specifies *HOF immediately after EVERY DJDE packet for ALL **DATASET Configurator File sections.
Some earlier QuickStart XPFC Configurator Files may miss some *HOF lines in certain **DATASET Configurator File sections. For safety, they should be inserted into your Production Configurator File. For example.......
| **DATASET |
| &Z FORMAT=XPFCFP,FORMS=NONE,DUPLEX=NO,END; |
| *HOF |
| XPFC V3R3 - START OF DATASET | ||
| JOBNAME - &J | ROOM - &R | |
| USER - &U | ||
| JES JOBNO - J&B | CLASS - &C | |
| DATE - &D | ||
| TIME - &T | ||
| JDE USED - &P | ||
| REPORT NAME - &I | ||
| &Z JDE=&P,END; | ||
| *HOF | ||
![]()
![]()
I already have output on the JES2 Spool generated by existing applications which contain
DJDE records to format the output .......... Can I customize XPFC so that this output is
still printed in the same way with no application/JCL changes?
![]()
Yes. All that is necessary is to customize XPFC in the following way;
| Ensure that XPFC does not insert cover
sheet information and DJDE Packets for this output by reserving a discrete Output Class
for this type of output which is specified on the Class list in the JES2 Printer
Definition but excluded from the Output Class list in the **CLASS Section of the
Configurator File. |
|
| Modify the DJDE identifier string used in
the XPFC QuickStart Configurator File and printer JSL to match that already used by the
application so that the existing JSL on the printer can be merged in with the XPFC
QuickStart JSL. XPFC is already compatible with most Xerox supplied packages ...... the Xerox host product XPPI uses the string $DJDE$ which is already used in the XPFC QuickStart Pack. |
![]()
![]()
I have followed the advice for the previous question ....... and the output from my
application still works fine and XPFC controls new output.
But .......... my old application relies on JES2 to produce a cover sheet - I would like to use the one created by XPFC as it looks better and I can customize it to my exact requirements.
Can XPFC provide just cover sheet information and leave the application's DJDE's to format the output?
![]()
Yes, it can.
In the example, XPPI DJDE packets in the output actually override XPFC DJDE formatting for the actual printed output, so merely include the Output Class of XPPI output in the Output Class list in the **CLASS Section of the Configurator File ......... and XPFC will provide the necessary Cover Sheets and the XPPI DJDE Packet will format the output correctly !
However, if your application is sensitive to DJDE Packets from XPFC, then you can still get XPFC to intervene by added the output Class to the **CLASS list in the Configurator File and prevent unwanted DJDE insertion at Start-of-Dataset by using one of the "FORCE"ing features of XPFC.
This is achieved by coding entries in the Configurator File in a manner similar to the following;
Insert a separate
"**DATASET name" definition with no subsequent entries following it like this; |
| Insert a **INTERVENE
Section to 'FORCE' selection of the above "**DATASET name"
entry based on certain criteria like this; **INTERVENE XPPI,XPPI.*.SYSPRINT |
|
| Turn on **INTERVENE processing. This is achieved by setting Column 29 of **OPTIONS to a "Y", or by coding the keyword "USEINTERVENE" under **OPTIONS. |
The aim here is to 'FORCE' XPFC to select a certain **DATASET entry when processing the output for which NO DJDE insertion (for print layout/formatting) required.
In the above example, ALL Jobs having a Proc-Stepname of "XPPI" using DDNAME SYSPRINT are forced to use a **DATASET entry of "XPPI".
When this entry is selected, because there are no lines following it in the Configurator File, NO DJDE packets are inserted when the output is sent to the printer - only the XPFC Start-of-Job Cover Sheet is sent at the start of the print job !
![]()
![]()
Must I use Start-of-Dataset Cover Sheets?
![]()
No.
They are included in the QuickStart Configurator Files to highlight their presence and be of use when installing and testing XPFC. The IVP uses them to display all XPFC run-time parameter values for some SYSOUT reports
The XPFC Configurator File pre-processing program requires that at least ONE Start-of-Dataset entry (ie **DATASET definition) is coded. This is the default entry to by used for every Start-of-Dataset call from JES2 when printing output.
If cover sheets are not required, then edit the default **DATASET entry in the Configurator File and remove the first DJDE and Cover Sheet information lines, but leave the final DJDE line and *HOF Line because they provide information to the Xerox printer as to how the actual print output is to be formatted.
Remove ALL other **DATASET entries and their respective lines of cover sheet and DJDE packet information ............ all output will then be printed with WITHOUT Start-of-Dataset cover sheets.
![]()
![]()
I have coded **FORMS and/or **FLASH entries with a list of valid values in the
Configurator File but XPFC is not performing any validity checking on the JCL value picked
up when output is printed.
![]()
Remember that just coding a validation or translation list section is not enough to get
XPFC to perform the desired operation.
You must also code the necessary entry(ies) under the **OPTIONS Section to invoke the control feature.
For XPFC Version 3 Release 2 column 23 must be set to "Y" for **FLASH processing to be active and Column 26 must be set to "Y" for **FORMS processing to be active.
For XPFC Version 3 Release 3 code the keyword "USEFLASH" for **FLASH processing to be active and code the keyword "USEFORMS" for **FORMS processing to be active.
![]()
![]()
I am mapping the JCL FORMS value to a JDE call on the Xerox printer.
Must I use the **FORMS validation list checking?
How does it help?
Each time I add a new FORM (ie "Print Style") I must add the new JDE entry in the Xerox printer JSL and re-compile, then update my Configurator File, run the "Configurate" batch job and wait for a warm start of JES2.
![]()
It is not strictly necessary to perform the **FORMS validation check.
However, if a job is printed that specifies a FORMS JCL value other than expected, this will cause a DJDE processing error on the Xerox printer which will then cause the printer to halt until the LPS Operator specifies "Continue".
By coding **FORMS entries for each valid FORMS JCL value and turning the XPFC FORMS validation feature on, if an invalid value is encountered, XPFC will provide a default (the first entry in **FORMS section) chosen by the user which will ensure that the printer will not halt until the Operator decides how to handle the error.
You might even like to consider adopting a standard whereby you have a "default cover sheet" which could perhaps include the text;
Wrong FORMS value requested - Please report to Xerox Printing Support.
........ Well ?
If updates are regularly being made to the Production Configurator File, use the InFlight Reloader feature of XPFC - there's information about this useful feature on a separate page on this Web site.
This allows new Configurator Files to be prepared and introduced without a warm start of JES2.
![]()
![]()
The QuickStart Configurator File codes **FORMS and **FLASH have a single entry and the
relevant columns of **OPTIONS have not been set to "Y" to turn on validation -
Do these entries provide anything?
![]()
Yes.
If a validation/translation type section such as **FORMS has been coded with a single entry, this value is used as a default if NO JCL value has been coded irrespective of whether the processing options in **OPTIONS have been turned on or off.
This allows the user to provide a sensible default for a range of JCL values where nothing will have been coded in the JCL.
![]()
![]()
I wish to "FORCE" a different cover sheet on all JES2 output - such as .......
Job Log, JCL images and System Messages.
What DSname value do I code in the **INTERVENE section entries?
![]()
If you wish to affect output for ALL Jobs then just specify the DDname by itself.
The DDname is made up by JES2 and may vary according to the version of JES2 installed.
To obtain the correct value, select the Held Output Queue on SDSF and place a "?" in the command field against any one of the Jobs shown ........ the resulting display will show the Jobname, Proc-stepname , stepname and DDname.
The **INTERVENE Section may then be coded as follows;
**INTERVENE JCL,JES*
In this example, JES2 at this installation identifies the DDnames of its sub-system datasets as "JESSYLOG", "JESJCL" and "JESSYMSG", so a single generic entry of JES* would force XPFC to use a value of "JCL" for the &F runtime parameter and thus select an appropriate **DATASET entry if one was present.
![]()
![]()
I have coded **FORCEFORM entries which I believe to be correct and set the relevant
**OPTIONS column to a 'Y'.
But when I test the results, none of the entries coded seem to cause the desired "FORCE"d Form to be applied ........ What is the problem?
![]()
First, verify the SYSOUT Dataset name (ie Jobname,Proc-Stepname, Stepname
and DDname) by using SDSF in the way described previously.
When specifying the DSNAME on the **FORCEFORM entries, remember that it is right justified if any levels are missed off ........ specifying an entry coded "SALES*.SYSPRINT" effectively means "*.*.SALES*.SYSPRINT" ......... ie ANY Jobname, ANY Proc-stepname with Stepname beginning "SALES", and DDname explicitly of "SYSPRINT".
Also ....... using "?" means any SINGLE character in that position so "SALES?" is not the same as "SALES*" for every possible Stepname ........ it would match on a value of "SALES1" but NOT "SALES01".
Even if a value is "FORCE"d by correct matching of the current output (Synthesised) SYSOUT Dataset Name, XPFC may still set the run-time parameter to a different value later on during validation processing.
Is there a list of Forms in a **FORMS section with column 26 of the **OPTIONS flags set to "Y"?
If so, is the "FORCE"d Form value specified?
If not, the "FORCE"d value will be rejected as invalid and the first entry in the list would be applied as the default !
XPFC derives the value for the FORMS and FLASH run-time parameters in the following manner:-
| Obtain the value coded (or system default
used) from the job's JCL |
|
| Process any "FORCE"d sections
in the Configurator File if turned on in the relevant **OPTIONS flags ........ this may
cause the runtime parameter taken from the JCL to be altered. |
|
| Process the **FORMS/**FLASH validation list is specified in the Configurator File. This may again cause the current value of the run-time parameter to be altered. |
![]()
![]()
Are any of the **OPTIONS flags mutually inclusive or exclusive?
For example ....... If a particular column is set to 'Y' must another value be set to 'Y' or 'N' as well?
![]()
No.
Each **OPTIONS flag controls a specific processing feature. They are additive and there are no restrictions on specific settings or combinations of settings unless the documentation recommends a particular value for a specific column.