Upgrading File-AID/Data Solutions custom date pattern and field level exits
Task 5.1.1 Determine if you are using a Supplied Date Pattern Exit
Since Data Solutions is distributed with more than 50 date exits, it handles the vast majority of the date formats you encounter in your data. The following table describes the characteristics of the sample formatted date pattern exits supplied with File-AID.
Supplied Date Pattern Exits
Load Module Name | Date Pattern | Data Type(s) | Description | Example |
|---|---|---|---|---|
MONTH-DAY-YEAR | ||||
UDAA0100 | MMDDYY | B,C,N,P | 6 DIGIT Gregorian | 090197 |
UDAA0102 | MMDDCCYY | B,C,N,P | 8 DIGIT Gregorian | 09011997 |
UDAA0101 | MM*DD*YY | C,N | 8 CHAR. Gregorian | 09/01/97 |
UDAA0103 | MM*DD*CCYY | C,N | 10 CHAR. Gregorian | 09/01/1997 |
UDAA0112 | MMMDDYY | C | 7 CHAR. Gregorian | SEP0197 |
UDAA0113 | MMM*DD*YY | C | 9 CHAR. Gregorian | SEP/01/97 |
UDAA0114 | MMMDDCCYY | C | 9 CHAR. Gregorian | SEP011997 |
UDAA0115 | MMM*DD*CCYY | C | 11 CHAR. Gregorian | SEP/01/1997 |
UDAA0130 | MDY | C | 3 CHAR. Gregorian | 090197 Pseudo packed. |
UDAA0132 | MMDDCCYYJJJ | B,C,N,P | 11 DIGIT Gregorian/Julian | 09011997244 |
UDAA0141 | MMDDYYJJJ | B,C,N,P | 9 DIGIT Gregorian/Julian | 090197244 |
UDAA0137 | MMYY | B,C,N,P | 4 DIGIT Gregorian | 0997 No day of month. |
UDAA0140 | MMCCYY | B,C,N,P | 6 DIGIT Gregorian | 091997 No day of month. |
YEAR-MONTH-DAY | ||||
UDAA0104 | YYMMDD | B,C,N,P | 6 DIGIT Gregorian | 970901 |
UDAA0106 | CCYYMMDD | B,C,N,P | 8 DIGIT Gregorian | 19970901 |
UDAA0105 | YY*MM*DD | C,N | 8 CHAR. Gregorian | 97/09/01 |
UDAA0107 | CCYY*MM*DD | C,N | 10 CHAR. Gregorian | 1997/09/01 |
UDAA0138 | DB2-TIMESTAMP | C,N | 26 CHAR. Gregorian | 1997-09-01- 23.59.59.999999 |
UDAA0116 | YYMMMDD | C,N | 7 CHAR. Gregorian | 97SEP01 |
UDAA0117 | YY*MMM*DD | C,N | 9 CHAR. Gregorian | 97/SEP/01 |
UDAA0118 | CCYYMMMDD | C,N | 9 CHAR. Gregorian | 1997SEP01 |
UDAA0119 | CCYY*MMM*DD | C,N | 11 CHAR. Gregorian | 1997/SEP/01 |
UDAA0124 | YYMMDD-9COMP | B,C,N,P | 6 DIGIT Gregorian | 029098 (970901) 9’s complement |
UDAA0125 | CCYYMMDD-9COMP | B,C,N,P | 8 DIG. Gregorian | 80029098 (19970901) 9’s complement |
UDAA0127 | CYYMMDD-18 | B,C,N,P | 7 DIGIT Gregorian | 0970901 (18970901) Digit 1: 0=18yy, 1=19yy, ETC. |
UDAA0128 | CYYMMDD | B,C,N,P | 7 DIGIT Gregorian | 0970901 (19970901) Digit 1: 0=19yy, 1=20yy, ETC. |
UDAA0136 | CYYMMDD-9COMP | B,C,N,P | 7 DIGIT Gregorian | 9029098 (19970901) Digit 1: 9=19yy, 8=20yy, ETC. |
UDAA0133 | CCYYMMDDJJJ | B,C,N,P | 11 DIGIT Gregorian/Julian | 19970901244 |
UDAA0134 | CCYYJJJMMDD | B,C,N,P | 11 DIGIT Gregorian/Julian | 19972440901 |
UDAA0135 | CFODATE | P | 5+3 DIGIT Gregorian Two separate packed fields. | 02373001 (19970901) MMMMMDDD (00001001 = 1/1/1800) |
UDAA0209 | YMD | C,M | 3 Byte unsigned packed, Gregorian | 970901 |
UDAA0210 | CYMD | C,M | 4 Byte unsigned packed, Gregorian | 19970901 |
UDAA0211 | YMD-9COMP | C,M | 3 Byte, unsigned packed, 9s compliment, Gregorian | 020998 |
UDAA0212 | CYMD-9COMP | C,M | 4 Byte, unsigned packed, 9s compliment, Gregorian | 80020998 |
YEAR-MONTH | ||||
UDAA0126 | CCYYMM | B,C,N,P | 6 DIGIT Gregorian | 199709 No day of month. |
UDAA0139 | YYMM | B,C,N,P | 4 DIGIT Gregorian | 9709 No day of month. |
YEAR | ||||
UDAA0129 | CCYY | B,C,N,P | 4 DIGIT Gregorian | 1997 Just year. |
UDAA0131 | YY | B,C,N,P | 2 DIGIT Gregorian | 97 Just year. |
DAY-MONTH-YEAR | ||||
UDAA0108 | DDMMYY | B,C,N,P | 6 DIGIT Gregorian | 010997 |
UDAA0110 | DDMMCCYY | B,C,N,P | 8 DIGIT Gregorian | 01091997 |
UDAA0109 | DD*MM*YY | C,N | 8 CHAR. Gregorian | 01/09/97 |
UDAA0111 | DD*MM*CCYY | C,N | 10 CHAR. Gregorian | 01/09/1997 |
UDAA0120 | DDMMMYY | C,N | 7 CHAR. Gregorian | 01SEP97 |
UDAA0121 | DD*MMM*YY | C,N | 9 CHAR. Gregorian | 01/SEP/97 |
UDAA0122 | DDMMMCCYY | C,N | 9 CHAR. Gregorian | 01SEP1997 |
UDAA0123 | DD*MMM*CCYY | C,N | 11 CHAR. Gregorian | 01/SEP/1997 |
JULIAN DATES | ||||
UDAA0200 | YYDDD | B,C,N,P | 5 DIGIT Julian | 97244 |
UDAA0208 | YYDDDHHMM | B,C,N,P | 9 DIGIT Julian With time. | 972442359 |
UDAA0201 | CCYYDDD | B,C,N,P | 7 DIGIT Julian | 1997244 |
UDAA0202 | 00YYDDD | B,C,N,P | 7 DIGIT Julian | 0097244 (1997244) Digits 1-2: 00=19yy, 01=20yy, etc. |
UDAA0203 | YYDDD-9COMP | B,C,N,P | 5 DIGIT Julian | 02755 (97244) 9’s complement |
UDAA0204 | CCYYDDD-9COMP | B,C,N,P | 7 DIGIT Julian | 8002755 (1997244) 9’s complement |
UDAA0205 | 00YYDDD-9COMP | B,C,N,P | 7 DIGIT Julian | 9902755 (1997244) 9’s complement and 99=19yy, etc. 98=18YY = |
UDAA0206 | CYYDDD | B,C,N,P | 6 DIGIT Julian | 097244 (1897244) Digit 1: 0=18yy, 1=19yy, etc. |
UDAA0207 | CYY-DDD | P | 3+3 DIGIT Julian Two separate packed fields. | 197244 (1997244) Digit 1: 0=18yy, 1=19yy, etc. |
Miscellaneous | ||||
UDAA0213 | YYQ-QUARTAL | B,C,N,P | 3 DIGIT Gregorian | 973 |
UDAA0214 | CCYYMMDD-MORIZ | B,C,N,P | 8 DIGIT Gregorian | 10029099 |
UDAA0215 | CCYYMMDD-HYPER | B,C,N,P | 8 DIGIT Gregorian | 19970133 |
Task 5.1.2 Customizing Date Pattern Exits
If you want to add your own date pattern exits for processing by Data Solutions, you need to do the following:
- Use one of the File-AID-provided COBOL date exits, AGERnnnn-named members in the sample library (hlq.SXVJSAMP), as a model. Look for an exit that is similar to your date pattern. Save it under a new date exit name, use AGER0700 – AGER0999 if the exit is non-LE enabled or AGER1000 – AGER9999 if the exit is LE enabled. Make any modifications or adjustments required for your date pattern. Use UDAEXITL in the sample library (hlq.SXVJSAMP) to compile and link your new date pattern exit.
Identify your environment library names (See Step 12. Specify External Files in the BMC Installer Mainframe Products SMP/E Installation).
- Update DATELIST in hlq.SXVJSAMP to add your new date pattern exit.
- Use sample JCL UDADLIST in the sample library (hlq.SXVJSAMP) to assemble and link to LOAD module DATELIST in your Configuration LOAD library (hlq.CXVJLOAD).
Each entry in the Date Pattern Exit Table consists of the following six fields:
Data type
Specify B (Binary), C (Character), G (Graphic, Double Byte Character Set), N (Numeric), P (Packed), V (Variable length Character), or W (Variable length Graphic, Variable length Double Byte Character Set). The data type is determined by the record layout specified for the Formatted aging criteria. It has a length of one byte. If your exit handles more than one data type, add a date entry for each data type to the Date Pattern Exit Table (DATELIST).
Date pattern name
Specify a unique name alphanumeric 1 to 15 characters. The date pattern name is the name that you specify on the Formatted Aging Criteria screen or select from the Available Date Patterns screen.
Date length
Specify the number of bytes (not digits) that Data Solutions will pass to and return from the date pattern exit. For example, packed 7 digits is 4 bytes.
Load module name
Specify the load module name of your new exit (AGER0700 – AGER0999 if the exit is non-LE enabled or AGER1000 – AGER9999 if the exit is LE enabled). It must begin with “AGER” and end with a four-digit number from 0700 to 9999. Numbers from 0000 to 0699 are reserved for date pattern exits written by BMC.
Description
Specify up to 30 characters describing your new date pattern exit. This description is displayed on the Available Date Patterns screen.
Filler
Specify a 3 byte filler.
Date Exit Compile/Link JCL
COBOL Version | Use JCL: |
|---|---|
LE 370 / COBOL for MVS | UDAEXITL |
Add the appropriate information (in Date Exit Compile/Link JCL) for your COBOL date exit to the Date Pattern Exit Table in Sample PDS member DATELIST. Use UDADLIST to reassemble and link edit the table.
The following figure shows the date pattern exit flow for File-AID/Data Solutions and COBOL.
File-AID/Data Solutions and COBOL Date Pattern Exit Flow

