RoutesComposite - skilchen/bots GitHub Wiki
Composite routes
Introduction
A simple route reads the edi files from one inchannel, translates, and sends the translated files
to one outchannel.
More flexibility is offered by the use of composite routes.
In a composite route there are several entries in the routes screen,
each with the same 'idroute' but a different 'seq' (sequence number
within route). Each entry (with different 'seq') is called
route-part.
Best way to use this is to have each route-part do one thing; either:
- fetch incoming files; you can fetch files from multiple sources
- translate (typically once per route)
- send outgoing files to different destinations/partners using filtering It is advised to set up composite routes this way (using at least 3 route-parts).
Use cases
- Send edi files via ftp where each partner has its own ftp-server.
- Confirmations/acknowledgements: acknowledgements for incoming edi-files are routed back to the sender (filter by editype/messagetype).
- Fetch from multiple sources, eg ftp-servers of different partners..
- Route to different internal destinations: invoices to another system than ASN's (filter by messagetype)
- Use a VAN, but one partner uses AS2 (filter by partner)
- Incoming files are translated multiple times, each message-type goes to different destination. Eg: translate orders both to in-house file (import ERP) and an HTML-email (for viewing).
Example plugin
Download the plugin demo_composite_route
This plugin has one composite route consisting of:
- 2 input parts
- translate part
- 3 output parts, using filtering Detailled description here
Filtering for different outchannels
You can filter per outchannel; eg send only asn's through this outchannel.
In route-screen (bots-monitor->Configuration->Routes) the fields used for filtering under 'Filtering for outchannel'.
If eg. toeditype=csv, only csv-files will be sent over the outchannel.
NOTE: if filtering is not specified, all outgoing files in the route are sent through the outchannel.
Schematic
Schematic overview of a route consisting of 5 parts:
Notes:
- if no inchannel in route-part nothing comes in for that route-part.
- if 'translate' in a route-part is off, no translation in that route-part.
- if no outchannel in route-part nothing goes out for that route-part.