Settings shared by every EDI document type
Lesson 7 of 22 8 min read
The base settings on every EDI Configuration, grouped by the decision each one answers: timing, sequence numbers, totals checking and whole-number quantities.
Every EDI Configuration, whatever its document type, starts with the same set of base
settings. Most of the time the defaults are right. This lesson explains each one in terms of
the decision behind it, so that when the Supply Lens team says "we've turned on
failOnFractionalQuantities for this partner", you know what that means for your orders.
How to read this lesson
Settings are keys in the Configuration's JSON. Each section below starts with the question you're really answering, then lists the settings involved.
Decision 1: when should documents be picked up?
| lastImportDate | A bookmark recording the most recently imported document, so the next run only fetches newer ones. The system updates it after every run. Don't edit it by hand. |
|---|---|
| importDelay | How long to wait before importing a document, giving other systems time to finish changing it. Written as a duration, for example 00:05:00 for five minutes. |
| timeZoneId | The time zone used to read dates and times in EDI messages, for example Europe/London, so delivery dates and timestamps are converted correctly. |
Check the time zone for overseas partners
If delivery dates on imported orders are consistently a day out, the time zone is the first thing to check. A partner in another country may send times in its own local zone.
Decision 2: how should sequence numbers behave?
Many EDI routes number each message in sequence, so both sides can spot a missing or repeated message. Two settings control this.
| commitSequenceNumberOnError | When on, the AS2 sequence number is committed even if processing fails. The same problem message is then not re-processed on the next run, which avoids handling a bad message over and over. |
|---|---|
| applySequenceNumbersAtCreation | When on, the sequence number is applied when an outgoing document is created rather than when it's transmitted. Needed where the number must be inside the EDI payload before it leaves. Off by default for most partners; on by default for Toymaster. |
commitSequenceNumberOnError skips the message
Turning this on stops a broken message blocking the queue, but it also means that message won't be retried automatically. Someone still needs to find out what was wrong with it.
Decision 3: should totals be checked?
| disableExpectedPayableTag | Stops the expected payable tag being added to documents. That tag is normally used during import to check that the calculated document total matches the amount expected. Disabling it skips the check. |
|---|
Leave this alone unless the Supply Lens team has a specific reason. The check is a useful safety net: it's how a rounding or pricing difference gets noticed before it reaches your accounts.
Decision 4: what if a quantity isn't a whole number?
Quantities are converted into the unit the original order was placed in. If you invoice part of a pack, say 2.5 packs, that becomes a fractional quantity. EDI quantity fields carry whole numbers, so by default the quantity is truncated (cut down to 2) while the unit price keeps its full precision. The quantities and values on the message then don't reconcile.
| failOnFractionalQuantities | When on, generating an outgoing message fails if any line quantity isn't a whole number, and names the line at fault. Use it for partners who reject messages that don't reconcile (Etos is one example). Off by default, which keeps the truncating behaviour. |
|---|
Northfield Pantry and the half case
A Greenway depot is short-shipped and Northfield's accounts team invoices 12.5 cases of Honey
Granola by mistake. With the default setting, the EDI invoice would show 12 cases at full
value per case and the totals wouldn't add up. Greenway's specification says such invoices
are rejected, so the Supply Lens team has turned on failOnFractionalQuantities. Instead of
a rejected invoice a week later, Northfield sees a failure straight away naming the Honey
Granola line, corrects it to whole cases, and the invoice goes out cleanly.
Recap
lastImportDateis system-managed;importDelaywaits for other systems;timeZoneIdmakes dates read correctly.commitSequenceNumberOnErrorstops a bad message being re-processed, but it won't be retried either.applySequenceNumbersAtCreationputs the sequence number in the payload at creation time, for partners who need it.disableExpectedPayableTagturns off the document total check: leave it on unless there's a reason.failOnFractionalQuantitiesfails a message with part-pack quantities instead of silently truncating them.
Quick guides for this topic
Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.