SAP transaction codeObjectCOR2ModulePP_M2D

COR2 — Change Process Order

COR2 is the transaction to change an existing process order in PP-PI: dates, quantities, components, phases, and status. The structural fact that causes most confusion is that header, component list, and phase data live in separate structures with independent status checks, so a change allowed on one tab can be silently blocked or left inconsistent on another once the order has moved past creation status.

This page covers COR2, the change transaction for process orders in process manufacturing (PP-PI). It focuses on what actually breaks when changing a live order mid-process: status locks, costing and scheduling inconsistencies, component quantities already consumed, and control recipes that have already left the order. It also gives the SE16 recipe to prove a change or a lock against the order tables.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,189 words

Purpose

COR2 opens an existing process order for change. It is the process-industry counterpart to CO02 for discrete production orders, sharing much of the same underlying order object model but built around phases and PI sheets rather than operations and routing confirmations. A process order carries a header (dates, order quantity, status), a material list (components with reservations), and phase data (control recipe destinations, resource assignments). All three are edited from the same transaction but governed by separate status objects. The one fact that explains most confusion: passing status checks on the header does not mean the component or phase data is still editable, and vice versa. Partial goods movements, partial confirmations, or a control recipe already sent to a process control system each lock a different part of the order independently.

When it is used

COR2 is reached for during execution, after the order has been created (COR1) and usually released, when something on the shop floor floor diverges from the plan: a batch size correction, a date shift because upstream material is late, a component substitution, adding a phase, or setting a status like technically complete. It is not used for mass changes across many orders, where a background job, BAPI-driven interface, or a mass processing transaction is the right tool, and it is not used just to look at an order, where COR3 is enough and avoids accidentally locking the order. COOIS is typically used first to find the order number by material, plant, or status before jumping into COR2.

How to use it in practice

  • Enter the process order number directly, or use the matchcode search by material and plant if the number is unknown
  • Review the header screen first and note the system status and user status before touching anything
  • Move through the relevant tabs: header (dates, quantities), assignment, components, and phases, making only the change actually needed
  • For a quantity or date change, check whether rescheduling of phases is required and trigger it explicitly rather than assuming the system did it automatically
  • Use the check function before saving to surface status or consistency errors early
  • Save; this can trigger a material availability re-check, a recosting flag, and in PI environments, a control recipe update

Key data objects

  • AFKO - order header: order type, basic dates, order quantity, status object number
  • AFPO - order item: material, batch, plant, storage location, item quantity
  • AFVC - operation and phase data shared across order types, linked to the header via the routing pointer fields
  • RESB - component reservations generated from the material list, quantity and movement status
  • JEST / JSTO - status management, holding the active system and user statuses tied to the order's object number

How to prove it in the data

Pull AFKO by AUFNR to compare the order quantity and dates currently stored against what the user reports seeing on screen. Build the object number as the order type prefix concatenated with the padded order number and check JEST for that object number to see every active status code, which explains most 'field is not changeable' complaints. Cross-check RESB by AUFNR to see whether component quantities have already moved (movement indicator) before assuming a quantity change is safe. Compare AFPO item quantity against RESB reservation quantity to spot a mismatch left by an incomplete change.

ECC vs S/4HANA

COR1, COR2, and COR3 remain the standard GUI transactions for process orders on S/4HANA; there is no wholesale replacement of the change transaction itself. Some newer monitoring and overview Fiori apps exist for process order visibility and status tracking, but the detailed change of components, phases, and dates is still typically done through COR2 rather than a Fiori edit screen. Treat any Fiori app name here as something to verify against the actual system rather than assumed.

Common pitfalls and how to diagnose them

  • Status lock: the order has already been released, confirmed, or settled, and the system rejects a date or quantity change with a status-related error. Check JEST first; do not look for a workaround to force the field open, because the lock usually reflects real downstream postings that a bypassed change would contradict.
  • Costing left stale: components or quantities are changed but the order is not recosted afterward. Planned cost and actual cost then diverge silently, only surfacing later as a variance nobody can explain. Check whether a recosting run happened after the change, using the order's costing status.
  • Scheduling drift: basic dates are changed on the header but the phases are not rescheduled, so phase dates fall outside the new order window. The system does not always block this cleanly; verify the phase dates tab directly rather than trusting the header dates alone.
  • Quantity change after goods issue: the order quantity is reduced or increased after components have already been withdrawn against the old reservation. RESB still reflects the old movement; the component list needs manual reconciliation, not just a header edit.
  • Control recipe already sent: in PI environments where a control recipe has been downloaded to a process control system, changing a phase in COR2 after that point does not update the shop floor. The order and the physical execution are now out of sync and this has to be resolved procedurally, not by editing the order again.
  • Incomplete save: a user tabs through screens and saves without triggering the check function on each tab, leaving a change registered on one structure but not propagated. Always run the check before save and read every warning, not just errors.

Whose problem this is

This is a PP-PI functional problem in the overwhelming majority of cases: status configuration, costing variant setup, or scheduling parameters. ABAP involvement is only needed if a custom user exit or BAdI is blocking a specific field. A good handover includes the order number, its current system and user statuses, the exact field the user tried to change, the error or warning text verbatim, and whether any goods movement, confirmation, or settlement has already posted against the order.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tcodes/cor2ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.