How are control numbers assigned in the EDI connectors and can I reset them?

When the X12, EDIFACT, and VDA connectors general EDI from XML inputs, each document that is generated has at least one control number created in the outbound documents. In EDI X12, there are control numbers in the interchange and functional group lines:

ISA*00*          *00*          *ZZ*Sender         *ZZ*Receiver       *250304*1022*U*00401*000000003*0*T*:~ 
GS*PO*Sender*Receiver*20250304*1022*3*T*004010~ 
ST*850*0001~

In EDIFACT, there is a control number in the UNB segment (and more rarely, a second in the UNG segment if that is used):

UNA:+.?*’ 
UNB+UNOA:4+Sender:ZZZ+Receiver:ZZZ+20250304:1121+000000040’ 
UNH+1+ORDRSP:D:97A:UN:EDOR04’

And in VDA, a Transmission Control Number

71103Sender   Receiver 0000200003250304         11825429 1J

These identifiers are used as unique tracking identifiers for each document, and in each case, the connector maintains a simple state table in the backend database that begins at 1 and increments anew for every new document created:

In the X12 connector, this table contains two rows, with ISAControlNumber and GSControlNumber keys that contain the last value used in this position:

7412d83d-adae-479d-b074-b6bda4e5c367.png

In the EDIFACT connector, the state table contains a row with a UNBInterchangeControlNumber column containing the last control number assigned to a message:

014c2ab4-3609-4ee5-8d85-5a9bd3e6f9d2.png

And in the VDA connector, the key is named TransmissionControlNumber

6160aa87-f19a-4749-9aca-2fef92c1bc67.png

CData Arc uses a simple algorithm to assign new control numbers for every message generated, incrementing the control numbers by 1 every time a new value is assigned.

Initializing or Resetting the Control Number:

In the Advanced->Miscellaneous->Other Settings section of EDI connectors, you can set seed values for the control numbers for each connector. The supported configurations are:

X12:

ISAControlNumber

GSControlNumber

EDIFACT:

UNBInterchangeControlNumber

UNGControlNumber

VDA:

TransmissionControlNumber

For example, to initialize the values of the ISA and GS control numbers in a new X12 connector to 500, you would set these configurations in the Other Settings and save your changes.

Note that since this sets the last value assigned, the next document generated will begin at 501:

ISA*00*          *00*          *ZZ*Sender         *ZZ*Receiver       *250304*1335*U*00401*000000501*0*T*:~ 
GS*SH*Sender*Receiver*20250304*1335*501*T*004010~ 
ST*856*0029~

These values are only used to initialize the state table where these values are stored – once the EDI connector has begun assigning values, the control numbers stored in the table are used. This means that if you have an EDI connector that has already created documents, you will need to reset its state before setting custom control numbers. This can be done with a Reset State button in the Advanced tab:

1 Like