BAPI_BUS2054_CREATE_MULTI — Create Multiple Network Activity Confirmations
BAPI_BUS2054_CREATE_MULTI posts confirmations against network activities and activity elements in Project System, mirroring the transactions used for time and progress confirmation such as CN25 and CNW1. It creates one or several confirmation records in a single call and is the standard interface point for bringing external progress data, actual work, and dates into a network without touching the dynpro screens.
This page covers what BAPI_BUS2054_CREATE_MULTI does inside Project System confirmation processing, the parameters an interface actually depends on, and the recurring failure pattern where the call reports success while nothing is posted. It focuses on how to read the RETURN table correctly in a multi-line BAPI and where responsibility splits between functional PS configuration and interface development.
Published 16 Sept 2026· 1,090 words
What it does
BUS2054 is the business object type behind confirmation of network activities and activity elements in Project System. BAPI_BUS2054_CREATE_MULTI creates one or more confirmations for these activities in a single function module call, posting actual start and finish dates, actual work, forecast values, and the final confirmation indicator in the same way the confirmation transactions do, without opening the screen sequence a user would step through in CN25, CN27, or CNW1. It is the usual point of integration when progress or time is captured outside SAP, for example in a scheduling tool, a mobile time capture app, or an interface from a subcontractor system, and that data has to be reflected against the network as an actual confirmation rather than a plan change.
Important parameters
The interface follows the same shape as other CREATE_MULTI confirmation BAPIs in this family. The following are the ones an interface reliably depends on; exact field-level structure detail should be checked in the interface itself before building against it.
- CONFIRMATIONS - the table of confirmation records to post, one line per activity or activity element being confirmed, carrying the network and activity number, confirmation type, actual dates, actual work, percentage complete, and the final confirmation flag
- TESTRUN - flag to run the BAPI in simulation mode; when set, the checks run and RETURN is populated but nothing is written to the database, useful for validating an interface payload before it goes live
- RETURN - the standard messages table returned for the whole call, carrying success, warning, and error messages that must be evaluated line by line rather than treated as a single pass/fail signal
Commit behaviour
Like the rest of this BAPI family, it does not commit the database on its own. A successful call builds the confirmation entries in the update buffer and returns success messages in RETURN, but nothing is durable until the caller explicitly commits the work, typically through BAPI_TRANSACTION_COMMIT. When an interface forgets this step, the symptom is confusing rather than obviously broken: the call returns clean, RETURN shows the confirmation number as created, the interface log records success, and then the confirmed activity simply never appears when the network is displayed. Because the failure is silent at the BAPI layer, this gets diagnosed as a PS configuration problem far more often than it should, when the actual cause is a missing commit in the calling program.
Return handling
RETURN is a BAPIRET2 table, not a single flag, and this is the section of the interface almost every project gets wrong at least once. Because the call is a CREATE_MULTI, RETURN can hold messages belonging to several confirmation lines in the same call, and a partial result is normal: three activities confirm cleanly while a fourth fails on a locked period or a control key that does not allow confirmation, and all four sets of messages land in the same table. Reading RETURN as empty-versus-not-empty, or checking only the function call's return code, misses this entirely, since the call itself completes without a hard failure even when individual confirmation lines were rejected. The correct pattern loops through RETURN, filters on message type E and A, and correlates each error back to its source line using whatever index or activity reference the message carries, so the interface can retry or flag only the confirmations that actually failed instead of either silently dropping errors or blindly retrying successful lines and creating duplicates.
ECC vs S/4HANA
Confirmation processing in Project System has not been re-architected in S/4HANA the way some other PS areas have, and this BAPI remains the standard way to post network activity confirmations from outside the transaction screens. There is no dedicated released public API superseding it for bulk network confirmation specifically, so existing interfaces built on it generally continue to work unchanged on S/4HANA. Newer time-capture Fiori apps exist for related scenarios, but they sit alongside classic confirmation posting rather than replacing this BAPI for system-to-system integration.
Common pitfalls
Most production incidents around this BAPI trace back to configuration state on the activity rather than the interface code itself, but the interface is usually blamed first because the failure surfaces there.
- Interface retries a call after a timeout without checking whether the first attempt actually committed, producing duplicate confirmations for the same activity and inflated actual work
- Activity has not been released in the network, or its control key does not permit confirmation, producing an error that the interface swallows because RETURN was checked as a whole rather than line by line
- Posting period for the confirmation date is closed, which fails cleanly in TESTRUN mode but is only caught in production if the interface actually calls TESTRUN first, which most do not
- Final confirmation flag omitted on the last progress update, leaving the activity showing as not fully confirmed in the network overview even though one hundred percent of work has been posted
- Reversal or cancellation of an existing confirmation is not handled by this BAPI at all and needs a separate cancellation call, which interfaces built quickly sometimes assume is the same object with a different flag
Whose problem this is
A confirmation that fails at the activity level, such as a control key or release status problem, is a PS configuration and master data issue and belongs with the functional consultant. A confirmation that reports success in RETURN but never appears on the network is almost always a missing commit or a mishandled multi-line RETURN, and that is a development problem regardless of how it presents to the business user.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-bapis/bapi-bus2054-create-multiERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.