{
  "test_id": "ORCL.HCM.ABS.WITHDRAW",
  "scenario_name": "Absence Withdrawal",
  "application": "Oracle Fusion Cloud",
  "product": "HCM",
  "module": "Absence Management",
  "process": "Absence Withdrawal",
  "business_flow": "Workforce Management",
  "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/hcm/absence-management/absence-withdrawal/",
  "objective": {
    "intro": "This test validates that Oracle Fusion Absence Management correctly processes the withdrawal or cancellation of an eligible absence request, confirming that the request status, approval history and worker balance are all updated correctly as a result.",
    "confirms": [
      "an eligible absence request can be withdrawn or cancelled by the worker or an authorized representative",
      "the absence status is correctly updated to reflect the withdrawal",
      "any balance consumed by the original request is correctly restored",
      "approval history for the original request remains intact and auditable after withdrawal",
      "downstream processes such as payroll or time, where applicable, correctly reflect the withdrawal",
      "withdrawal is correctly prevented for requests that are not eligible, already processed, or already withdrawn"
    ],
    "scope_note": "This scenario assumes an eligible absence request already exists, created through the Absence Entry scenario and potentially already approved through Absence Approval. It focuses specifically on the withdrawal or cancellation step and its downstream effect on status and balance; upstream request creation and approval are covered by separate test scenarios within the same Workforce Management business flow."
  },
  "preconditions": [
    "An eligible absence request already exists for the worker, created via Absence Entry and, where applicable, approved via Absence Approval.",
    "The absence request is in a status that permits withdrawal or cancellation under the customer's Oracle Fusion configuration.",
    "The absence effective dates have not yet been fully processed by payroll or time, where such processing would block withdrawal.",
    "The worker's absence balance reflects the amount consumed by the original request prior to withdrawal.",
    "The test user has the appropriate Absence Management role and access to withdraw the request, either as the worker or on the worker's behalf.",
    "Where a withdrawal reason is required by configuration, a valid reason value is available for entry."
  ],
  "test_data": [
    {
      "field": "Worker",
      "example": "${WORKER}"
    },
    {
      "field": "Absence Request",
      "example": "${ABSENCE_REQUEST}"
    },
    {
      "field": "Absence Type",
      "example": "${ABSENCE_TYPE}"
    },
    {
      "field": "Absence Status",
      "example": "${ABSENCE_STATUS}"
    },
    {
      "field": "Withdrawal Reason",
      "example": "${WITHDRAWAL_REASON}"
    },
    {
      "field": "Effective Date",
      "example": "${EFFECTIVE_DATE}"
    },
    {
      "field": "Balance Before",
      "example": "${BALANCE_BEFORE}"
    },
    {
      "field": "Balance After",
      "example": "${BALANCE_AFTER}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion HCM",
      "action": "Sign in to Oracle Fusion Cloud with a user account that has Absence Management access.",
      "test_data": "",
      "expected_result": "The Oracle Fusion Cloud home page loads successfully for the authenticated user.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to Absence Management",
      "action": "Navigate to the Absence Management area used to view and act on absence requests.",
      "test_data": "",
      "expected_result": "The Absence Management work area opens successfully.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Locate the Eligible Absence Request",
      "action": "Locate the worker's eligible absence request to be withdrawn or cancelled.",
      "test_data": "${WORKER} / ${ABSENCE_REQUEST} / ${ABSENCE_TYPE} / ${ABSENCE_STATUS}",
      "expected_result": "The absence request is found and is eligible for withdrawal in its current status.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Initiate Withdrawal",
      "action": "Initiate the withdrawal or cancellation action on the located absence request.",
      "test_data": "${EFFECTIVE_DATE}",
      "expected_result": "The withdrawal action opens successfully for the selected request.",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Provide a Withdrawal Reason",
      "action": "Enter a withdrawal reason where required by configuration.",
      "test_data": "${WITHDRAWAL_REASON}",
      "expected_result": "The withdrawal reason is accepted and recorded against the request.",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Submit the Withdrawal",
      "action": "Submit the withdrawal request for processing.",
      "test_data": "",
      "expected_result": "The withdrawal is submitted without unexpected errors.",
      "validation_type": "action"
    },
    {
      "step_number": 7,
      "step_name": "Verify Status Updated and Balance Restored",
      "action": "Verify that the absence status reflects the withdrawal and that the consumed balance has been restored.",
      "test_data": "${BALANCE_BEFORE} / ${BALANCE_AFTER}",
      "expected_result": "The absence status is Withdrawn/Cancelled and the worker's balance reflects the expected restoration.",
      "validation_type": "business_assertion",
      "note": "This is the central business assertion for this scenario. Illustrative example only, not a real balance figure: if ${BALANCE_BEFORE}=3 days consumed and the withdrawal is accepted, ${BALANCE_AFTER} is expected to reflect the restored balance for the worker. Test execution is designed to use ${PLACEHOLDER} tokens rather than real balance figures, and this page does not publish any customer-specific balance calculation as fact."
    }
  ],
  "expected_results": [
    "The eligible absence request is withdrawn or cancelled successfully.",
    "The absence status is correctly updated to reflect the withdrawal.",
    "The balance consumed by the original request is correctly restored.",
    "Approval history for the original request remains intact and auditable.",
    "Downstream processes such as payroll or time, where applicable, correctly reflect the withdrawal.",
    "Withdrawal is correctly prevented for requests that are not eligible for withdrawal."
  ],
  "validation_checkpoints": [
    "Status correctly updated to withdrawn/cancelled.",
    "Balance correctly restored.",
    "Approval history retained.",
    "Downstream impact updated where applicable (e.g. payroll/time).",
    "Absence remains auditable after withdrawal.",
    "No duplicate balance restoration on repeat withdrawal attempts."
  ]
}
