Functional documentation for the Aiden WMS sales order mapper.
This document describes what happens after the mapper is installed: which SAP Business One (B1) sales order data is sent to Aiden WMS, how values are translated, and which business rules apply. It is intended for end-users and functional consultants.
1. Overview
|
Source |
SAP B1 sales order (Service Layer document JSON) |
|
Target |
Aiden WMS outgoing order document ( |
|
Purpose |
Convert an open B1 sales order into a WMS pick/ship order document |
After installation, when a sales order is published to the integration, the mapper produces a WMS document that contains:
-
Document identity and type
-
Customer (business partner)
-
Ship-to address
-
Order lines for picking-enabled warehouses only
-
Optional sales BOM structure on BOM-related lines
-
Optional freight/expenses and text special lines
-
Correlation id for tracking
Fixed business defaults
These values are always set by the mapper (not taken from B1):
|
WMS field |
Fixed value |
Meaning for WMS |
|---|---|---|
|
|
|
Document originates from a sales order |
|
|
|
Manual handling mode in WMS |
|
|
|
Default priority |
|
|
|
Custom object type label |
2. What the mapper uses as input
2.1 Main payload — B1 sales order
The primary input is the full B1 sales order document, including for example:
-
Header:
DocNum,DocEntry,CardCode,CardName,DocDueDate,DocumentStatus,PartialSupply,DocObjectCode,PickRemark,NumAtCard -
Ship-to address:
AddressExtension.ShipTo* -
Lines:
DocumentLines[] -
Header additional expenses:
DocumentAdditionalExpenses[] -
Special lines:
DocumentSpecialLines[]
2.2 Warehouse list (automatic)
The integration periodically loads warehouses from B1:
-
WarehouseCode -
U_AEN_WHS_Picking(Y/N) -
(also retrieved but not used in field mapping:
EnableBinLocations,DefaultBin)
Business impact: only order lines whose warehouse is marked as picking-enabled (U_AEN_WHS_Picking = Y) are sent to WMS.
2.3 Sales BOM helper data (automatic)
From the same sales order, the integration builds a helper list of lines where:
-
TreeType = iSalesTree(sales BOM parent lines)
That list is used only to calculate sales BOM parent/child quantities and parent line references on the WMS lines. Consultants do not need to supply this separately.
2.4 Correlation id
The message correlation id (integration message key) is written to:
-
correlation.correlationId
Use this to trace a WMS document back to the integration message.
3. Business behavior
3.1 Which lines are sent to WMS?
A B1 order line is included in data.lines only when its WarehouseCode matches a warehouse with U_AEN_WHS_Picking = Y.
Lines for warehouses with U_AEN_WHS_Picking = N (or unknown warehouse) are not sent to WMS.
Configure picking warehouses correctly in B1 (
U_AEN_WHS_Picking) before go-live. Otherwise orders may arrive in WMS with missing lines.
3.2 Document and line status
B1 statuses look like bost_Open / bost_Close.
The mapper:
-
Removes the
bost_prefix →Open/Close -
Translates
Close→Closed(other values stay as-is, e.g.Open)
Applied to:
-
Header:
DocumentStatus→data.status -
Line:
LineStatus→lines[].status
|
B1 value |
WMS value |
|---|---|
|
|
|
|
|
|
3.3 Partial delivery flags
B1 tYES / tNO flags are converted to booleans:
|
B1 field |
WMS field |
Translation |
|---|---|---|
|
|
|
|
|
Line |
|
|
3.4 Object type
|
B1 |
WMS |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
For a normal sales order this is Orders.
3.5 Unit of measure on lines (uomCode)
For each line:
-
If
UoMEntryis not-1→ useUoMCode -
If
UoMEntryis-1→ use"m" + MeasureUnit-
If
MeasureUnitis missing, an empty string is used afterm(result can be justm)
-
UoMEntry is also copied unchanged to lines[].customFields.UoMEntry.
3.6 Ship-to address
Address is taken from ship-to fields on the sales order (AddressExtension), not bill-to.
|
WMS address field |
Source |
|---|---|
|
|
|
|
|
Same concatenated street value as |
|
|
|
|
|
|
|
|
|
|
|
|
3.7 Sales BOM structure (lines[].salesBom)
B1 tree types used:
|
|
Meaning in this mapper |
|---|---|
|
|
Sales BOM parent |
|
|
Sales BOM ingredient/child |
|
Other (e.g. |
Not treated as sales BOM |
When is salesBom present on a line?
-
Only if the line is a sales BOM parent or ingredient (
iSalesTreeoriIngredient). -
Otherwise the
salesBomobject is omitted.
Fields:
|
WMS field |
Rule |
|---|---|
|
|
|
|
|
|
|
|
For sales-tree parents: |
|
|
For sales-tree parents: line |
Practical expectation for consultants:
-
Sales BOM parents and ingredients are flagged in WMS via
salesBom. -
Parent kit lines get
parent = trueandrespectSingleQuantity = true. -
Quantity/parent-line calculations depend on
VisualOrderordering of sales-tree lines on the B1 document. -
Non-BOM lines (normal items, production tree, etc.) do not get a
salesBomblock.
3.8 Customer reference (NumAtCard)
If filled in B1, NumAtCard is sent as a dynamic custom property:
-
Property name:
NumAtCard -
Property value: the B1
NumAtCardvalue
(Output schema path: dynamic property / property.name.)
3.9 Additional expenses
-
Header
DocumentAdditionalExpenses→data.customFields.DocumentAdditionalExpenses[] -
Line
DocumentLineAdditionalExpenses→lines[].customFields.DocumentAdditionalExpenses[]
Copied fields: ExpenseCode, LineTotal, GroupCode, DistributionMethod, VatGroup, and line number (LineNum / LineNumber).
3.10 Special lines (text lines)
B1 DocumentSpecialLines are not all copied blindly.
A special line is sent to WMS only when both are true:
-
LineType = dslt_Text(text line only — comment in mapping: “Alleen tekst regels”) -
AfterLineNumberequals the current order line’sVisualOrder(text is attached in context of that visual order / line position)
Mapped into data.customFields.DocumentSpecialLines[] with amounts/texts copied from B1 (order number, line type, subtotals, freights, tax, gross totals, line text, etc.).
4. Field mapping tables
Legend:
-
WMS output field — path in the Aiden WMS order document
-
B1 / source input — field on the sales order or other source
-
What happens — copy or transformation
-
Notes — consultant-relevant remarks
4.1 Correlation
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
Integration message key |
Direct copy |
Used for end-to-end tracing |
4.2 Document header (data)
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
|
Direct |
WMS document number from B1 doc num |
|
|
— |
Constant |
Always |
|
|
|
Direct |
Due date becomes pick date |
|
|
— |
Constant |
Always |
|
|
— |
Constant |
Always |
|
|
|
Strip |
See §3.2 |
|
|
|
Value map |
See §3.4 |
|
|
|
|
|
|
|
|
Direct |
|
|
|
— |
Not mapped |
Remains empty/absent |
|
|
|
Direct |
Internal B1 key |
|
|
— |
Constant |
Always |
|
Dynamic property |
|
Name constant + value copy |
Only meaningful when filled in B1 |
4.3 Business partner
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
|
Direct |
|
|
|
|
Direct |
|
4.4 Address (data.address)
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
|
Concatenate with space; null street no. → empty |
Same value as street |
|
|
|
Same as |
Ship-to only |
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
4.5 Lines (data.lines[])
Only lines for picking-enabled warehouses (§3.1).
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
|
Direct |
|
|
|
|
Direct |
Must be picking-enabled |
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
— |
Not mapped |
Present in schema but unused |
|
|
|
Conditional — see §3.5 |
|
|
|
|
Strip |
|
|
|
|
Direct |
|
|
|
|
|
|
|
|
|
Direct |
|
|
|
|
Direct |
Duplicate of document line for custom use |
|
|
|
Direct |
|
4.6 Sales BOM on lines (lines[].salesBom)
Only for TreeType in (iSalesTree, iIngredient) — see §3.7.
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
|
Present if parent or ingredient |
Omitted otherwise |
|
|
|
|
|
|
|
|
|
|
|
|
Line |
|
Parents/BOM calc |
|
|
Line |
Quantity ÷ last matching parent qty |
Per-single-parent qty |
4.7 Line additional expenses
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
Line expense |
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
B1 line expense number |
4.8 Header additional expenses
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
|
Header |
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
4.9 Special lines (data.customFields.DocumentSpecialLines[])
Filtered — see §3.10.
|
WMS output field |
B1 / source input |
What happens |
Notes |
|---|---|---|---|
|
Special line included? |
|
Only text lines tied to visual order |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
|
Direct |
|
|
|
Same B1 fields |
Direct |
|
|
|
Same B1 fields |
Direct |
|
|
|
Same B1 fields |
Direct |
|
|
|
Same B1 fields |
Direct |
|
5. Value translations (reference)
5.1 Yes/no flags
|
B1 |
WMS |
|---|---|
|
|
|
|
|
|
5.2 Warehouse picking flag
|
B1 |
Meaning in mapper |
|---|---|
|
|
Warehouse lines are sent to WMS |
|
|
Warehouse lines are not sent to WMS |
5.3 Status
|
After removing |
Final WMS status |
|---|---|
|
|
|
|
|
|
|
Other |
Unchanged (passthrough) |
5.4 Document object code
|
B1 |
WMS |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
5.5 Sales tree types
|
B1 |
Mapper treatment |
|---|---|
|
|
Sales BOM parent |
|
|
Sales BOM ingredient/child |
|
Other |
No |
5.6 Special line type filter
|
B1 |
Sent to WMS? |
|---|---|
|
|
Yes, if |
|
Other |
No |
6. What is not mapped / important omissions
Consultants should not expect the following from this mapper:
|
Topic |
Behavior |
|---|---|
|
Bill-to address |
Not mapped (ship-to only) |
|
Prices, VAT, discounts, currency |
Not mapped to WMS order document core fields |
|
Sales employee / owner |
|
|
|
Schema field exists but is not populated |
|
Non-picking warehouses |
Lines suppressed |
|
Non-text special lines |
Suppressed |
|
Production tree BOM ( |
Not treated as sales BOM |
|
Closed-line filter |
No extra filter beyond status mapping; closed statuses can still map if the line’s warehouse is picking-enabled |
|
Business partner master data beyond CardCode/CardName |
Not enriched from BP GET in the MapForce mapping itself |
7. End-to-end expectation (happy path)
-
Sales order is created/updated in SAP B1 and published to the integration.
-
Integration loads picking warehouse configuration from B1.
-
Mapper converts the order to a WMS order document:
-
Header + BP + ship-to address
-
Only lines on picking warehouses
-
Status/partial-delivery/UoM/BOM rules applied
-
-
WMS receives an
OutgoingDocumentready for outbound warehouse processing. -
correlation.correlationIdandcustomFields.externalId(DocEntry) support support/troubleshooting.
8. Example (from project scenario data)
Illustrative values based on scenario_files/1_Sales_order and mapping examples.
B1 input (excerpt)
|
Field |
Example value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ship-to street |
|
|
Ship-to city |
|
|
Ship-to zip |
|
|
Ship-to country |
|
|
Line 0 |
Item |
WMS output (expected shape)
|
WMS field |
Example result |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line included? |
Only if warehouse |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
From UoM rule ( |
|
|
Omitted for |
9. Implementation checklist for consultants
-
Warehouses: set
U_AEN_WHS_Picking = Yon every warehouse that must create WMS work. -
Ship-to address: maintain
AddressExtensionship-to fields on the sales order. -
UoM: understand
-1UoM entry fallback (m+ measure unit). -
Sales BOM: use
iSalesTree/iIngredientand consistentVisualOrderif WMS must receive BOM structure. -
Text lines: use
dslt_Textspecial lines withAfterLineNumberaligned to the related lineVisualOrder. -
Tracking: use
correlation.correlationIdandcustomFields.externalId(DocEntry) for support. -
Defaults: expect
handling=Manual,priority=3,baseType=SalesOrderon every document.
10. Source artifacts (for reference)
|
Artifact |
Role |
|---|---|
|
|
MapForce mapping definition (field logic) |
|
|
B1 sales order schema |
|
|
WMS order document schema |
|
|
Warehouse list schema |
|
|
Sales-tree helper schema |
|
|
Sample source/target messages |
Generated from the mapping definition and integration behavior in this project. If the MapForce mapping changes, this document should be reviewed and updated.