Directories and Files

Where can I find bots on my system?

  • Windows (depends upon python version used):
    • eg. C:\python27\Lib\site-packages\bots
  • Linux, Unix:
    • /usr/lib/python2.7/site-packages/bots
    • /usr/local/lib/python2.7/dist-packages/bots (Debian, Ubuntu)


In the main screen (home) of bots-monitor (GUI) you can see where the bots-directories are.

Where are the programs/executable scripts?

  • Where installed
    • Windows (depends upon python version used): C:\python27\Scripts
    • Linux, Unix eg in /usr/bin/ or /usr/local/bin/
  • Overview of executables:
    • - serves the html-pages for the bots-monitor.
    • - does the actual edi communication and translation.
    • - the jobqueue-server maintains a queue with (job-engine) jobs and fires these asap.
    • - to send jobs to the jobqueueserver
    • - monitors/watches directoriess; if a file is placed in a directory, bots-engine stats (via jobqueueserver)
    • - utility to check a grammar.
    • - utility to generate an xml-grammar from an xml file.
    • - for version migrations: updates the database to new definition/schema
    • - for version control systems: generate a file with the configuration (routes, channels, etc). (configuration as in the database).


For the usage instructions of the executables use help, eg: --help

Where are the edi files?

  • Incoming and outgoing
    • Set this per channel, using ‘path’ and ‘filename’.
    • Relative path is relative to bots directory, absolute paths are OK.
    • In the plugins the edi-files are in bots/botssys/infile
  • The archive/backup.
    • each communication channel of bots CAN archive the incoming or outgoing edi messages.
    • Set this per channel, using ‘archivepath’.
    • The place of the archive can be ‘anywhere’. We mostly use botssys/archive.
  • Relative path is relative to bots directory, absolute paths are OK.
    • Internal storage of edi data.
    • in subdirectories of bots/botssys/data.
    • this is where the edi files are fetched from by the bots-monitor (the ‘filer’ module).
  • Cleanup of old files
    • bots manages cleanup of archive and internal storage, based on configuration settings for number of days to keep.
    • Incoming files are (usually, unless testing) removed by the channel setting “remove”.
    • Outgoing files are never removed by bots

The directory structure within bots directory

  • bots: source code (*.py, *.pyc, *.pyo)
    • bots/botssys: data file, database, etc
      • bots/botssys: when installing a plugin bots makes a backup of configuration here.
      • bots/botssys/data: internal storage of edi data.
      • bots/botssys/sqlitedb: database file(s) of SQLite.
      • bots/botssys/logging: log file(s) for each run of bots-engine.
      • bots/botssys/infile: plugins place here example edi data
      • bots/botssys/outfile: plugins place here translated edi data
    • bots/config: configuration files. See also multiple environments.
    • bots/install: contains an empty sqlite database and default configuration files.
    • bots/installwin: (windows) python libraries used during installation.
    • bots/locale: translation/internationalisation files for use of another language.
    • bots/media: static data for bots-webserver (CSS, html, images, JavaScript)
    • bots/sql: sql files for initialising a new database.
    • bots/templates: templates for bots-webserver
    • bots/templatetags: custom template-tags for use in django.
    • bots/usersys: user scripts.
      • bots/usersys/charsets: e.g. edifact uses its own character-sets.
      • bots/usersys/communicationscripts: user scripts for communication (inchannel, outchannel).
      • bots/usersys/envelopescripts: user scripts for enveloping.
      • bots/usersys/grammars: grammars of edi-messages; directories per editype (x12, edifact, tradacoms, etc).
      • bots/usersys/mappings: mappings scripts; directories per editype (incoming).
      • bots/usersys/partners: partner specific syntax for outgoing messages; directories per editype.
      • bots/usersys/routescripts: user scripts for running (part of) route.
      • bots/usersys/codeconversions: for conversions of codes (deprecated).
      • bots/usersys/dbconnectors: user scripts for communication from/to database (old database connector, deprecated).