Task 5.2 Upgrading BMC AMI DevX File-AID/Data Solutions Custom Field Level Exits
Task 5.2.1 Determine If You are Using a Supplied Field-Level Exit
File-AID uses field-level exits shown in the following table to define and process both Data Solutions-defined and user-defined business function data conversions. Data Solutions takes the specified data field, passes it to the field-level exit for conversion, and returns the new value to the data field. File-AID is distributed with the field-level exits.
Data Solutions Field-Level Exits
Name | Description | Load module Name |
|---|---|---|
ADD | Add | UDAE0104 |
DATA ANALYSIS | Analyze field for valid data | UDAE0110 |
DATE ANALYSIS | Analyze field for date pattern | UDAE0001 |
DATE DIFFERENCE | Calculate difference | UDAE0113 |
DIVIDE | Divide | UDAE0107 |
ENCRYPT | Encryption/Decryption | UDAE0101 |
ENCRYPTC | Treat numeric NUMERIC as CHAR | UDAE0122 |
ENCRYPTN | Treat numeric CHAR as NUMERIC | UDAE0121 |
EURO-DATE | European Currency Conversion based on dates entered by user | UDAE0117 |
EURORATE | European Currency Conversion | UDAE0100 |
EURORATE-USER | European Currency Conversion | UDAE1000 |
GENDATE | Test Date Generator | UDAE0102 |
GLOBAL | Use Global Area | UDAE0108 |
MOD-10 | Non-standard Check Digit Numeric MOD-10 | UDAE0114 |
MOD-10 LUHN | Standard Check Digit Numeric MOD-10 (LUHN algorithm - used to validate identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers in US and Canadian Social Insurance Numbers.) | UDAE0118 |
MOD-11 | Check Digit Numeric MOD-11 | UDAE0115 |
MOD-ALPHA | Check Digit Alphanumeric | UDAE0116 |
MOVE FIELD | Move field | UDAE0003 |
MULTIPLY | Multiply | UDAE0106 |
REPLACE | Field Replacement | UDAE0200 |
RESEQ | Resequencing | UDAE0103 |
SUBTRACT | Subtract | UDAE0105 |
Task 5.2.2 Add Your Own Field-level Exits
If you want to add your own field-level exits for processing by File-AID, you need to do the following:
- Use one of the File-AID-provided COBOL field-level exits, EXITnnnn-named members in the sample library (hlq.SXVJSAMP), as a model. Save it under a new exit name EXIT0700 – EXIT0999 if the exit is non-LE enabled or EXIT1000 – EXIT9999 if the exit is LE enabled. Make your modifications. Use UDAEXITL to compile and link your new field exit.
Identify your environment library names (See Step 12. Specify External Files in the BMC Installer Mainframe Products SMP/E Installation).
- Update EXITLIST in hlq.SXVJSAMP to add your new field exit.
Use sample JCL UDAELIST in the sample library (hlq.SXVJSAMP) to assemble and link to LOAD module EXITLIST in your Configuration LOAD library (hlq.CXVJLOAD).
Each entry in the Field-Level Exit Table consists of the following fields:
Data type
Specify B (Binary), C (Character), G (Graphic, Double Byte Character Set), N (Numeric), P (Packed), V (Variable length Character), or W (Variable length Graphic, Variable length Double Byte Character Set). The data type is determined by the record layout specified for the field exit criteria. It has a length of one byte. If your exit handles more than one data type, add an entry for each data type supported to the Field-Level Exit Table (EXITLIST).
Field-level exit name
Specify a unique name alphanumeric 1 to 15 characters. The exit name is the name that you specify on the Formatted Field Exit Criteria screen or select from the Available Field Exits screen.
Field length
Specify the maximum number of bytes (not digits) that Data Solutions will pass to and return from the field exit. For example, packed 7 digits is 4 bytes. (An exit can process fields of various lengths.)
Load module name
Specify the load module name of your new exit (EXIT0700 – EXIT0999 if the exit is non-LE enabled or EXIT1000 – EXIT9999 if the exit is LE enabled). It must begin with “EXIT” and end with a four-digit number from 0700 to 9999. Numbers from 0000 to 0699 are reserved for field-level exits written by BMC.
Description
Specify up to 30 characters describing your new field-level exit. This description is displayed on the Available Field Exits screen.
Filler
Specify a 3 byte filler.
Field-Level Exit Complile/Link JCL
COBOL Version
Use JCL:
LE 370 / COBOL for MVS
UDAEXITL
- Add the appropriate information (listed above) for your COBOL field-level exit to the Field-Level Exit Table in the sample library (hlq.SXVJSAMP) member EXITLIST.
- Use UDAELIST to reassemble and link edit the table.