SAP transaction codeObjectCJ40ModulePS

CJ40 — Change Original Budget for a Project

CJ40 is the transaction used to enter or change the original budget for a project or WBS element hierarchy. It shows a hierarchical overview where overall and annual values are distributed across WBS elements. The value entered here becomes the baseline that availability control compares postings against, separate from later supplements, returns, or transfers.

This page covers CJ40, the classic PS transaction for maintaining original budget on a project structure, including the hierarchical entry logic, the tables the save writes to, and the diagnostic order for the most common budgeting failures: profile mismatches, level restrictions, and confusion between original and current budget. It also covers what changes, and what does not, on S/4HANA.

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

Purpose

CJ40 opens a hierarchical display of a project's WBS structure and lets the user enter or overwrite the original budget, either as one overall value per WBS element or split into annual values by fiscal year, depending on the budget profile assigned to the project. The structural fact that drives most of the confusion around this transaction is that the figure entered here is the original budget only. It is not the current available budget. Once the project goes live, changes to that baseline are meant to flow through supplement, return, and transfer transactions, each of which adjusts a separate 'current budget' figure while leaving the original untouched. Consultants who use CJ40 to 'correct' a live budget lose that audit trail and confuse anyone reconciling original versus current values later.

When it is used

CJ40 is reached once the project structure exists and has been released (via CJ01/CJ02 or the project builder CJ20N) and cost planning is either done or deliberately skipped. It is the point where a controller or PS consultant loads the approved budget figure onto the structure before availability control is switched on, or at the start of a new fiscal year when annual values need to be entered for the new period. It is not used for planned costs (that is cost planning, a separate set of transactions) and not used for releasing budget for annual control (that is CJ41). On S/4HANA some organisations use a Fiori budgeting app for review and light editing, but CJ40 remains the transaction of choice whenever a full hierarchical mass entry or redistribution across many WBS elements is needed in one screen.

How to use it in practice

  • Enter the project definition or the top WBS element and execute, so the full hierarchy is loaded.
  • Review the budget profile driven layout: some profiles show only an overall column, others require annual columns per fiscal year.
  • Enter values at the WBS element level the budget profile permits; entering at the wrong level produces an error rather than silently rejecting the row.
  • Use the available functions to copy figures from cost planning, distribute a total across annual periods, or mark down/round values across the selected elements.
  • Save. The system runs the profile's consistency checks (overall equals sum of annual, top element equals sum of children where the profile enforces bottom-up or top-down control) before the values are committed.

Key data objects

  • PRPS - WBS element master data, holding the object number and the budget profile assignment that CJ40 reads to decide the entry layout and control level.
  • BPGE - budget totals per controlling object, version, and fiscal year; this is where the overall original budget value is written.
  • BPJA - budget annual values per controlling object, version, and fiscal year; populated when the budget profile requires year-split entry.
  • COBK - CO document header created for the budgeting posting when CJ40 is saved, giving the change a document number and user/date stamp for audit purposes.

How to prove it in the data

The safest first step is the display counterpart, CJ42, run against the same WBS element and fiscal year in dispute, because it reads the same tables through the standard logic and avoids version or currency misreads. To go behind that, pull the object number for the WBS element from PRPS, then filter BPGE and BPJA on that object number and version 0 (original budget version) for the fiscal year in question. Compare the total in BPGE against the sum of the annual rows in BPJA for the same object and version; a mismatch there, rather than in the transaction screen, points to a profile-level consistency check that was bypassed by a direct table update or an interface load.

ECC vs S/4HANA

CJ40 runs unchanged as a classic GUI transaction on S/4HANA and continues to write to the same underlying budgeting tables. SAP offers a Fiori app oriented toward reviewing and lightly editing project budget figures, which some organisations use for ad hoc changes, but it does not fully replace CJ40's hierarchical mass-entry and distribution functions, so most PS teams still use CJ40 for initial loads and large redistributions. There is no structural redesign of the budgeting data model to account for here.

Common pitfalls and how to diagnose them

  • Budget profile mismatch - if the project has no budget profile assigned, or the wrong one, CJ40 either refuses to open the entry screen or shows a layout that does not match what the requester expects (overall only when annual was expected, or vice versa). Check the profile on the project definition before assuming the transaction is broken.
  • Wrong control level - the budget profile fixes which WBS level accepts direct budget entry (top element only, or any level). Entering a value at a level the profile does not allow throws an error rather than saving silently; the fix is to enter at the permitted level and let distribution functions push values down, not to relax the profile as a workaround.
  • Original versus current budget confusion - using CJ40 to adjust a project that already has postings against it destroys the distinction between original budget and the supplements, returns, and transfers that should carry those changes. If the project already has a released budget, the correct entry point is a supplement or transfer transaction, not a re-entry in CJ40.
  • Stale availability control after a bulk change - saving new values in CJ40 does not automatically refresh a project's availability control totals if control was already active before the change; the tolerance check can still fire against the old cumulative figures until availability control is reactivated or reconstructed for the object.
  • Status-blocked projects - a WBS element in a closed or technically completed status will reject budget changes regardless of profile settings; check the project's system status in CJ02 before spending time on the budget profile.

Whose problem this is

This is a functional PS/CO problem, owned by the project controller or PS consultant responsible for the budget profile and the project's control settings. Basis involvement is limited to authorization objects for the transaction. ABAP is only pulled in if a customer validation, exit, or BAdI on the budget check is suspected. A good handover includes the WBS object number, fiscal year, budget profile name, and a screenshot or extract of the BPGE/BPJA figures alongside the expected value.

Related SAP objects

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

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