Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space WBRIDGE and version 22.1.1

Defining the Flat File

The flat file structure is defined in a class diagram. A root class defines the file and its settings (like e.g. the record separator). This class must have stereotype <<FlatFile>>.

As this is the root of a flat file declaration no attributes are allowed. You should give this class a meaningful name, because the output object flow of the <<FlatFileAdapter>> action in the activity diagram uses this class as a type.

You can change the flat file settings on the specification dialog of the root class.

Figure: Change Flat File Settings

Anchor
placeholders
placeholders
Value <NewLine> of tag Record Separator is a literal placeholder for special character \n. A complete list of all placeholders is listed below.

PlaceholderC SyntaxCharacter (Dec.)
<tab>
<tabulator>  

\t  

9  

<newline>
<unixnewline>  

\n  

10  

<windowsnewline> \r\n13, 10
<esc> \x1B27
<space>
32

The other optional tagged values are listed below.

Flat File Settings

Find below a list of all tagged values corresponding to stereotype <<FlatFile>>.

Multiexcerpt include
MultiExcerptNameFlatFile
PageWithExcerptFlat File Adapter Reference

Defining a Flat File Record

The record structure and the relation between records is defined by one or more child classes and the association to their parent class (e.g. the root class or a parent record class). All records have stereotype <<FlatFileRecord>>.

Figure: Flat File Record Structure

Flat File Record Groups

Additionally, (virtual) groups can be defined by stereotype <<FlatFileGroup>>. These classes have no physical representation in the flat file itself.

Flat File Record Settings

Find below a list of all tagged values corresponding to the stereotype <<FlatFileRecord>>.

Multiexcerpt include
MultiExcerptNameFlatFileRecord
PageWithExcerptFlat File Adapter Reference

For detailed information on associations see Flat File Group Settings or Associations Endings of <<FlatFileRecord>> and <<FlatFileGroup>>.

Flat File Group Settings

You can group multiple records in one virtual structure by using the stereotype <<FlatFileGroup>>. This virtual group does not have a representation in the flat file and therefore cannot hold any attributes. Apart from this, this element has the same behavior like a flat file record. For parsing and composing, the pattern and conditions are checked but no mapping takes place. The record details are given to the associated class where the mapping is done.

Find below a list of all tagged values corresponding to the stereotype <<FlatFileGroup>>.

Multiexcerpt include
MultiExcerptNameFlatFileGroup
PageWithExcerptFlat File Adapter Reference

Associations Endings of <<FlatFileRecord>> and <<FlatFileGroup>>

All associations ending on a class with stereotype <<FlatFileRecord>> or <<FlatFileGroup>> can have additional attributes, if the association end has stereotype <<FlatFileSubRecord>> applied.

Find below a list of all tagged values corresponding to stereotype  <<FlatFileSubRecord>>.

Multiexcerpt include
MultiExcerptNameFlatFileSubRecord
PageWithExcerptFlat File Adapter Reference

Defining Flat File Record Attributes

All Attributes on a <<Flat File Record>> class need to have stereotype <<FlatFileAttribute>>. Depending on the layout type of the flat file (fixed or separated), you can specify different tagged values (see Attribute Settings for attributeLayout = fixed and Attribute Settings for attributeLayout = separated). Additionally, you can define record fields as to be of complex type (see Complex Flat File Record Attributes).

Attribute Settings for attributeLayout = fixed

For flat files having a fixed layout, you need to specify external length and order of the attribute, and optionally, you can specify a padding.

Multiexcerpt include
MultiExcerptNameFlatFileAttribute_fixed
PageWithExcerptFlat File Adapter Reference

Attribute Settings for attributeLayout = separated

For attributes in separated flat files, you can supply an offset to specify the position of the field (attribute) in respect of the other record fields.

Multiexcerpt include
MultiExcerptNameFlatFileAttribute_separated
PageWithExcerptFlat File Adapter Reference

Complex Flat File Record Attributes

Flat file record attributes can by of complex type. The complex type must have stereotype <<FlatFileComplexAttribute>> applied, then.

Figure: Flat File Complex Attribute

You can use this class to divide a record field into sub-fields. You can think of this like a <<FlatFileRecord>> placed within a single field. Most of the tagged values that are valid for a flat file record are valid for a complex attribute, too. Though, the scope of these settings is not the record, but the field.

Multiexcerpt include
MultiExcerptNameFlatFileComplexAttribute
PageWithExcerptFlat File Adapter Reference

Macro Expressions

Available macros are counters:

  • There are eight automatic counters with ID AUTO0 .. AUTO7 and ... (for parsing and composing)
  • two automatic line counters with ID LINE0 and LINE1 (for parsing only)
  • unlimited eight custom counters with ID CUSTOM0 .. CUSTOM7CUSTOMx (for parsing and composing).

Automatic counters automatically increase with each processed record, whereas custom counters have to be increased manually using the IncreaseCounter() macro. When parsing/composing the first record, all counters have the initial value of 10.

Classes Attributes
MacroAvailable onAvailable
for
DescriptionExample

ResetCounter(ID[, Value])

Classes
Attributes

AUTO
CUSTOM

Reset the counter ID to 0 or a given Value.

ResetCounter(AUTO0, 1)

IncreaseCounter(ID)

Classes
Attributes
AUTO
CUSTOM

Increases the counter ID by 1.

IncreaseCounter(CUSTOM2)

GetCounter(ID)

AttributesAUTO
LINE
CUSTOM

Read the value of a counter and store it in the current attribute.

GetCounter(
AUTO2
LINE0)

VerifyCounter(ID)

Classes
Attributes
AttributesAUTO
LINE
CUSTOM

Compare the value of a counter with the current attribute. This macro will throw an exception if the values are not equal.

VerifyCounter(CUSTOM0)

For GetCounter() and VerifyCounter() only attributes of type Integer are supported.