- 5 minutes to read

4. Order Planned

Step Overview

Step 4 occurs when the order has been scheduled and planned within the ERP production system. This step confirms that raw materials have been allocated, production scheduling is complete, and the order is ready for warehouse fulfillment.

Message Details

  • Message Type: O2C.Order.Scheduled/1.0
  • Domain: Planning
  • System: ERP
  • Service: PLN-Order-Scheduled
  • Direction: Send (Outgoing from ERP)
  • Format: JSON
  • Log Status: 0 (Success) for confirmed planning, -1337 if scheduling fails
  • Timing: Typically 15-30 minutes after Order Entry

Business Data (Happy Path)

Same customer and product data:

  • Order ID: ORD-10001 (same as source order)
  • Customer ID: CUST-001
  • Product SKU: SKU-DEMO-001
  • Quantity: 1
  • Order Total: USD 99.95

Sample JSON Message

This is the raw message payload that would be base64-encoded in the Log Event Body field.

{
  "scheduleId": "SCH-2025-10001",
  "orderId": "ORD-10001",
  "customerId": "CUST-001",
  "customerName": "Acme Corporation",
  "orderDate": "2025-10-14T09:15:00Z",
  "scheduleDate": "2025-10-14T09:37:45Z",
  "productionLines": [
    {
      "lineId": "LINE-01",
      "lineName": "Assembly Line A",
      "scheduledStart": "2025-10-16T06:00:00Z",
      "scheduledEnd": "2025-10-16T14:30:00Z",
      "expectedDuration": 510,
      "shift": "DAY",
      "capacity": 50
    }
  ],
  "materials": [
    {
      "materialId": "MAT-SKU-DEMO-001",
      "sku": "SKU-DEMO-001",
      "description": "Demo Widget",
      "quantityRequired": 1,
      "quantityAllocated": 1,
      "availableAtScheduleTime": true
    }
  ],
  "orderQuantity": 1,
  "orderAmount": 99.95,
  "currency": "USD",
  "priorityLevel": "NORMAL",
  "schedulingStatus": "CONFIRMED",
  "estimatedCompletionDate": "2025-10-16T14:30:00Z"
}

Nodinite Log Event (JSON formatted)

This is the complete Log Event structure that would be sent to the Nodinite Log API. The message above is base64-encoded into the Body field.

Full Nodinite Log Event

