GrammarsPartnerSyntax - skilchen/bots GitHub Wiki

Partner dependent syntax

For outgoing messages it is possible to specify a partner dependent syntax.
This is especially useful for x12 and edifact, for setting envelope values and partner specific separators.
These parameters override the settings in the message grammar; you only need to specify the partner-specific parameters.
Note: no need to set partner specific separators for incoming messages; bots will figure this out by itself.
To set partner specific syntax parameters, create according to editype used:

  • bots/usersys/partners/x12/partnerid.py
  • bots/usersys/partners/edifact/partnerid.py

Example file with partner specific setting (x12):

syntax = {
'ISA05'                  : 'XX',    #use different communication qualifier for sender
'ISA07'                  : 'ZZ',    #use different communication qualifier for receiver
'field_sep'              : '|',     #use different field separator
}

Example file with partner specific setting (edifact):

syntax = {
'merge':False,
'forceUNA':True,
'UNB.S002.0007':'ZZ',        # partner qualifier
'UNB.S003.0007':'ZZ',        # partner qualifier
}

Plugin

Plugin 'demo_partnerdependent' at the bots sourceforge site demonstrates partner dependent syntax.

Relevant x12 syntax settings

Name Default Description
ISA05 01 Interchange ID Sender Qualifier
ISA07 01 Interchange ID Receiver Qualifier
ISA15 P Testindicator: P(roduction) or T(est); mostly set per message/transaction.
GS07 X Responsible Agency Code
version 00403 As ISA12
functionalgroup As GS01; set this for each x12 messagetype
record_sep ~ Segment terminator.
field_sep *
sfield_sep > Sub-field separator (in composites).
merge True Merge messages to envelopes (False: no merging, only envelope).
add_crlfafterrecord_sep \r\n Adds CR/LF after each segment.

Relevant edifact syntax settings

Name Default Description
UNB.S002.0007 14 Identification code qualifier
UNB.S002.0008 Interchange sender internal identification
UNB.S002.0042 Interchange sender internal sub-identification
UNB.S003.0007 14 Identification code qualifier
UNB.S003.0014 Interchange recipient internal identification
UNB.S003.0046 Interchange recipient internal sub-identification
UNB.S005.0022 Recipient reference/password
UNB.S005.0025 Recipient reference/password qualifier
UNB.0026 Application reference
UNB.0029 Processing priority code
UNB.0031 Acknowledgement request
UNB.0032 Interchange agreement identifier (eg. EANCOM)
UNB.0035 0 Testindicator. Mostly set per message.
charset UNOA As S001.0001
version 3 As S001.0002
merge True Merge messages to envelopes (False: no merging, only envelope).
forceUNA False Always use UNA in outgoing edifact, even if not strictly needed.
add_crlfafterrecord_sep \r\n Adds CR/LF after each segment.