/* TARGET OBJECT : database table ZCHANGEAPPROVAL (persistence of the approval BO) - README step U1, UI leg abap: URI : abap:/repotree-v1/0M7DEJI/System%20Library/ZLOCAL/ZARENA_PLM/Dictionary/Database%20Tables/ZCHANGEAPPROVAL/zchangeapproval.tabl.ddic (returned by create_object 2026-09-16; activation extension pending live proof - README activation table) ACTION : create empty via ADT MCP (objectType TABL/DT, README U1), then paste into the .tabl.ddic file, NEVER the .tabl.json file: in the VS Code ADT workspace zchangeapproval.tabl.json holds only header metadata (formatVersion, description, originalLanguage, abapLanguageVersion) - live observation 2026-09-16. Replace entire content of the .tabl.ddic file, save, then activate. A DDIC database table is edited as Dictionary DDL source code generated from, and saved back into, the table metadata [source: abap-docs /abap-docs-cloud/ABENDDIC_DEFINE_TABLE, verified 2026-09-16]. Name : 15 characters; TABL/DT allows 16 [source: adt-mcp abap_creation-get_object_type_details on 0M7DEJI, verified 2026-09-16]. Notes: sap_preview is abap.string(0) (RAP-7; char is capped at 1333 for table fields [source: abap-docs /abap-docs-cloud/ABENDDIC_BUILTIN_TYPES, verified 2026-09-15]; abap.string(0) table-field syntax [source: abap-docs /abap-docs-cloud/ABENDDICDDL_DEFINE_TABLE_COMPS, verified 2026-09-15]). Timestamps are abap.utclong (UTCLONG built-in type, same source). Admin fields use the released ABP_* data elements and SYSUUID_X16 [source: sap-released-objects public_cloud level A, verified 2026-09-16]. */ @EndUserText.label : 'Arena change approval (staging + state machine)' @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table zchangeapproval { key client : abap.clnt not null; key id : sysuuid_x16 not null; item_number : abap.char(18); item_name : abap.char(40); change_type : abap.char(15); arena_eco_id : abap.char(20); status : abap.char(10); requested_by : abap.char(12); requested_on : abap.utclong; decided_by : abap.char(12); decided_on : abap.utclong; sap_change_number : abap.char(12); error_message : abap.char(255); reject_reason : abap.char(255); sap_preview : abap.string(0); created_by : abp_creation_user; created_at : abp_creation_tstmpl; last_changed_by : abp_lastchange_user; last_changed_at : abp_lastchange_tstmpl; local_last_changed_at : abp_locinst_lastchange_tstmpl; }