Identify the actual product
Manhattan covers multiple solutions and installations. Record edition, version, extensions, available interfaces and functions already owned by WMS/WES. Active documentation describes automation orchestration; it does not prove that every installation exposes a particular endpoint.
Map inbound, storage, picking and shipping separately. Establish task creation, update authority and completion evidence. ABNET WCS integration should follow this contract rather than duplicate inventory rules.
Technical reference: Manhattan — Integrated Automation & Robotics.
Stable message identity
Specify task, load, message and correlation identifiers, required fields, units, enumerations and version compatibility. A priority update is not a new task; retransmission must not create another physical movement.
Transport acknowledgement, business acceptance and physical completion are different facts. Preserve pending event publication so confirmations survive communication outages.
Retry and operational exceptions
Retry transient failures with limits, spacing and volume control. An invalid destination requires correction. Exception queues need ownership, diagnosis and a replay procedure that preserves identity.
Provide a way to compare open tasks in both systems with known physical position. Matching message counts cannot detect a confirmation assigned to the wrong load. Partial execution must remain distinguishable from completion.
Worked timeout scenario
WCS delivers C31 and sends E91. WMS processes it but its response is lost. Replaying E91 must not create another inventory transaction. A late task update after completion should be rejected or compensated according to contract, never silently reopen movement.
Acceptance includes extended outages, out-of-order events and queue recovery. Derive latency and throughput limits from the contracted workload; demonstration numbers are not production sizing.
Before the API: agree functional ownership
Record the Manhattan product, version, extensions, authentication, traffic limits and available environments. For each flow, identify the task-creation trigger, destination owner and physical completion point. WMS, WES, WCS and local control do not necessarily map to separate servers.
The interface document should cover nominal execution, cancellation, priority changes, partial outcomes and recovery. Assign owners at both ends and define contract-change validation. A connected interface can still carry the wrong interpretation of a load identifier or destination.
Illustrative contract: a message is not a task
The following JSON is a teaching example. It is neither an official Manhattan API nor a published ABNET WCS message format. Map its concepts to the interface actually available in the project.
messageId identifies a logical message delivery, taskId the physical operation and taskVersion an authorized update. correlationId connects the chain of commands and events. Deduplication keys need appropriate scope, such as producer and facility, to avoid collisions between senders.
{
"schemaVersion": "example-1",
"messageId": "MSG-0091",
"taskId": "T42",
"taskVersion": 1,
"correlationId": "FLOW-018",
"loadId": "C18",
"source": "IN-01",
"destination": "S3",
"intent": "MOVE"
}| Element | Rule to specify | Failure prevented |
|---|---|---|
| Identity and scope | Uniqueness, retention and restart behavior | Replaying old work after losing duplicate history. |
| Task version | Permit updates only in the allowed version and phase | An old priority overwriting a recent decision. |
| Load and locations | Validate existence, format and mapping | Moving the right load to the wrong location. |
| Outcome | Separate received, accepted, executing and completed | Posting inventory before physical delivery. |
Three different acknowledgements in one flow
Transport receipt, business acceptance and physical completion must be distinguishable in logs and interfaces. Transport acknowledgement may precede destination validation. An accepted task may wait for capacity without any communication fault.
Manhattan → WCS
Request T42 with load, destination and version.
Channel → producer
Acknowledge protocol receipt without implying execution.
WCS → Manhattan
Accept after validation and recording, or reject with a reason.
WCS ↔ equipment
Reserve, send command and track the load.
WCS → Manhattan
Publish evidenced delivery with a stable event identity.
Manhattan → integration
Confirm processing or support outcome reconciliation.
If the final response is lost, replaying the event must not repeat the inventory transaction. Deduplication retention must cover the agreed replay window.
Ordering, timeouts and operational exceptions
Order dependent operations, such as updates to the same task. Avoid a global queue where independent tasks can run concurrently. A future version arriving before its predecessor needs an agreed wait, state query or diagnosable rejection. Timestamps alone do not establish causal order.
For transient failures, bound attempts and use progressive spacing with variation to avoid synchronized retry storms. Content rejection needs correction, not endless retries. Exception queues need ownership, context and audited replay. Correcting payload under the same identity may be treated as a duplicate; define how corrected versions obtain valid identities.
| Occurrence | Reference action | Avoid |
|---|---|---|
| Response lost after acceptance | Query T42 or idempotently repeat the original request | Creating T43 merely because of a timeout. |
| Invalid destination | Reject with code and context; correct through authorized flow | Repeating the same invalid content indefinitely. |
| Cancellation after movement | Evaluate commitment point and compensation | Deleting the task while its load remains in transit. |
| Repeated completion | Return the previously applied result | Posting another inventory movement. |
Minimum integration acceptance matrix
Tests must prove business and execution integrity, not just connectivity. Use identifiable tasks, known initial state and correlated records from both systems. Workload and recovery limits should come from agreed operational requirements.
After each scenario, reconcile accepted tasks, physically delivered loads and WMS-recorded outcomes. Every difference needs an explained rejection, cancellation or open exception. A dashboard without alarms does not replace reconciliation.
| Scenario | Expected outcome | Evidence |
|---|---|---|
| Duplicate request | One physical task and coherent repeated responses | taskId, deduplication and load trajectory. |
| Lost final confirmation | Recovered notification without new execution | Original event and one WMS outcome. |
| Reversed updates | Old version cannot overwrite new version | Received versions, decision and final state. |
| Restart during execution | Recover or block for reconciliation | Persisted state, physical observation and recovery decision. |
| Channel outage and return | Drain backlog within agreed limits | Queue age, useful throughput and unresolved tasks. |
Project verification criteria
- Confirm edition, available interface and decision ownership.
- Lose the response after processing and test deduplication.
- Reconcile open tasks after a prolonged outage.
Examples describe engineering decisions and test scenarios. Implemented interfaces, limits and features are defined by each project’s scope.