You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Flatpack Component

The Flatpack component supports fixed width and delimited file parsing via the FlatPack library.

URI format

flatpack:[delim|fixed]:flatPackConfig.pzmap.xml

or for a delimited file handler with no configuration file just use

flatpack:someName

Examples

  • flatpack:fixed:foo.pzmap.xml creates a fixed width endpoint using the foo.pzmap.xml file configuration
  • flatpack:delim:bar.pzmap.xml creates a delimited endpoint using the bar.pzmap.xml file configuration
  • flatpack:foo creates a delimited endpoint called foo with no file configuration

URI Options

Name

Default Value

Description

delimiter

','

the default character delimiter for delimited files

textQualifier

'"'

the text qualifier delimited files

ignoreFirstRecord

true

whether the first line is ignored for delimited files (for the column headers)

Message Headers

Camel will store the following headers on the IN message:

Header

Description

camelFlatpackCounter

The current row index

Header and Trailer records

In Camel 1.5 onwards the header and trailer notions in Flatpack is supported. However it is required that you must use a fixed record id names

  • header for the header record (must be lowercase)
  • trailer for the trailer record (must be lowercase)

The example below illustrates this fact that we have a header and a trailer. You can omit one or both of them if not needed.

    <RECORD id="header" startPosition="1" endPosition="3" indicator="HBT">
        <COLUMN name="INDICATOR" length="3"/>
        <COLUMN name="DATE" length="8"/>
    </RECORD>

    <COLUMN name="FIRSTNAME" length="35" />
    <COLUMN name="LASTNAME" length="35" />
    <COLUMN name="ADDRESS" length="100" />
    <COLUMN name="CITY" length="100" />
    <COLUMN name="STATE" length="2" />
    <COLUMN name="ZIP" length="5" />

    <RECORD id="trailer" startPosition="1" endPosition="3" indicator="FBT">
        <COLUMN name="INDICATOR" length="3"/>
        <COLUMN name="STATUS" length="7"/>
    </RECORD>

Using the endpoint

A common use case is sending a file to this endpoint for further processing in a separate route. For example...

  <camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
    <route>
      <from uri="file://someDirectory"/>
      <to uri="flatpack:foo"/>
    </route>

    <route>
      <from uri="flatpack:foo"/>
      ...
    </route>
  </camelContext>

You can also convert the payload of each message created to a Map for easy Bean Integration

  • No labels