/* TARGET OBJECT : data definition ZZR_CHANGEAPPROVAL000 (root view entity, generated 2026-09-15) abap: URI : abap:/repotree-v1/0M7DEJI/System%20Library/ZLOCAL/ZARENA_PLM/Core%20Data%20Services/Data%20Definitions/ZZR_CHANGEAPPROVAL000/zzr_changeapproval000.ddls.acds ACTION : replace entire content, then activate (table ZZCHNGPPROVAL000 must be active first). Notes: StatusText / StatusCriticality / IsApprovable / IsRetriable are derived from Status with CASE expressions here, because a transactional_query projection list may only contain elements of the projected entity, path expressions, associations and virtual elements - no expressions [source: abap-docs /abap-docs-cloud/ABENCDS_DEFINE_VIEW_AS_PROJECTION, verified 2026-09-15]. CASE syntax [source: abap-docs /abap-docs-cloud/ABENCDS_CASE_EXPRESSION_V2, verified 2026-09-15]; cast of a literal to a data element (abap_boolean, released) [source: abap-docs /abap-docs-cloud/ABENCDS_CAST_EXPRESSION_V2, verified 2026-09-15]. @ObjectModel.text.element [source: abap-docs /abap-fiori-showcase/06_object_page_content#displaying-text-instead-of-id, verified 2026-09-15]. @Semantics admin-field annotations [source: abap-docs /abap-platform-rap-opensap/week2/unit3#step-1-create-the-interface-cds-view-for-the-travel-entity, verified 2026-09-15]. Criticality values 2/2/5/3/1/1 per PRD RAP-1. */ @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'Arena change approval' define root view entity ZZR_CHANGEAPPROVAL000 as select from zzchngpproval000 { key id as ID, item_number as ItemNumber, item_name as ItemName, change_type as ChangeType, arena_eco_id as ArenaEcoId, @ObjectModel.text.element: ['StatusText'] status as Status, case status when 'PENDING' then 'Pending approval' when 'APPROVED' then 'Approved - awaiting execution' when 'EXECUTING' then 'Executing in SAP' when 'SYNCED' then 'Synced to SAP' when 'REJECTED' then 'Rejected' when 'FAILED' then 'Execution failed' else status end as StatusText, case status when 'PENDING' then 2 when 'APPROVED' then 2 when 'EXECUTING' then 5 when 'SYNCED' then 3 when 'REJECTED' then 1 when 'FAILED' then 1 else 0 end as StatusCriticality, requested_by as RequestedBy, requested_on as RequestedOn, decided_by as DecidedBy, decided_on as DecidedOn, sap_change_number as SapChangeNumber, error_message as ErrorMessage, reject_reason as RejectReason, sap_preview as SapPreview, case status when 'PENDING' then cast( 'X' as abap_boolean ) else cast( ' ' as abap_boolean ) end as IsApprovable, case status when 'FAILED' then cast( 'X' as abap_boolean ) else cast( ' ' as abap_boolean ) end as IsRetriable, @Semantics.user.createdBy: true created_by as CreatedBy, @Semantics.systemDateTime.createdAt: true created_at as CreatedAt, @Semantics.user.lastChangedBy: true last_changed_by as LastChangedBy, @Semantics.systemDateTime.lastChangedAt: true last_changed_at as LastChangedAt, @Semantics.systemDateTime.localInstanceLastChangedAt: true local_last_changed_at as LocalLastChangedAt }