Debugging in botsΒΆ

Basics: use bots-monitor/GUI

  • The reports-screen gives an overview of what happened in a run.
  • If there are process errors in a run, first view the process errors.
  • The incoming-screen gives information about the results of each incoming file.
  • For each incoming edi-file: view the detail-screen for information about the processing steps for incoming/outgoing edi file. Usage: in incoming-screen move mouse over star at the start of the line; drop-down box appears; choose ‘details’.
  • View the outgoing files, including communication errors for outgoing files.

Options to get more information

  • Use explicit checks for all gets/puts: parameter ‘get_checklevel’ in config/bots.ini:

    • ‘2’: all gets/puts are checked with the grammar(s). Do not use in production, bad for performance.
    • ‘1’: sanity checks on get/puts.
    • ‘0’: fastest, might give strange error-messages. But this should have been debugged by you.
  • Use ‘print’ in your mapping script. Output can be viewed on the console/command line. Simple, very efficient.

  • Use root.display() to see message content. Not the nicest output, but is definitely what you received or generated.

    • for incoming: at the start of the main function use inn.root.display()
    • for outgoing: at the end of the main function use out.root.display()
  • Logging. Logging files are written to botssys/logging. Set parameters in config/bots.ini to get more debug information.

    • log_file_level: set to DEBUG to get extended information.
    • readrecorddebug: information about the records that are read and their content.
    • mappingdebug: information about the results of get()/put() in the mapping script.
  • Logging for communication protocols:

    • Set in config/bots.ini eg ftpdebug, smtpdebug, pop3debug.
    • This debug-information is on the console/command line (but not for SFTP, uses the normal logging).
  • Set parameter ‘debug’ in config/bots.ini; gives information about the place in the code where the error occurred.

Tips

  • Always check first if a run has process errors; if so check the process errors.

  • The errors bots gives for incoming edi-files are quite accurate.

  • Edifact and x12 messages can contain errors. Especially when found on internet or taken from documentation/pdf; eg lot of ISA headers for X12 are not OK.

  • If you start using python debugger (pdb) you are definitly on the wrong track.

  • Be careful with character-set/encoding.

    • Can your editor handle this? Be careful with editing files and saving these again, you might run into issues with character-set/encodings.
    • Are you familiar with the character-set you use? Are you familiar with eg utf-8? If not, please check this first.