What happenedΒΆ

How does this ``run`` thing work?

  1. When you run bots-engine, each active route is run.
  2. Per route bots will perform all configured actions (read, translate, write):
  3. In bots-monitor you can view the results of the run(s), the incoming edi-files, the outgoing edi-files, etc.

Detailed explanation


All actions in the picture take place in the route myfirstroute. The route contains:

  • an in-channel - fetches the incoming orders.
  • in the route is indicated that it should translate
  • an out-channel - transports the in-house orders to your file system.

When the incoming files have been read via the in-channel, bots starts to translate:

  • bots parses the incoming file, using the information in the route: editype=edifact, messagetype=edifact.
  • as edifact is a standard bots can find out itself that the incoming edifact file contains order messages of messagetype ORDERSD96AUNEAN008
  • bots looks in the translation table (see bots-monitor->Configuration->translations) to find out what to do: what mapping script to use, to what editype and messagetype should be translated. In this case the mapping script myfirstscriptordersedi2fixed translates to editype fixed, messagetype ordersfixed.
  • the mapping script is the heart of the translation. In the mapping script the data from the incoming message is fetched and place into the outgoing message.

A complete translation in bots needs:

  • Configure of the translation (bots-monitor->Configuration->Translations).
  • A grammar for the incoming message. A grammar describes an edi-message: the records, sequence of the records, fields in the records, field lengths etc.
  • A mapping script. The mapping script gets data from the incoming message and puts it in the outgoing message. A mapping script is a Python script. You do not need to be proficient in Python to do this; only the basics of Python are used. And Python is a relatively easy computer language. There are a lot of good examples of mapping scripts in the plugins.
  • A grammar for the outgoing message.