{
  "test_id": "ORCL.P2P.PROC.REQ.CANCEL",
  "scenario_name": "Cancel Requisition",
  "application": "Oracle Fusion Cloud",
  "product": "SCM / Procurement",
  "module": "Procurement",
  "process": "Requisitions",
  "business_flow": "Procure-to-Pay",
  "scenario_type": "Positive / Functional",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/scm/procurement/requisitions/cancel-requisition/",
  "objective": {
    "intro": "The objective of this test is to verify that an authorized Procurement user can cancel an eligible purchase requisition, or a specific line within it, in Oracle Fusion, and confirm the resulting status and downstream impact.",
    "confirms": [
      "the selected requisition or requisition line is eligible for cancellation",
      "a full requisition can be cancelled, and a single line can be cancelled independently on a multi-line requisition",
      "the cancellation reason is accepted and retained against the transaction",
      "the requisition or line status correctly updates to Cancelled",
      "a cancelled requisition or line is no longer available for downstream processing such as conversion to a purchase order",
      "the cancellation is retained in requisition history rather than removing the record"
    ],
    "scope_note": "This scenario does not claim that every downstream sourcing, budgetary control or purchase-order interaction is covered — those depend on the customer's specific Oracle Fusion configuration and are addressed by separate test scenarios."
  },
  "preconditions": [
    "Oracle Fusion Procurement Requisitions is configured and available to the test user.",
    "An existing requisition exists, with at least one line eligible for cancellation.",
    "The requisition or line has not already been cancelled.",
    "The requisition or line has not yet been converted to a purchase order, or cancellation is otherwise permitted at its current status.",
    "The test user has the appropriate security/privilege to cancel requisitions."
  ],
  "test_data": [
    {
      "field": "Requisition Number",
      "example": "${REQUISITION_NUMBER}"
    },
    {
      "field": "Line Number",
      "example": "${LINE_NUMBER}"
    },
    {
      "field": "Requisition/Line Status",
      "example": "Incomplete / Pending Approval / Approved — eligible for cancellation"
    },
    {
      "field": "Cancellation Scope",
      "example": "Full Requisition or Specific Line"
    },
    {
      "field": "Cancellation Reason",
      "example": "${CANCELLATION_REASON}"
    },
    {
      "field": "Requester",
      "example": "${REQUESTER}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion",
      "action": "Sign in to Oracle Fusion Cloud with a user that holds requisition cancellation privileges.",
      "test_data": "${REQUESTER}",
      "expected_result": "The user successfully signs in and lands on the Oracle Fusion home page.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to the Requisition",
      "action": "Navigate to the Requisitions work area and search for the target requisition.",
      "test_data": "${REQUISITION_NUMBER}",
      "expected_result": "The correct requisition is located and its current status is confirmed as eligible for cancellation.",
      "validation_type": "action",
      "note": "This single business step replaces multiple technical actions such as opening search, entering the requisition number, clicking Search and selecting the result."
    },
    {
      "step_number": 3,
      "step_name": "Select Cancel (Full Requisition or Specific Line)",
      "action": "Select the Cancel action for the full requisition, or for a specific line where only a line-level cancellation is required.",
      "test_data": "${LINE_NUMBER}",
      "expected_result": "The Cancel Requisition (or Cancel Line) page or dialog opens for the selected scope.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Enter Cancellation Reason",
      "action": "Enter the reason for cancelling the requisition or line.",
      "test_data": "${CANCELLATION_REASON}",
      "expected_result": "The cancellation reason is accepted without unexpected validation errors.",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Confirm Cancellation",
      "action": "Confirm and submit the cancellation.",
      "test_data": "",
      "expected_result": "Oracle Fusion successfully processes the cancellation request without unexpected errors.",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Verify Status Updated",
      "action": "Confirm the requisition's or line's status following the cancellation.",
      "test_data": "",
      "expected_result": "Requisition or line status updates to Cancelled, with the cancellation reason correctly recorded.",
      "validation_type": "business_assertion"
    },
    {
      "step_number": 7,
      "step_name": "Verify Requisition/Line Unavailable for Downstream Processing",
      "action": "Confirm that the cancelled requisition or line can no longer be actioned for downstream processing, such as conversion to a purchase order, while remaining visible in requisition history.",
      "test_data": "${REQUISITION_NUMBER}",
      "expected_result": "The cancelled requisition or line is correctly excluded from further downstream processing and remains traceable in history rather than being removed.",
      "validation_type": "business_assertion",
      "note": "This is the main business assertion for the scenario — a requisition cancellation must be enforced downstream and must not silently remove requisition history."
    }
  ],
  "expected_results": [
    "An eligible requisition or requisition line cancels successfully.",
    "Requisition or line status updates correctly to Cancelled.",
    "Cancellation reason is correctly recorded.",
    "A cancelled full requisition and a cancelled single line both behave correctly and independently of other lines.",
    "The cancelled requisition or line is unavailable for downstream processing such as conversion to a purchase order.",
    "The cancellation remains traceable in requisition history.",
    "No unexpected save errors occur.",
    "The cancelled requisition or line does not silently disappear from history or reporting."
  ],
  "validation_checkpoints": [
    "Requisition or line status becomes Cancelled.",
    "Cancelled line/requisition is unavailable for downstream processing.",
    "Cancellation is retained in requisition history."
  ]
}
