![]() |
![]() |
split [type] [name | expression] type := splitter implementation (e.g. xpath, regex, xsl) name := named configuration which contains the split expression(s) expression := inline split configuration
route do
from "batch-inbound"
split xpath ("/PurchaseOrder")
to "po-process"
end
Note: I'm wondering if it would be more appropriate for the in-line configuration to be contained within 'do/end' blocks, similar to how broadcast is handled today. This may be a good general-purpose construct for scoping all IFL language features. Thoughts?
Split with external configuration
route do from "batch-inbound" split xpath "po-split" to "po-process"
> cat po-split.xml /PurchaseOrder
| Attribute | Description | Default |
|---|---|---|
| batchSize | Limits the of output messages that are processed in parallel. | Default is 1000. If the inbound message exchange is transactional (I.E. MessageExchange.isTransacted() returns true) the batchSize is forced to 1 |
The service artifact layer in Fuji will have a reasonable default behavior for all split types. Individual split types can override the default behavior by implementing the following contracts:
app-root/
split/
{name}/
[configuration]
Where '{name}' is the named configuration provided in IFL.
<orders>
<order>
<item>bang001</item>
<desc>guns</desc>
<amount>50</amount>
</order>
<order>
<item>parkayXYZ</item>
<desc>butter</desc>
<amount>100</amount>
</order>
</orders>
XPath Configuration
/orders/orderOutput Messages
<order> <item>bang001</item> <desc>guns</desc> <amount>50</amount> </order>
<order> <item>parkayXYZ</item> <desc>butter</desc> <amount>100</amount> </order>
Input Message
<orders>
<orderNum>PO123</orderNum>
<order>
<item>bang001</item>
<desc>guns</desc>
<amount>50</amount>
</order>
<order>
<item>parkayXYZ</item>
<desc>butter</desc>
<amount>100</amount>
</order>
</orders>
XSL Configuration
Output Messages
<orders>
<orderNum>PO123</orderNum>
<order>
<item>bang001</item>
<desc>guns</desc>
<amount>50</amount>
</order>
</orders>
<orders>
<orderNum>PO123</orderNum>
<order>
<item>parkayXYZ</item>
<desc>butter</desc>
<amount>100</amount>
</order>
</orders>
Content enrichment is another common use case, where data is inserted into a split message that is not defined in the original message content model.
Input Message
ORDER|PO123 ITEM|bang001|guns|50 ITEM|parkayXYZ|butter|200 ORDER|PO456 ITEM|oopsABC|huggies|300Regex Configuration
"ORDER"Output Messages
ORDER|PO123 ITEM|bang001|guns|50 ITEM|parkayXYZ|butter|200
ORDER|PO456 ITEM|oopsABC|huggies|300
app-root /
META-INF /
flow/
split/
[configuration]
Where '{name}' is the named configuration provided in IFL. This layout mimics the configuration layout, but includes META-INF/ and flow/ as parent directories.
This page (revision-14) was last changed on
21-Jul-09 09:42 AM, -0700
by MarkWhite.
This page was created on
14-Aug-08 19:29 PM, -0700 by KeithBabo.
| Version | Date | Author | Size | Changes ... |
|---|---|---|---|---|
| 14 | 21-Jul-09 09:42 AM, -0700 | MarkWhite | 9126 | to previous |
| 13 | 21-Jul-09 07:10 AM, -0700 | DerekFrankforth | 9143 | to previous | to last |
| 12 | 21-Jul-09 07:10 AM, -0700 | DerekFrankforth | 9213 | to previous | to last |
| 11 | 12-Feb-09 14:29 PM, -0800 | Nikita | 8779 | to previous | to last |
| 10 | 15-Aug-08 12:07 PM, -0700 | KeithBabo | 8684 | to previous | to last |
| 9 | 15-Aug-08 11:53 AM, -0700 | KeithBabo | 8668 | to previous | to last |
| 8 | 15-Aug-08 11:31 AM, -0700 | KeithBabo | 7052 | to previous | to last |
| 7 | 15-Aug-08 09:29 AM, -0700 | KeithBabo | 4829 | to previous | to last |
| 6 | 15-Aug-08 08:19 AM, -0700 | KeithBabo | 3618 | to previous | to last |
| 5 | 15-Aug-08 07:33 AM, -0700 | KeithBabo | 1572 | to previous | to last |
| 4 | 15-Aug-08 06:59 AM, -0700 | KeithBabo | 552 | to previous | to last |
| 3 | 14-Aug-08 19:41 PM, -0700 | KeithBabo | 552 | to previous | to last |
| 2 | 14-Aug-08 19:39 PM, -0700 | KeithBabo | 526 | to previous | to last |
| 1 | 14-Aug-08 19:29 PM, -0700 | KeithBabo | 479 | to last |
