Before you begin
This example shows you how one combination of values in the
Record definition,
Delimiter, and
Delimiter type properties result
in the creation of a file from multiple messages. The example describes
the
FileOutput node of
a message flow and assumes that the rest of the flow has been developed.
It is also assumed that a
Windows system
is being used. To complete this example task, you must first have
added a
FileOutput node
to a message flow. You must also ensure that the following messages
are produced by the flow preceding the
FileOutput node:
Complete the following steps:
Procedure
- Set the required node properties on the FileOutput node. The
following table summarizes the FileOutput node properties
that you must set, on which tab they appear, and the value that you
must set in order to follow this example:
Tab |
Property |
Value |
Basic |
Directory |
C:\FileOutput\TestDir |
File name or
pattern |
test_output1.xml |
Mode
for writing to file |
Stage
in transit directory and move to output directory on Finish File |
Action if file exists |
Time Stamp, Archive
and Replace Existing File |
Replace duplicate
archive files |
Selected |
Records and Elements |
Record definition |
Record is
Delimited Data |
Delimiter |
Broker System
Line End |
Delimiter type |
Postfix |
FTP |
FTP |
Cleared |
- Deploy the message flow to the integration node. See Packaging and deploying.
- Send the first three messages to the In terminal of the FileOutput node.
- Send the final message to the Finish File terminal of the FileOutput node.
Results
The following actions occur when you perform these steps:
- The file is processed. In accordance with the values set in the
properties of the FileOutput node,
the node generates one record per message with a local file system
line terminator after each one. The file contains the following data,
each line terminated by a carriage return (X'0D') and line feed (X'0A')
pair of characters (on a Windows system):
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
- Records are accumulated in file test_output1.xml in
the C:\FileOutput\TestDir\mqsitransit directory.
When the final message is sent to the Finish File terminal, the file
is moved to the output directory, C:\FileOutput\TestDir directory.
- If a file of the same name exists in the output directory, the
existing file is renamed and moved to the mqsiarchive directory.
For example, the following file might be created:
C:\FileOutput\TestDir\mqsiarchive\20081124_155346_312030_test_output1.xml
If
a file of this name exists in this archive directory, it is overwritten
in accordance with the Replace duplicate
archive files property selected on the FileOutput node.
What to do next
See
Setting the Record definition property for the FileOutput and FTEOutput nodes to see the results of running this task
with different values set in the
Record
definition,
Delimiter, and
Delimiter type properties of the
FileOutput node.
You
can use the append mode of the
FileOutput
node to append to a file.
- Appending directly:
An example is when an application uses the
content of the file continually and any changes are seen as they occur.
It might be that as soon as the records are seen the application loads
the records into a database or a product catalog.
- Staging before appending:
An example is when an application uses
the content of the file during the day, but the application does not
want any updates that occur during the day to be seen. IBM® Integration Bus batches the new record up in its
transit directory and then, at a given time of the day (possibly outside
normal working hours) the integration node
appends to the file.
If a remote file exists, you can use the append mode of the
FileOutput node to append to or replace
an existing file. Data is either added to the end of the remote file or, if the file
does not exist, the file is created.