{
  "LogAgentValueId": -5,
  "EndPointName": "ERP-Planning-Send",
  "EndPointUri": "C:\\Integration\\ERP\\Planning\\Out",
  "EndPointDirection": 1,
  "EndPointTypeId": 60,
  "OriginalMessageTypeName": "O2C.Order.Scheduled/1.0",
  "LogDateTime": "2025-10-14T09:38:00.234Z",
  "EventDirection": 18,
  "ProcessingUser": "ERP\\PlanningService",
  "SequenceNo": 3,
  "EventNumber": 3,
  "LogText": "Order Planned",
  "ApplicationInterchangeId": "PIC-20251022-0001",
  "LocalInterchangeId": null,
  "LogStatus": 0,
  "ProcessName": "O2C-Order-Planning",
  "ProcessingMachineName": "erp-server-01",
  "ProcessingModuleName": "ERP.PlanningService.Scheduler",
  "ProcessingModuleType": "WindowsService",
  "ServiceInstanceActivityId": null,
  "ProcessingTime": 312,
  "Body": "eyJzY2hlZHVsZUlkIjoiU0NILTI5MDI1LTEwMDAxIiwib3JkZXJJZCI6Ik9SRC0xMDAwMSIsImN1c3RvbWVySWQiOiJDVVNULTAwMSIsImN1c3RvbWVyTmFtZSI6IkFjbWUgQ29ycG9yYXRpb24iLCJvcmRlckRhdGUiOiIyMDI1LTEwLTE0VDA5OjE1OjAwWiIsInNjaGVkdWxlRGF0ZSI6IjIwMjUtMTAtMTRUMDk6Mzc6NDVaIiwicHJvZHVjdGlvbkxpbmVzIjpbeyJsaW5lSWQiOiJMSU5FLTAxIiwibGluZU5hbWUiOiJBc3NlbWJseSBMaW5lIEEiLCJzY2hlZHVsZWRTdGFydCI6IjIwMjUtMTAtMTZUMDY6MDA6MDBaIiwic2NoZWR1bGVkRW5kIjoiMjAyNS0xMC0xNlQxNDozMDowMFoiLCJleHBlY3RlZER1cmF0aW9uIjo1MTAsInNoaWZ0IjoiREFZIiwiY2FwYWNpdHkiOjUwfV0sIm1hdGVyaWFscyI6W3sibWF0ZXJpYWxJZCI6Ik1BVC1TS1UtREVNTy0wMDEiLCJza3UiOiJTS1UtREVNTy0wMDEiLCJkZXNjcmlwdGlvbiI6IkRlbW8gV2lkZ2V0IiwicXVhbnRpdHlSZXF1aXJlZCI6MSwixxxKV19.",
  "Context": {
    "FileName": "ORD-10001-planning.json",
    "OrderNumber": "ORD-10001",
    "CustomerId": "CUST-001",
    "CustomerName": "Acme Corporation",
    "OrderAmount": "99.95",
    "ScheduleId": "SCH-2025-10001",
    "ProductionLine": "LINE-01",
    "EstimatedCompletion": "2025-10-16T14:30:00Z",
    "ExtendedProperties/1.0#RepositoryBinding": "{\"Name\":\"Order Planned\",\"Service\":{\"Name\":\"INT1337-PLN-Order-Scheduled\",\"Direction\":\"Send\",\"System\":{\"Name\":\"ERP\"},\"Integration\":{\"Name\":\"INT1337 - Order-to-Cash\"},\"ExternalServiceRelations\":[{\"Name\":\"INT1337-SND-Confirm-Outgoing\",\"System\":{\"Name\":\"Portal\"}}],\"BPMs\":[{\"Name\":\"INT1337 - Order-to-Cash Flow\",\"ArtifactRenaming\":\"Order Planned for Production\",\"Domain\":{\"Name\":\"Planning\",\"Index\":1},\"Step\":3,\"ServiceRelations\":[{\"Name\":\"INT1337-SND-Confirm-Outgoing\",\"Direction\":\"Receive\",\"Domain\":{\"Name\":\"Sales\",\"Index\":0},\"Step\":2,\"Label\":\"Confirmation Data\",\"ConnectorStyle\":1,\"SourceAttachmentPoint\":2,\"TargetAttachmentPoint\":0}]}]}}"
  }
}

Key Points

  1. JSON Format Redux: Demonstrates JSON reuse across multiple steps with different message structures
  2. Extended Business Context: Includes production scheduling details (line allocation, material availability)
  3. Correlation Maintained: Same CorrelationId ({PREFIX}-{DATEPART}-{SEQUENCE}) links all prior steps
  4. Increased Processing Time: 312ms reflects complex ERP planning calculations
  5. Context Enrichment: ScheduleId, ProductionLine, and EstimatedCompletion provide rich monitoring context
  6. BPM Stay in Planning: Remains in Planning domain (Index 1, Step 3) as internal ERP workflow step
  7. ServiceRelations: Links back to Step 2 (Sales/Portal) showing data flow from confirmation message

Repository Binding for Step 4

This log event includes a Repository Binding JSON that defines:

  • Service: INT1337-PLN-Order-Scheduled with Direction Send
  • System: ERP
  • Integration: INT1337 - Order-to-Cash
  • ExternalServiceRelations: Links to INT1337-SND-Confirm-Outgoing in the Portal system (the upstream confirmation)
  • BPM: Specifies this is Step 3 in the Planning domain (Index 1) with milestone name "Order Planned for Production"
  • BPM ServiceRelations: Includes a relation to the INT1337-SND-Confirm-Outgoing service showing data flow from Step 2 (Sales domain) with:
    • Label: "Confirmation Data" - Shows data source on the connector
    • ConnectorStyle: 1 - Orthogonal connector with arrow
    • SourceAttachmentPoint: 2 - Arrow originates from bottom of Step 3 (Planning/ERP)
    • TargetAttachmentPoint: 0 - Arrow terminates at top of Step 2 (Sales/Portal)

Step 4 represents the internal production planning process that occurs within ERP after order confirmation, allocating resources and scheduling production.


HTTP Request to Log API

The Log Event above would be sent as a POST request:

POST /api/v2/LogEvents HTTP/1.1
Host: nodinite-api.example.com
Content-Type: application/json
x-ms-client-tracking-id: {PREFIX}-{DATEPART}-{SEQUENCE}
Authorization: Bearer YOUR_API_KEY

{
  "LogAgentValueId": -5,
  "EndPointName": "ERP-Planning-Send",
  ...
}