Configuration manager
Flat file - fixed length fields
A flat file with fixed length fields is an
ASCII file in which database records are written. Each database record consists
of one line  terminated by carriage return (CR) and linefeed (LF), and where the fields
always have the same number of characters, independent of their contents. 
For example: consider a database table holding
warehouse inventory and having the following information: 
  
    
      | 
      Field | 
      
      Start position | 
      
      Length | 
      
      Description | 
     
    
      | 
      Location | 
      
      1 | 
      
      10 | 
      
      Warehouse location | 
     
    
      | 
      Product | 
      
      11 | 
      
      8 | 
      
      Product identification | 
     
    
      | 
      Description | 
      
      19 | 
      
      30 | 
      
      Product description | 
     
    
      | 
      On-hand quantity | 
      
      49 | 
      
      12 | 
      
      Quantity on location  | 
     
   
 
The flat file could look like: 
Warehouse inventory dump 
20030101124500 
U12A09    24188   Lubricant                    
00000018.450 
U12A10    87912   Ball bearing                 
00000201.000 
U12A11    54399   Fuel injection pump          
00000001.000 
U12A12    A65432  Gasket                       
00000003.000 
U13A01    99553   Spark plug                   
00000124.000 
U13A02    63298   Brake drum                   
00000003.000 
123456789012345678901234567890123456789012345678901234567890 
 
You define a connection client of this type by
selecting FIXED FILE in the connection type listbox of the edit connections
screen. 
  
  - Directory: the full path to the directory
  where the connection client scans for input files, or the directory where the
  output files are written in.
 
  - Manual or Scan directory: when manual is
  selected, the input file is always selected manually at the connection client.
  When 'Scan directory' is selected the input file is automatically read and
  interpreted when the file is written in the directory specified. This option
  does not disable the manual mode.
 
  - After interpreting the input file, it must
  be marked as been executed, to avoid a repetitive execution. Three options are
  available:
 
  - Delete after read: the input file is deleted, and will be no longer
  available 
  - Set archive: the archive attribute of the file is set. Only files
  that do not have the archive attribute set are read by the connection client. 
  - Reset archive: the archive attribute of the file is switched off.
  Only files that have the archive attribute set are read by the connection
  client. - Filename format and Format
  variables: definition of the format of the filename. For input files, only
  files with a name matching the format will be read. If the filename format is
  left blank, any file written in the input directory is executable. For output
  files, this is the format how the connection client should name the file. If
  left blank, the output file can only be generated manually, since the
  connection client does not have a way to generate the filename. See below for
  the syntax in these fields.
 - Start
  reading at line: Specify on what line the first record in the file is.
  This avoids header lines in the file being treated as records. 
  
Format strings and variables 
With a format string you can specify how the
filenames should be interpreted when the file is of input type, or how the
output filename should look like. The format string can contain both literal
text and substitution symbols. If you want the connection client to recognize an
input file, then its filename should match exactly the format string. If not,
the file is ignored. 
Substitution symbols are placeholders for
variable strings in the filename. By defining a substitution symbol you can
extract parts of the filename and put it in a variable for further use, or
insert the contents of a variable in the filename to be generated. The format
string can contain the following substitution symbols: 
For input files 
  - %#s : specifies a fixed length string, where
  # should be replaced by the number of characters in the string. For example:
  when you specify %5s the connection client will consider the 5 next characters
  as one string and put this string in the variable provided.
 
  - %sdelimiter : all characters starting
  at the % sign till the delimiter character are considered to be one string and
  written in the variable provided. Example: %s_ will read all characters till
  the underscore and put these as one string in the variable (without the
  underscore).
 
  - %n : starting at the % sign, all characters
  till the first alpha-numeric characters will be treated as a number. Example:
  '078.txt' will return 78 as numeric value when %n is specified.
 
  - %#t : specifies a fixed length table name.
  The usage is the same as for %#s, but the string is considered to be a table
  name used in the 'source
  tables and mapping' section. You must provide a dummy variable, however
  you cannot use the variable in further configuration. A %t symbol can only be
  used once in one format string.
 
  - %tdelimiter : as %sdelimiter
  but specifies a table name. 
 
 
For output files 
  - %s : the contents of the variable is written
  at the exact place of the %s. The variable is written when defined in the
  'destination field name' (See
  
  source tables and mapping).
 
  - %t : the table name defined in 'destination
  table name' (See
  
  source tables and mapping) is written at the exact place of the %t.
 
 
As many substitution symbols you define, as
many format variables you need to define. The substition symbols are replaced by
the variables content in the exact sequence as both symbols and variables are
defined. The name of the variable specified for a %s or %n symbol can be used as
a field name when you do the field mapping job. A %t symbol is always placed in
an internal variable. The contents of %t is used as table name. However, you
still need to provide a dummy variable for %t. 
If you do not specify a table name, you must
use 'ANY' as table name in your 'source tables and mappings' section. 
Some examples: 
      
        
          | 
            Filename format | 
          
            Format variables | 
          
            Results in | 
         
        
          | 
            In%n%t_%4s%2s%2s.txt | 
          
             Sequencenumber 
              ,inputtablename, 
              year,month,day  | 
          
            Input Filename: In001inventory_20030101.txt 
            Sequencenumber = 1 
            Table = inventory 
            year = 2003 
            month = 01 
            day = 01 
             
            Input Filename: In001inventory_20030101.dat 
            file is rejected | 
         
        
          | 
            Out%t%s.txt | 
          
            Outputtablename, 
            Datestamp | 
          
            Table = PartMaster 
            Datestamp = 1Jan2003 
            Output filename = OutPartMaster1Jan2003.txt | 
         
        
          | 
            In%4s.txt | 
          
            YearDayCode | 
          
            Input filename: InA254.txt 
            YearDayCode = A254 
            Table = ANY | 
         
       
Defining fields
Fields are defined and used in exactly the same
way as outlined in
source tables and mapping. However, as soon as you use a fixed file
connection your screen will be slightly different. 
In source table name you define the name
extracted from the filename and defined as %t or %#t in the format string. In
case of destination table it would be the string written in the filename where
%t is defined. 
In case you defined a variable %s or %n in the
format string with corresponding variable names, you may use the variable name
here by entering it in the 'Field position' input field. 
When writing files, you will get as many files
as records sent to the fixed file client. If you want to group records, you can
only do this by defining a scheduled task (batch) at the source client, and
enable the obsolete check option in the 'tables and mappings' section. 
  
     |