77 lines
3.7 KiB
Plaintext
77 lines
3.7 KiB
Plaintext
/* 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
|
|
}
|