// TARGET OBJECT : behavior definition ZC_CHANGEAPPROVAL (UI projection BDEF) - README step U9, UI leg // abap: URI : abap:/repotree-v1/0M7DEJI/System%20Library/ZLOCAL/ZARENA_PLM/Core%20Data%20Services/Behavior%20Definitions/ZC_CHANGEAPPROVAL/zc_changeapproval.bdef.json // ACTION : create via ADT MCP (objectType BDEF/BDO, implementationType Projection, README U9) once the view // ZC_CHANGEAPPROVAL is active, replace entire content, save, then activate (BDEF ZR_CHANGEAPPROVAL and // class ZBP_R_CHANGEAPPROVAL must be active). // No behavior pool is created for this projection: a projection BDEF needs one only when it defines // new actions/functions, and this one reuses everything // [source: abap-docs /abap-docs-cloud/ABENBDL_BDEF_PROJECTION_HEADER, verified 2026-09-15]. // Contract : approve / reject / retrySync are the bound-action names the Fiori app calls (exact case). // Sources (verified 2026-09-15): use action, use etag - no automatic inheritance - only what is listed is exposed, // which is how create/update/delete and the worker actions are kept out of the UI service (PRD RAP-2) // [abap-docs /abap-docs-cloud/ABENBDL_USE_PROJECTION]. Feature control of reused actions is passed on automatically (same source). // `use etag` is an entity behavior characteristic: it sits between `define behavior for ... alias ...` and `{`, // without a semicolon [source: abap-docs /abap-docs-cloud/ABENBDL_CHARACTER_PROJECTION and // /abap-docs-cloud/ABENBDL_DEFINE_BEH_PROJECTION, verified 2026-09-16]; it must be stated per entity or optimistic // concurrency control is lost [source: abap-docs /abap-docs-cloud/ABENBDL_USE_PROJECTION, verified 2026-09-16]. projection; strict ( 2 ); define behavior for ZC_CHANGEAPPROVAL alias ChangeApproval use etag { use action approve; use action reject; use action retrySync; }