Академический Документы
Профессиональный Документы
Культура Документы
Part 1: Introduction
The ACIF (AFP Conversion and Indexing Facility) utility consists of three separate but
related functions. ACIF can do the following:
- convert line data to AFP
- index data
- collect AFP resources
ACIF accepts as input either line data or AFP and can produce 3 output files:
- the output file, extension .out, which is either line data or AFP
- the index file, extension .ind, which is an AFP file
- the resource file, extension .res, which is an AFP file
There are 3 different combinations of input and output when running ACIF:
A subset of (2) is mixed mode input, which is line data with AFP records -> AFP output
Set the parameter CONVERT=YES
An AFP formdef and pagedef are required for conversion
AFP resources can be collected
Files produced: .out, .ind, .res
Types of ACIF Parameters
FILEFORMAT parameter
If the input is AFP, the FILEFORMAT parameter is not needed, except for AFP in record
format.
MACHINE
Machine carriage controls occur in EBCDIC data created on z/OS.
Since machine carriage controls are binary values, if a file contains them, the file must
always be transferred as binary. Machine carriage controls cannot be converted to
ASCII.
You can find more information on the web about ANSI and Machine carriage controls.
The most common delimiters are x’0A’ and x’0D0A’. Note that the carriage control and
the delimiter are two different things: the delimiter separates the records, the carriage
control is the first byte of each record. The carriage control follows the delimiter, except
at the beginning of the file, where the carriage control is the first byte. Therefore, to
search in a hex editor for the beginning of the next page of a file which uses x’0A’ as the
delimiter, search for x’0AF1’ or x’0A31’.
When analyzing a problem, it is important to know the format of the data. What is it?
Look at the input in a hexadecimal editor to be sure.
In the HexEdit editor, use View->Character Set->EBCDIC to switch from ASCII to
EBCDIC. Use Tools->Options->window tab to set number of columns displayed.
ASCII line data with no carriage controls and x’0C’, use input exit ASCIINP or
ASCIINPE
AFP Structured Fields
The first nine bytes of an AFP record are called the Structured Field Introducer. Here is
an example:
5A 00 10 D3 A8 A8 00 00 00…
What follows the reserved bytes depends on the type of Structured Field.
The MODCA Reference can also be found on the website of the AFP Consortium.
AFP, FILEFORMAT parameter is not needed
Here are some examples in hexadecimal of the AFP Structured Field Introducer of the
most common Structured Fields that you may see at the beginning of an AFP file:
An AFP Structured Field can begin with a 2-byte length prefix. This is called record
format. Here is an example:
00 11 5A 00 10 D3 A8 A8 00 00 00 …
Note that the length in the 2-byte prefix is one greater than the length in the Structured
Field. This is because the 2-byte prefix includes the x’5A’, but does not include itself.
AFP in RECORD format, this is valid
Mixed Mode: AFP and ASCII line data with ANSI carriage controls,
FILEFORMAT=stream
What is this? It’s AFP that has been transferred as text instead of binary. It is no longer
valid.
There are two ways to run ACIF: from arsload or from the command line.
When arsload runs, it calls the indexer specified in the Application on the Index
Information tab.
ACIF can also be run from the command line like this:
>arsacif parmdd=<parameter file name>
To run ACIF from the command line, the inputdd, outputdd, indexdd and resobjdd (if
needed) parameters must be added to the parameter file. For example, here are the
contents of a parameter file named ‘test’:
cc=yes
cctype=a
cpgid=500
formdef=F1010110
reslib=\acif\reslib
inputdd=\acif\input\tle0.afp
outputdd=\acif\output\weirdtle.out
indexdd=\acif\index\weirdtle.ind
To run acif with this parameter file, enter the following on the command line:
>arsacif parmdd=test
This example would create an .out file named weirdtle.out and an .ind file named
weirdtle.ind.
The ACIF level can be determined by the xxxxxxx number in the final ACIF message,
for example:
Or
When ACIF indexes and converts a file from line data to AFP, the indexes are extracted
before the conversion to AFP.
When the trigger is found, ACIF collects the field values that will go into the index file.
When the trigger appears again on a subsequent page, ACIF will look at the field values
again.
When one of the field values changes, a new group will be started.
A group cannot be smaller than a page, i.e. you cannot create a new group except on a
new page boundary.
The trigger and fields displayed in the Graphical Indexer, page 2.
TRIGGER1=*,65,X'D7C1C7C5F1' /* PAGE1 */
Look in every record in column 65 for the trigger.
INDEX1=X'D5C1D4C5',FIELD1 /* NAME */
The field1 value is associated with the Index “NAME”.
CONVERT does not appear in the parameters because CONVERT=YES is the default.
CPGID should be set to the code page of the input file. The load process will use the
CPGID value to convert the index values to the code page of the database.
A FORMDEF and PAGEDEF are always required for converting line data to AFP.
The FORMDEF is required, but the PAGEDEF is not required for AFP input.
Neither FORMDEF nor PAGEDEF are required for line data processed with the
CONVERT=NO option.
Fields based on Floating Triggers are picked up independently of fields based on Group
Triggers.
Fields based on Group Triggers are picked up once per group.
Fields based on Floating Triggers can be picked up multiple times within a group.
A field based on a Floating Trigger cannot “break” a group, because a group can’t be
broken except on a page boundary.
A document cannot be loaded using only fields based on floating triggers. The indexing
parameters must contain at least one group trigger and one field based on it.
cc=yes
cctype=a
fileformat=record
convert=no
trigger1=*,2,X'D9C5D7D6D9E3' /* REPORT */
trigger2=*,*,X'D9E4D540C4C1E3C5C1',(type=float) /* RUN DATE */
field1=0,9,9
field2=0,9,9,(trigger=2,base=trigger)
index1=X'C6C9C5D3C4F1',field1
index2=X'C6C9C5D3C4F2',field2
The Connection between ACIF and OnDemand
...1 BDI (Begin Document Index) NAME (NULL) SFI 0078 D3A8A7 000000
Bxx: CGCSGID Triplet (01):
Bxx: - Coded Graphic Char Set Global ID (GCSGID) = 65535 (FFFF)
Bxx: - Code Page Global ID (CPGID) = 500 (01F4) <- FROM CPGID
Bxx: Fully Qualified Name Triplet (02):
Bxx: - use = 01 (replace first GID name)
Bxx: - name = '*/...*.....>.*.>...*..../._.'
Bxx: Fully Qualified Name Triplet (02):
Bxx: - use = 83 (begin document reference)
Bxx: - name = '*/...*.....>.*?.....*..../._.'
Bxx: Fully Qualified Name Triplet (02):
Bxx: - use = 0A (begin resource group reference)
Bxx: - name = '*/...*.....>.*...?.║*..../._.'
...3 - TLE (Tag Logical Element) SFI 0032 D3A090 000000
TLE: Fully Qualified Name Triplet (02):
TLE: - use = 0B (attribute name)
TLE: - name = 'NAME'
TLE: Attribute Value Triplet (36):
TLE: - value = 'Smith Cyclery Co '
TLE: Attribute Qualifier Triplet (80):
TLE: - sequence number = 0 (000000)
TLE: - level number = 2147483647 (7FFFFFFF)
...4 - TLE (Tag Logical Element) SFI 002C D3A090 000000
TLE: Fully Qualified Name Triplet (02):
TLE: - use = 0B (attribute name)
TLE: - name = 'ACCOUNT'
TLE: Attribute Value Triplet (36):
TLE: - value = '000-000-000'
TLE: Attribute Qualifier Triplet (80):
TLE: - sequence number = 0 (000000)
TLE: - level number = 2147483647 (7FFFFFFF)
...5 - TLE (Tag Logical Element) SFI 002A D3A090 000000
TLE: Fully Qualified Name Triplet (02):
TLE: - use = 0B (attribute name)
TLE: - name = 'CRD_DATE'
TLE: Attribute Value Triplet (36):
TLE: - value = '06/03/94'
TLE: Attribute Qualifier Triplet (80):
TLE: - sequence number = 0 (000000)
TLE: - level number = 2147483647 (7FFFFFFF)
...6 - TLE (Tag Logical Element) SFI 0029 D3A090 000000
TLE: Fully Qualified Name Triplet (02):
TLE: - use = 0B (attribute name)
TLE: - name = 'BALANCE'
TLE: Attribute Value Triplet (36):
TLE: - value = ' 47.72'
TLE: Attribute Qualifier Triplet (80):
TLE: - sequence number = 0 (000000)
TLE: - level number = 2147483647 (7FFFFFFF)
The TLE values in the index file become the values in the Content Manager OnDemand
Search Results/Document List:
The indexes are used to retrieve the document. This is why the index file is so important,
and why no data can be loaded without an index file.
The IEL indicates where the groups start and how long each one is:
If we were looking at an .out file containing line data instead of AFP, we would see the
beginning of a record ( and probably a new page carriage control) at the location given by
the IEL group offset.
You may see Page Level IELs in the Index file. These are created by setting the ACIF
parameter INDEXOBJ=ALL. They are only needed (and are required) if the document is
being loaded as Large Object:
Remember that the TLE name comes from the ACIF INDEX parameter:
INDEX1=X'D5C1D4C5',FIELD1 /* NAME */
Instead of this:
We have this:
The previous example looked at running ACIF and indexing a line data document.
Another way of running ACIF is when the input is AFP and already contains TLEs
and BNG/ENG pairs. This data is called “fully composed AFP”.
Here is an arsafpd dump of a fully composed AFP file in the correct format for
loading into OnDemand (arsafpd was run without the –t option) :
When an input file contains TLE structured fields, if you specify indexing parameters
(such as TRIGGER, INDEX, or FIELD), ACIF will fail with error msg 462 – “A trigger
parameter was specified, but the input file is already indexed.”
ACIF processes a file containing TLE structured fields in the following way:
1. For every BNG in the input, ACIF creates a group IEL structured field in the index
file.
2. ACIF makes a copy of the TLE structured fields from the input and places them into
the index file. The original TLE structured fields remain in the out file.
Therefore, the result of ACIF processing under these circumstances is the creation of an
index file. ACIF can complete normally but the load process into OnDemand may still
fail if the format of the input file is incorrect:
- If the input file contains BNG - ENG pairs with no group level TLE Structured Fields
between them, then the load process will fail with the message : 0 fields submitted, n
expected, where n is the number of fields defined to OnDemand.
-If the input file does not contain the correct number of TLEs in each group, the load
process will fail with the message: x fields submitted, n expected, where n is the number
of fields defined to OnDemand.
- If the input file does not contain any BNG - ENG pairs, then the load process may run
out of memory looking for the start and end of the groups.
Running ACIF under these circumstances, you may find that the output file is larger than
the input. Why, you may wonder, since they are both AFP files? The answer is because
ACIF updates the AFP and usually ends up increasing the file size. Some of the changes
to the AFP may include the following: creating or adding comments to the BDT
Structured Field, creating or adding group names to the BNG - ENG Structured Fields,
adding TLE Structured Fields (if indexing), and changing obsolete Structured Fields to
current ones (e.g. MCF1 to MCF2, PTD1 to PTD2).
Compare the previous file with the following. This file will not load into OnDemand
because it does not contain any group TLE’s.
IMPORTANT:
When an input file contains BNG/ENG and TLE structured fields, if you specify indexing
parameters (such as TRIGGER, INDEX, or FIELD), ACIF may fail with error message
462 : “A trigger parameter was specified, but the input file is already indexed.”, or with
error message 459 : “Index needed for the Groupname was not found”.
What this means is that you can extract TLEs or you can extract fields from the data
(using trigger, field and index parameters) but you CANNOT use both methods at the
same time. You can't specify a constant field on a FIELD parameter when the AFP file
contains BNG/ENGs and TLEs.
However, if you would like to add a constant field to an AFP file that contains TLEs, you
can specify the ADDTLE parameter:
CC=YES
CCTYPE=A
CPGID=500
FIELD1='MONTHLY'
INDEX1='REPORT_TYPE'
EXTENSIONS=ADDTLE
See the documentation in the Indexing Reference for more information about the
ADDTLE parameter.
In order to use this method, the AFP must meet the following conditions:
− The AFP file must not contain any BNG/ENG pairs or TLEs.
− The NOPs must occur outside of the BPG/EPG pairs.
ACIF will extract the index values from the NOP structured fields and place them into
the index file.
Part 5: The ACIF input exits ASCIINP and ASCIINPE
The problem with these files is that they do not have valid carriage controls. ACIF
requires either ANSI or machine carriage controls. The purpose of these exits is to insert
valid carriage controls.
The asciinpe exit makes the same transformations and also converts the data to EBCDIC.
Notice that after asciinp has processed the data, most of the lines now contain an extra
byte. Therefore, the trigger and field column offsets have changed.
For a file that is being transformed by asciinp, use these parameters for the data:
CC=YES
CCTYPE=Z
CPGID=850
FILEFORMAT=STREAM,(NEWLINE=X’0A’)
Before asciinpe applied on top; after asciinpe applied on bottom.
For a file that is being transformed by asciinpe, and AFP conversion is being done, use
these parameters for the data, along with TRIGGER, FIELD and INDEX parameters:
CC=YES
CCTYPE=Z
CPGID=500
CONVERT=YES
FILEFORMAT=STREAM,(NEWLINE=X’0A’)
For a file that is being transformed by asciinpe, and AFP conversion is not being done,
use these parameters for the data, along with TRIGGER, FIELD and INDEX parameters:
CC=YES
CCTYPE=A
CPGID=500
CONVERT=NO
FILEFORMAT=STREAM,(NEWLINE=X’0A’)
To develop indexing parameters for files that use the asciinp and asciinpe exits, we
recommend that the file first be transformed by the exit, and then loaded into the
Administrator Graphical Indexer in order to create the indexing parameters.
Here are sample parameters to run only the exit. Run arsload with the – i option or run
arsacif from the command line.
cc=yes
cctype=z (for asciinp) or cctype=a (for asciinpe)
convert=no
fileformat=stream,(newline=x'0A')
inpexit=<path>asciinpe or inpexit=<path>asciinp
Take the .out file and load it into the Administrator Graphical Indexer. Create the
indexing parameters.
After the correct indexing parameters have been created, run arsload/ACIF with
CONVERT=YES or CONVERT=NO on the original file. Here is an example of
complete ACIF parameters for indexing with CONVERT=YES:
CC=YES
CCTYPE=Z
CPGID=500
MCF2REF=CF
TRC=NO
FORMDEF=F1A10110
PAGEDEF=P1B06683
FILEFORMAT=STREAM,(NEWLINE=X'0A')
TRIGGER1=*,8,X'C481A3857A' /* Date: */
FIELD1=0,1,5
FIELD2=0,13,8
FIELD3=4,12,8
FIELD4=5,12,10
INDEX1=X'526E616D65',FIELD1 /* Rname */
INDEX2=X'5264617465',FIELD2 /* Rdate */
INDEX3=X'556E616D65',FIELD3 /* Uname */
INDEX4=X'4A6E616D65',FIELD4 /* Jname */
DCFPAGENAMES=NO
UNIQUEBNGS=YES
IMAGEOUT=ASIS
INDEXOBJ=ALL
INDEXSTARTBY=1
INSERTIMM=NO
RESTYPE=NONE
INPEXIT=\arc\acifsrc\release\asciinpe
RESLIB=\acif\reslib
For more on the acif input exit, see
http://www.ibm.com/developerworks/data/library/techarticle/0307muir/0307muir.html
NOTE: Starting with CMOD 9.5.0.3, it is possible for ACIF to process data that contains
the x'0C' form feed character without using the asciinp or asciinpe exit. See the
documentation for the ACIF FORMFEED parameter and Technote #1962936.
If ACIF failed, investigate the ACIF error message. If ACIF completes normally but
arsload failed, note the arsload error message and if necessary look at the index file to see
if it looks reasonable. “Reasonable” means that it contains at least one group IEL, and at
least one group TLE.
Example 1
0425-415 CC=YES
0425-415 CCTYPE=A
0425-415 CONVERT=NO
0425-415 CPGID=500
0425-415 MCF2REF=CPCS
0425-415 TRC=NO
0425-415 FILEFORMAT=RECORD,133
0425-415 TRIGGER1=*,2,X´C3C460F0F7F1´,(TYPE=GROUP)
0425-415 FIELD1=0,115,8,(TRIGGER=1,BASE=0)
0425-415 INDEX1=X´9985978481A385´,FIELD1,(TYPE=GROUP,BREAK=YES)
0425-415 DCFPAGENAMES=NO
0425-415 UNIQUEBNGS=YES
0425-415 IMAGEOUT=ASIS
0425-415 INDEXOBJ=GROUP
0425-415 INDEXSTARTBY=1
0425-415 INSERTIMM=NO
0425-415 RESTYPE=NONE
0425-415 inputdd=/az/arsload/fail/testfile
0425-415 outputdd=/dev/null
0425-415 indexdd=./testfile.ind
0425-415 resobjdd=/dev/null
0425-422 AN ERROR OCCURRED WHILE ATTEMPTING TO READ
/az/arsload/fail/testfile RETURN CODE 310.
RC 310 means that either the FILEFORMAT parameter is wrong or something is wrong
with the input file.
If you see RC 28, it means that ACIF could not find a file.
To look at this type of file in the HexEdit editor, use View->Character Set->EBCDIC and
View->Options to set the record length to 133. Then you can scroll to the right and view
the data in character format. The problem with this particular file is that it is missing
bytes at the end; the last line is not 133 characters long.
Another variation of the same problem is when the last line does not end with the
delimiter. If a file has delimiters, every line must end with one.
For this type of problem ACIF will issue the error message similar to “Unable to read
from offset 18283 for a length of 1200.”
Example 2
ACIF running out of storage is usually a problem with carriage controls: either they are
specified incorrectly to ACIF or the document does not have any.
Suggestions for how to deal with a document that does not have carriage controls:
1. If the data uses x’0C’ to indicate the start of a new page, use the ACIF exit asciinp or
asciinpe to insert carriage controls.
2. Use a custom input exit to insert carriage controls.
3. Use the ACIF parameter LINECNT to insert page breaks.
Example 3
0425-415 CC=NO
0425-415 CCTYPE=Z
0425-415 CONVERT=NO
0425-415 CPGID=850
0425-415 MCF2REF=CPCS
0425-415 LINECNT=66
0425-415 TRC=NO
0425-415 FILEFORMAT=STREAM,(NEWLINE=X´0A´)
0425-415 TRIGGER1=*,1,X´53594D424F4C´,(TYPE=GROUP)
0425-415 TRIGGER2=*,1,X´53594D424F4C´,(TYPE=FLOAT)
0425-415 FIELD1=0,8,10,(TRIGGER=2,BASE=0)
0425-415 FIELD2=0,32,6,(TRIGGER=2,BASE=0)
0425-415 FIELD3=0,50,6,(TRIGGER=2,BASE=0)
0425-415 FIELD4=0,66,6,(TRIGGER=2,BASE=0)
0425-415 FIELD5=0,84,15,(TRIGGER=2,BASE=0)
0425-415 INDEX1=X´53796D626F6C´,FIELD1,(TYPE=GROUP,BREAK=NO)
0425-415 INDEX2=X´5265706F727444617465´,FIELD2,(TYPE=GROUP,BREAK=NO
)
0425-415 INDEX3=X´537461727444617465´,FIELD3,(TYPE=GROUP,BREAK=NO)
0425-415 INDEX4=X´456E6444617465´,FIELD4,(TYPE=GROUP,BREAK=NO)
0425-415 INDEX5=X´526571756573744964´,FIELD5,(TYPE=GROUP,BREAK=NO)
0425-415 DCFPAGENAMES=NO
0425-415 UNIQUEBNGS=YES
0425-415 IMAGEOUT=ASIS
0425-415 INDEXOBJ=ALL
0425-415 INDEXSTARTBY=1
0425-415 INSERTIMM=NO
0425-415 RESTYPE=NONE
0425-415 inputdd=testfile.ARD
0425-415 outputdd=/dev/null
0425-415 indexdd=testfile.ind
0425-415 resobjdd=/dev/null
0425-440 ACIF AT PK04939 HAS COMPLETED NORMALLY WITH RETURN
CODE 0.
arsload: 07/19/06 15:53:30 Indexing completed
arsload: 07/19/06 15:53:30 -- Loading started, 209181 bytes to process
Loaded 0 rows into the database
Document compression type used - OD77. Bytes Stored = >0<
arsload: 07/19/06 15:53:30 Loading failed
ACIF completed normally, therefore it produced an index file. Look at the index file to
see if it looks reasonable. The following index file is NOT reasonable; every index file
must have at least one Group IEL and TLE.
...1 BDI (Begin Document Index) NAME (NULL) SFI 0053 D3A8A7 000000
Bxx: CGCSGID Triplet (01):
Bxx: - Coded Graphic Char Set Global ID (GCSGID) = 65535 (FFFF)
Bxx: - Code Page Global ID (CPGID) = 850 (0352)
Bxx: Fully Qualified Name Triplet (02):
Bxx: - use = 01 (replace first GID name)
Bxx: - name = '..............|&..........................>.'
Bxx: Fully Qualified Name Triplet (02):
Bxx: - use = 83 (begin document reference)
Bxx: - name = '.....>.%%'
...2 EDI (End Document Index) NAME (NULL) SFI 0010 D3A9A7 000000
0425-415 TRIGGER1=*,1,X´53594D424F4C´,(TYPE=GROUP)
0425-415 TRIGGER2=*,1,X´53594D424F4C´,(TYPE=FLOAT)
0425-415 FIELD1=0,8,10,(TRIGGER=2,BASE=0)
0425-415 FIELD2=0,32,6,(TRIGGER=2,BASE=0)
0425-415 FIELD3=0,50,6,(TRIGGER=2,BASE=0)
0425-415 FIELD4=0,66,6,(TRIGGER=2,BASE=0)
0425-415 FIELD5=0,84,15,(TRIGGER=2,BASE=0)
The problem is that every field is based on the floating trigger. arsload requires at least
one index based on a Group trigger, which in this case is TRIGGER1. This is because
only fields that are based on Group triggers can be used to break the document into
groups, and the index process must create at least one group. (And recall that a group is
represented by a group IEL in the index file.) In cases like this the customer must
redesign their indexing parameters.
Example 4
0425-415 CC=YES
0425-415 CCTYPE=Z
0425-415 CONVERT=NO
0425-415 CPGID=850
0425-415 MCF2REF=CPCS
0425-415 TRC=NO
0425-415 FILEFORMAT=STREAM,(NEWLINE=X'0D0A')
0425-415 TRIGGER1=*,123,X'504147452020202020202031',(TYPE=GROUP)
0425-415 FIELD1=0,2,8,(TRIGGER=1,BASE=0)
0425-415 FIELD2=0,28,72,(TRIGGER=1,BASE=0)
0425-415 FIELD6=0,108,8,(TRIGGER=1,BASE=0)
0425-415 FIELD7=0,117,5,(TRIGGER=1,BASE=0,DEFAULT=X'30313031')
0425-415 INDEX1=X'7270746E6F',FIELD1,(TYPE=GROUP,BREAK=YES)
0425-415 INDEX2=X'7270746E616D65',FIELD2,(TYPE=GROUP,BREAK=YES)
0425-415 INDEX6=X'737973646174',FIELD6,(TYPE=GROUP,BREAK=YES)
0425-415 INDEX7=X'73797374696D65',FIELD7,(TYPE=GROUP,BREAK=YES)
0425-415 DCFPAGENAMES=NO
0425-415 UNIQUEBNGS=YES
0425-415 IMAGEOUT=ASIS
0425-415 INDEXOBJ=ALL
0425-415 INDEXSTARTBY=1
0425-415 INSERTIMM=NO
0425-415 RESTYPE=NONE
0425-415 inputdd=testfile
0425-415 outputdd=testfile.out
0425-415 indexdd=testfile.ind
0425-448 INDEXING WAS REQUESTED, BUT NEITHER 'TRIGGER1' NOR ANY
'FIELD' WAS SATISFIED WITHIN THE PAGE RANGE SPECIFIED BY THE
INDEXSTARTBY PARAMETER.
0425-441 ACIF AT PK10069 HAS COMPLETED ABNORMALLY WITH RETURN
CODE 16.
The problem is that the trigger was not found, because either the trigger value or location
was specified incorrectly.
Example 5
The values x’3A’, x’4C’ and x’0C’ which appear in the messages are values that appear
in the first byte of three records, and ACIF knows that the first byte in the record is
supposed to be the carriage control if CC=YES is specified. ACIF is complaining
because these values are not valid ANSI carriage controls.
Notice that CCTYPE=Z was specified. That means that the file should have ANSI
carriage controls encoded in ASCII. The valid ANSI carriage control for a new page is
x’31’, and for a space one line it is a x’20’.
The problem with this file is that CC=YES was specified but the document does not have
carriage controls. The customer should use the acif input exit asciinp to insert carriage
controls.
Example 6
The following problems tend to occur with data that is not consistent.
Problem:
Message from ARSLOAD
2 fields submitted, 3 expected (or, 0 fields submitted, 3 expected)
There are two places to define default values which can be used in the loading process: the Application or
the ACIF field parameter. They are used in different ways.
1. If a field is not found in the data because the field is based off a floating trigger and the trigger was not
found, then there is no TLE for it and ARSLOAD will use the default value, which is defined in the
Application. If no default value was defined, loading will fail with the above message.
2. If the trigger/triggers were found, but the record was not long enough to contain the field, then ACIF will
create a TLE for that field using the default value from the ACIF Field parameter. If the record is not long
enough to contain the field, and no default value has been specified in the ACIF field parameters, ACIF
will fail with message 449: Index Fields Reference Outside of the Record.
Problem:
Message from ARSLOAD
The data may not be consistent, and ACIF may have picked up blanks (or something else) instead of a date.
If blank character removal is set in the Application, the blanks may be removed, leaving a null value.
IMPORTANT: One cannot remove the blanks and then use the default value in the Application.
The default value in the Application is used only when no TLE is created, i.e. when no index value is
found.