{
  "test_id": "ORCL.HCM.OTL.TIMECARD.CORRECTION",
  "scenario_name": "Timecard Correction",
  "application": "Oracle Fusion Cloud",
  "product": "HCM",
  "module": "Time and Labor",
  "process": "Timecard Correction",
  "business_flow": "Time-to-Pay",
  "scenario_type": "Positive / Negative / Boundary / Security",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/hcm/time-and-labor/timecard-correction/",
  "objective": {
    "intro": "This test validates correction of submitted, approved and retroactive timecards in Oracle Fusion HCM Time and Labor, including corrections that occur before and after payroll processing, with correct re-approval and audit-trail behavior.",
    "confirms": [
      "a submitted timecard can be corrected for time type, hours, project or cost-center attribution with the corrected value recorded accurately",
      "an already-approved timecard can be corrected retroactively, including for a closed time period, and is applied against the correct historical period",
      "a correction requiring re-approval is correctly routed to the approver before the corrected value is finalized",
      "the original submitted value remains visible in the audit trail alongside every correction",
      "a correction that occurs after payroll processing is correctly flagged for retro-pay rather than silently ignored",
      "deliberately invalid, ineligible or unauthorized corrections are correctly rejected or blocked rather than silently accepted"
    ],
    "scope_note": "A negative or boundary Timecard Correction scenario passes when Oracle correctly enforces the expected rule; this test does not attempt to certify a specific Oracle application defect. Where a correction or validation appears unexpected or its cause is unclear, it is treated as requiring further investigation and supporting evidence rather than a confirmed conclusion. This page catalogs 18 individual Timecard Correction scenarios as a single comprehensive reference rather than as separate indexable pages."
  },
  "preconditions": [
    "Oracle Fusion Time and Labor access is available to the test user.",
    "A submitted or already-approved ${TIMECARD} for a representative ${WORKER} exists for ${TIME_PERIOD}.",
    "At least one ${TIME_PERIOD} in a closed status, and at least one with ${PAYROLL_STATUS} indicating payroll has already processed, are available for retroactive and post-payroll correction testing.",
    "A representative ${APPROVER} with authority to re-approve a corrected timecard is available.",
    "Valid ${PROJECT} and ${COST_CENTER} references, including at least one invalid or closed reference, are available for attribution-correction testing.",
    "A terminated worker's timecard is available or can be constructed for negative correction testing.",
    "A user without the required correction or approval authorization is available for security testing."
  ],
  "test_data": [
    {
      "field": "Worker",
      "example": "${WORKER}"
    },
    {
      "field": "Timecard",
      "example": "${TIMECARD}"
    },
    {
      "field": "Time Period",
      "example": "${TIME_PERIOD}"
    },
    {
      "field": "Correction Reason",
      "example": "${CORRECTION_REASON}"
    },
    {
      "field": "Approver",
      "example": "${APPROVER}"
    },
    {
      "field": "Project",
      "example": "${PROJECT}"
    },
    {
      "field": "Cost Center",
      "example": "${COST_CENTER}"
    },
    {
      "field": "Payroll Status",
      "example": "${PAYROLL_STATUS}"
    }
  ],
  "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 Time and Labor 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 Time and Labor",
      "action": "Navigate to the Time and Labor work area used to manage and correct timecards.",
      "test_data": "",
      "expected_result": "The Time and Labor work area opens successfully.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Locate the Timecard Requiring Correction",
      "action": "Locate the specific timecard for the selected worker and time period that requires correction, whether submitted, approved or retroactive.",
      "test_data": "${WORKER} / ${TIMECARD} / ${TIME_PERIOD}",
      "expected_result": "The correct timecard opens and is available for correction.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Identify the Field to Correct",
      "action": "Identify the specific field requiring correction — time type, hours, project, project task or cost-center attribution.",
      "test_data": "",
      "expected_result": "The field requiring correction is identified on the timecard.",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Enter the Corrected Value with a Reason",
      "action": "Enter the corrected value for the identified field, together with a documented correction reason.",
      "test_data": "${CORRECTION_REASON}",
      "expected_result": "The corrected value and correction reason are recorded on the timecard.",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Route for Re-Approval Where Required",
      "action": "Route the corrected timecard to the approver for re-approval where the correction requires it.",
      "test_data": "${APPROVER}",
      "expected_result": "The correction is correctly routed for re-approval where required, and correctly bypasses re-approval where it is not required.",
      "validation_type": "business_assertion",
      "note": "Correctly triggering or bypassing re-approval is a passing outcome; not every correction requires re-approval."
    },
    {
      "step_number": 7,
      "step_name": "Submit the Correction",
      "action": "Submit the corrected timecard for processing.",
      "test_data": "",
      "expected_result": "The correction is submitted successfully, or a deliberately invalid correction is rejected with the expected validation.",
      "validation_type": "action"
    },
    {
      "step_number": 8,
      "step_name": "Verify Correction Recorded with Complete Audit Trail",
      "action": "Confirm that the corrected value recorded accurately, the original value is preserved in the audit history, and payroll status is correctly reflected where the correction spans payroll processing.",
      "test_data": "${PAYROLL_STATUS}",
      "expected_result": "The correction is recorded accurately with a complete audit trail, and timecard status accurately reflects the corrected state.",
      "validation_type": "business_assertion",
      "note": "This is the main business assertion for the scenario across the full catalog of 18 Timecard Correction variations."
    }
  ],
  "expected_results": [
    "Corrected time type, hours, project and cost-center values recorded accurately against the intended timecard and time period.",
    "Original submitted values remain visible in the audit history alongside each correction.",
    "Corrections to already-approved timecards correctly route for re-approval where required.",
    "Corrections that occur after payroll processing are correctly flagged for retro-pay.",
    "Deliberately invalid corrections raise the expected data, eligibility or security validation rather than being silently accepted.",
    "Unauthorized correction attempts are correctly prevented."
  ],
  "validation_checkpoints": [
    "Corrected value recorded accurately and traceably.",
    "Original entry preserved in audit history.",
    "Re-approval correctly triggered where required.",
    "Corrections after payroll processing correctly flagged for retro-pay.",
    "Ineligible or unauthorized corrections correctly blocked.",
    "Timecard status accurately reflects the corrected state."
  ]
}
