qie.createFixedLengthMessage¶
Signature: qie.createFixedLengthMessage(length, lineEnding, encoding*, fieldDefinition*)
Returns: FixedLength Message message - the newly created message object
Replace the current message with an empty Fixed Width formatted message.
Note
You must specify either length or lineEnding or both.
Note
The environment variable used for the fieldDefinition must contain the following columns: name, offset, length.
Note
The return value MUST ALWAYS be assigned to the bound-in message object.
Parameters¶
| Type | Name | Description | Default |
|---|---|---|---|
| Integer | length | the length of each line in the fixed width message | |
| String | lineEnding | the record delimiter to use for parsing | |
| String | encoding* | (optional) the character encoding for this message | Source Node encoding |
| String | fieldDefinition* | (optional) the system variable table containing columns specified for 'name','offset','length' that define the fixed width message parts | null |
Example¶
/*
fixedWidth system variable table looks like this:
** Note the offset is 1 based which can be tricky **
+-------+----------------------------+--------+--------+
| Order | name | offset | length |
+-------+----------------------------+--------+--------+
| 1 | Record Type Code | 1 | 1 |
| 2 | Transaction Code | 2 | 2 |
| 3 | Receiving DFI Id | 4 | 8 |
| 4 | Individual Name | 12 | 68 |
| 5 | Trace Number | 80 | 15 |
+-------+----------------------------+--------+--------+
*/
message = qie.createFixedLengthMessage(
94, // length: total length of each fixed-width line
'\r\n', // lineEnding: record delimiter
'ASCII', // encoding: character encoding
'fixedWidth' // fieldDefinition: system variable table defining fields
);
message.setNode("Record Type Code[1]", "4");
message.setNode("Individual Name[1]", "Blimey Harry, you are a wizard"); // will auto-pad as needed
message.setNode("Record Type Code[3]", "D");
message.setNode("Individual Name[3]", "Are you not entertained"); // will auto-pad as needed