[
  {
    "id": "backorder-fulfilled-in-two-shipments",
    "verifyAttachmentGuidance": true,
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "PASSED",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "first-shipment-leaves-backorder-open",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1"
    ],
    "evaluatedAfterSeconds": 90060,
    "expectedOutcome": "PENDING"
  },
  {
    "id": "missing-final-invoice-stays-pending",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "PENDING"
  },
  {
    "id": "arrived-out-of-order-attachments",
    "parameters": {},
    "steps": [
      "invoice#2",
      "advanceShipNotice#2",
      "invoice#1",
      "advanceShipNotice#1",
      "purchaseOrderAcknowledgment",
      "purchaseOrder"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "PASSED",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "same-grand-quantity-wrong-item-allocation",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "LIN**VN*ITEM-B",
            "LIN**VN*ITEM-A"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "under-shipped-backorder",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "SN1**6*EA",
            "SN1**5*EA"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "over-shipped-backorder",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "SN1**6*EA",
            "SN1**7*EA"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "unknown-shipped-item",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "ITEM-B",
            "ITEM-C"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "wrong-shipping-unit",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "SN1**6*EA",
            "SN1**6*CA"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "duplicate-shipment-identity",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#2",
        "replacements": [
          [
            "SHIP-1001-B",
            "SHIP-1001-A"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:shipmentIdsUnique",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "duplicate-invoice-number",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "invoice#2",
        "replacements": [
          [
            "INV-1001-B",
            "INV-1001-A"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceNumbersUnique",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "invoice-points-at-wrong-shipment",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "invoice#2",
        "replacements": [
          [
            "SHIP-1001-B",
            "SHIP-1001-A"
          ]
        ]
      }
    ],
    "expectedCheck": "transition:invoiceForShipment",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "invoice-per-item-quantity-wrong",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "invoice#2",
        "replacements": [
          [
            "IT1*1*6*EA",
            "IT1*1*7*EA"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoiceQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "later-invoice-changes-unit-price",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "invoice#2",
        "replacements": [
          [
            "6*EA*25",
            "6*EA*24"
          ],
          [
            "TDS*15000",
            "TDS*14400"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:invoicePricesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "invoice-total-wrong",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "invoice#2",
        "replacements": [
          [
            "TDS*15000",
            "TDS*15001"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:eachInvoiceTotalMatchesItsLines",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "acknowledgment-backorder-does-not-cover-order",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "PO1*2*10",
            "PO1*2*9"
          ],
          [
            "ACK*IB*10",
            "ACK*IB*9"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:purchaseOrderAcknowledgmentQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "acknowledgment-rejection-is-not-a-backorder",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "ACK*IB*10",
            "ACK*IR*10"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:purchaseOrderAcknowledgmentLinesValid",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "acknowledgment-changed-price",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "10*EA*25",
            "10*EA*24"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:purchaseOrderAcknowledgmentPricesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "header-only-acceptance-not-backorder-details",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "BAK*00*AC",
            "BAK*00*AK"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:acknowledgmentContainsChanges",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "duplicate-item-in-one-document",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "FAILED",
    "changes": [
      {
        "stepId": "advanceShipNotice#1",
        "replacements": [
          [
            "LIN**VN*ITEM-B",
            "LIN**VN*ITEM-A"
          ]
        ]
      }
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "numeric-scale-and-item-order-do-not-matter",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "PASSED",
    "changes": [
      {
        "stepId": "invoice#1",
        "replacements": [
          [
            "IT1*1*10*EA*12.5**VN*ITEM-A~\nIT1*2*4*EA*25**VN*ITEM-B~",
            "IT1*2*4.0*EA*25.00**VN*ITEM-B~\nIT1*1*10.00*EA*12.500**VN*ITEM-A~"
          ]
        ]
      }
    ],
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "final-shipment-after-fulfillment-window",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 1300000,
    "expectedOutcome": "FAILED",
    "observedAfterSeconds": {
      "advanceShipNotice#2": 1296000,
      "invoice#2": 1299600
    },
    "expectedCheck": "transition:shipmentForOrder",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ]
  },
  {
    "id": "missing-remainder-after-fulfillment-window",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1"
    ],
    "evaluatedAfterSeconds": 1209601,
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:shipmentForOrder"
  },
  {
    "id": "complete-quantities-without-finality-stay-pending",
    "verifyAttachmentGuidance": true,
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1",
      "advanceShipNotice#2",
      "invoice#2"
    ],
    "evaluatedAfterSeconds": 522060,
    "expectedOutcome": "PENDING"
  },
  {
    "id": "explicit-early-close-does-not-forgive-backorder",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1"
    ],
    "evaluatedAfterSeconds": 90060,
    "expectedOutcome": "FAILED",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ],
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder"
  },
  {
    "id": "one-shipment-needs-no-upfront-count",
    "parameters": {},
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice#1",
      "invoice#1"
    ],
    "evaluatedAfterSeconds": 90060,
    "expectedOutcome": "PASSED",
    "closeSteps": [
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice#1",
        "replacements": [
          [
            "SN1**4*EA",
            "SN1**10*EA"
          ]
        ]
      },
      {
        "stepId": "invoice#1",
        "replacements": [
          [
            "IT1*2*4*EA",
            "IT1*2*10*EA"
          ],
          [
            "TDS*22500",
            "TDS*37500"
          ]
        ]
      }
    ]
  }
]
