{
  "test_id": "ORCL.O2C.OM.CHG.HOLD.RELEASE",
  "scenario_name": "Release Order Hold",
  "application": "Oracle Fusion Cloud",
  "product": "SCM / Order Management",
  "module": "Order Management",
  "process": "Order Changes",
  "business_flow": "Order-to-Cash",
  "scenario_type": "Functional / Exception Handling",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/scm/order-management/order-changes/release-order-hold/",
  "objective": {
    "intro": "The objective of this test is to validate release of a previously applied hold on a sales order or order line in Oracle Fusion SCM Order Management, confirming that the order or line correctly resumes normal fulfillment processing, and that exception conditions across the wider Order Changes and Holds lifecycle — quantity, date, ship-to, cancel and hold apply/release conflicts — are handled correctly.",
    "confirms": [
      "the targeted hold is correctly identified and released with an appropriate reason",
      "the order or line resumes normal processing only when every active hold on it has been released, not merely the one just released",
      "other change types — quantity, date, ship-to and cancellation — remain correctly blocked while any hold is still active",
      "a release attempted without authority, without a required reason, on a nonexistent hold or on an already-released hold is correctly rejected or flagged",
      "release history and audit detail are correctly recorded for the hold",
      "no partial or inconsistent order state results from a downstream change attempt that Oracle correctly blocks"
    ],
    "scope_note": "This scenario assumes a hold already exists on the order or line, typically established using the Apply Order Hold scenario in the same cluster. It is the closing scenario of the Order Changes and Holds cluster and does not itself apply a new hold. Exact release authority, required fields and blocking behavior depend on hold-type configuration and customer-specific Oracle Fusion setup."
  },
  "preconditions": [
    "An active hold exists on the sales order or order line, typically established using the Apply Order Hold scenario.",
    "The releasing test user has appropriate authority for the specific hold type being released.",
    "Where the scenario tests a multi-hold condition, a second, unrelated hold type is configured and can be independently applied and released.",
    "A downstream change action — quantity, date, ship-to or cancellation — is available to attempt against the order for blocking-behavior verification.",
    "Oracle Fusion Order Management access is available to the test user for both the release action and any downstream change attempts."
  ],
  "test_data": [
    {
      "field": "Order Number",
      "example": "${ORDER_NUMBER}"
    },
    {
      "field": "Order Line",
      "example": "${ORDER_LINE}"
    },
    {
      "field": "Item",
      "example": "${ITEM}"
    },
    {
      "field": "Hold Type",
      "example": "${HOLD_TYPE}"
    },
    {
      "field": "Hold Applied Date",
      "example": "${HOLD_APPLIED_DATE}"
    },
    {
      "field": "Release Reason",
      "example": "${RELEASE_REASON}"
    },
    {
      "field": "Released By",
      "example": "${RELEASED_BY}"
    },
    {
      "field": "Other Active Hold Type",
      "example": "${OTHER_ACTIVE_HOLD_TYPE}"
    },
    {
      "field": "Order Status",
      "example": "${ORDER_STATUS}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion",
      "action": "Sign in to Oracle Fusion using an authorised test user with release authority for the hold type under test.",
      "test_data": "",
      "expected_result": "Oracle Fusion opens successfully for the test user.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to Order Management",
      "action": "Navigate to the Order Management work area.",
      "test_data": "",
      "expected_result": "The Order Management work area opens successfully.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Locate the Order With the Active Hold",
      "action": "Search for and open the sales order or order line carrying the active hold.",
      "test_data": "${ORDER_NUMBER} / ${ORDER_LINE}",
      "expected_result": "The order opens and the active hold is visible on the order or line.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Select the Hold to Release",
      "action": "Select the specific hold to be released from the holds available on the order.",
      "test_data": "${HOLD_TYPE}",
      "expected_result": "The correct hold is selected and its release action is available to the test user.",
      "validation_type": "action",
      "note": "This single business step replaces multiple technical actions such as opening the holds panel and identifying the correct hold record."
    },
    {
      "step_number": 5,
      "step_name": "Provide a Release Reason",
      "action": "Enter the reason for releasing the hold.",
      "test_data": "${RELEASE_REASON} / ${RELEASED_BY}",
      "expected_result": "The release reason is accepted where required, or the omission is correctly flagged where the reason is mandatory for this hold type.",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Submit the Release",
      "action": "Submit the hold release for processing.",
      "test_data": "",
      "expected_result": "The release is accepted and the hold is marked as released, or an appropriate exception is raised for an unauthorized, duplicate, missing-reason or nonexistent-hold condition.",
      "validation_type": "action"
    },
    {
      "step_number": 7,
      "step_name": "Verify Order Status if Other Holds Remain Active",
      "action": "Check whether any other, unrelated hold remains active on the order after this release.",
      "test_data": "${OTHER_ACTIVE_HOLD_TYPE} / ${ORDER_STATUS}",
      "expected_result": "Where a second hold remains active, the order status correctly continues to reflect a held state rather than a fully released one.",
      "validation_type": "action",
      "note": "Covers the release of one hold type while another remains active on the same order."
    },
    {
      "step_number": 8,
      "step_name": "Attempt a Downstream Change to Confirm Blocking Behavior",
      "action": "Attempt a quantity, date, ship-to or cancellation change against the order while any hold remains active.",
      "test_data": "${ITEM}",
      "expected_result": "The downstream change is correctly blocked with an appropriate message referencing the active hold, and no partial or inconsistent order state results.",
      "validation_type": "business_assertion",
      "note": "This step cross-references the quantity, date, ship-to and cancel scenarios elsewhere in the Order Changes cluster — a correctly blocked change here is a passing result, not a failure."
    },
    {
      "step_number": 9,
      "step_name": "Confirm Normal Processing Resumes Only After All Holds Are Cleared",
      "action": "Release any remaining holds and confirm the order or line resumes normal fulfillment processing.",
      "test_data": "",
      "expected_result": "The order or line resumes normal processing only once every active hold has been released, and release history is correctly recorded.",
      "validation_type": "business_assertion",
      "note": "This is the primary business assertion for the scenario — normal processing resuming only after the last active hold is cleared is the expected pass condition, not the release of any single hold in isolation."
    }
  ],
  "expected_results": [
    "The targeted hold is correctly marked as released with the recorded reason and releasing user.",
    "The order or line resumes normal fulfillment processing only once every active hold has been released.",
    "A second, unrelated hold remaining active correctly keeps the order in a held state.",
    "Quantity, date, ship-to and cancellation changes remain correctly blocked while any hold is active.",
    "Release history and audit detail are captured for later review.",
    "Unauthorized, duplicate, missing-reason or nonexistent-hold release attempts are correctly rejected or flagged."
  ],
  "validation_checkpoints": [
    "Hold correctly marked released.",
    "Order/line resumes normal processing only when ALL active holds are released.",
    "Other change types — quantity, date, ship-to, cancel — remain correctly blocked while any hold is active.",
    "Release history / audit trail recorded.",
    "No partial or inconsistent order state results from a blocked change attempt."
  ]
}
