AFP

AFP (Advanced Function Printing) reports captured through the 390 indexer must already have been formatted into an AFP Data Stream (AFPDS). This can be done by using ACIF (AFP Conversion and Indexing Facility) or by any third party program. The 390 indexer looks for index values within the AFPDS, either in TLE or NOP records. ACIF, and other programs, can automatically generate the TLE records. The NOP records for use by the 390 indexer have a fixed format.

The NOP record format provides space for 32 indexes of up to 256 characters each. One ODZOSSEG record must exist for each document. This identifies that a new document is starting, and provides one complete set of index values for the document.

One or more ODZOSDIR records can exist for each document. This record provides an additional set of index values for the document.

NOP record formats for earlier releases of Content Manager OnDemand for z/OS® and R/DARS-ESA are supported by the 390 indexer for compatibility purposes.

The following table shows the layout of the ODZOSSEG and ODZOSDIR NOP record.
Table 1. Layout of the ODZOSSEG and ODZOSDIR NOP record
Position Description
1 X'5A'
2 - 3 Length of this record - 1
4 - 6 X'D3EEEE'
7 - 9 X'000000'
10 - 17 'ODZOSSEG' or 'ODZOSDIR'
18 - 273 Value of field 1 (256 bytes)
274 - 529 Value of field 2 (256 bytes)
530 - 785 Value of field 3 (256 bytes)
786 - 1041 Value of field 4 (256 bytes)
1042 - 1297 Value of field 5 (256 bytes)
1298 - 1553 Value of field 6 (256 bytes)
1554 - 1809 Value of field 7 (256 bytes)
1810 - 2065 Value of field 8 (265 bytes)
2066 - 2321 Value of field 9 (256 bytes)
2322 - 2577 Value of field 10 (256 bytes)
2578 - 2833 Value of field 11 (256 bytes)
2834 - 3089 Value of field 12 (256 bytes)
3090 - 3345 Value of field 13 (256 bytes)
3346 - 3601 Value of field 14 (256 bytes)
3602 - 3857 Value of field 15 (256 bytes)
3858 - 4113 Value of field 16 (256 bytes)
4114 - 4369 Value of field 17 (256 bytes)
4370 - 4625 Value of field 18 (256 bytes)
4626 - 4881 Value of field 19 (256 bytes)
4882 - 5137 Value of field 20 (256 bytes)
5138 - 5393 Value of field 21 (256 bytes)
5394 - 5649 Value of field 22 (256 bytes)
5650 - 5905 Value of field 23 (256 bytes)
5906 - 6161 Value of field 24 (256 bytes)
6162 - 6417 Value of field 25 (256 bytes)
6418 - 6673 Value of field 26 (256 bytes)
6674 - 6929 Value of field 27 (256 bytes)
6930 - 7185 Value of field 28 (256 bytes)
7186 - 7441 Value of field 29 (256 bytes)
7442 - 7697 Value of field 30 (256 bytes)
7698 - 7953 Value of field 31 (256 bytes)
7954 - 8209 Value of field 32 (256 bytes)
The following example lists typical indexing parameters and values for AFP reports that use TLE records. Indexing parameters are specified on the Indexer Information page in the Content Manager OnDemand application.
TRIGGER1=*,1,X'5A',(TYPE=GROUP)  /* AFP x'5A' */
FIELD1=-0,1,14,(TRIGGER=1,BASE=0)
FIELD2=0,1,24,(TRIGGER=1,BASE=0)
FIELD3=0,1,18,(TRIGGER=1,BASE=0)
INDEX1=X'D796938983A8',FIELD1,(TYPE=GROUP,BREAK=YES)  /* Policy */
INDEX2=X'C39695A38595A3A2',FIELD2,(TYPE=GROUP,BREAK=NO)  /* Contents */
INDEX3=X'C995A2A4998584',FIELD3,(TYPE=GROUP,BREAK=NO) /* Insured */
INDEXSTYLE=AFP

In the previous example, the TRIGGER record is not used by the 390 indexer and is specified only to meet syntax checking requirements of the graphical indexer. The only value used from the FIELD records is the length value. The name fields of the INDEX values must match the Attribute Name field of the TLE records, and is used to map the index values back to the Application Group data table columns. The BREAK parameter of the INDEX record is not used.

The following example lists typical indexing parameters and values for AFP reports using NOP records. Indexing parameters are specified on the Indexer Information page in the Content Manager OnDemand application.
TRIGGER1=*,1,X'5A',(TYPE=GROUP)  /* AFP x'5A' */
FIELD1=-0,1,15,(TRIGGER=1,BASE=0) /* Length of data to extract = 15 */
FIELD2=0,1,11,(TRIGGER=1,BASE=0)  /* Length of data to extract = 11 */
FIELD3=0,1,8,(TRIGGER=1,BASE=0)   /* Length of data to extract = 8  */
FIELD4=0,1,8,(TRIGGER=1,BASE=0)   /* Length of data to extract = 8  */
INDEX1=X'F1',FIELD1,(TYPE=GROUP,BREAK=NO)   /* CUST_NAME    in NOP Field 1 */
INDEX2=X'F2',FIELD2,(TYPE=GROUP,BREAK=YES)  /* ACCOUNT_NUM  in NOP Field 2 */
INDEX3=X'F5',FIELD3,(TYPE=GROUP,BREAK=NO)   /* REPORT_DATE  in NOP Field 5 */
INDEX4=X'F6',FIELD4,(TYPE=GROUP,BREAK=NO)   /* POSTING_DATE in NOP Field 6 */
INDEXSTYLE=AFP

In the previous example, the TRIGGER record is not used by the 390 indexer and is specified only to meet syntax checking requirements of the graphical indexer. The only value used from the FIELD records is the length value. The name fields of the INDEX values are character representations of numbers which point to the position within the NOP record where the index value is to be found for each index. The BREAK parameter of the INDEX record is not used.

Special consideration is needed when dealing with the Posting Date field with the older style of NOP records.
  • Content Manager OnDemand for z/OS V2.1 used NOP record types of OD390SEG and OD390DIR. The INDEX record for the Posting Date field must specify a name value of X'F1F7', for example:
    INDEX4=X'F1F7',FIELD4,(TYPE=GROUP,BREAK=NO) /*POSTING_DATE in OD390SEG NOP*/
  • Content Manager OnDemand for z/OS V1.1 and R/DARS-ESA used NOP record types of RDARSSEG and RDARSDIR. The INDEX record for the Posting Date field must specify a name value of X'F6', for example:
    INDEX4=X'F6',FIELD4,(TYPE=GROUP,BREAK=NO) /*POSTING_DATE in RDARSSEG NOP*/