upload current sources
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
// TARGET OBJECT : behavior definition ZZR_CHANGEAPPROVAL000 (base BDEF, managed; generated 2026-09-15)
|
||||
// abap: URI : abap:/repotree-v1/0M7DEJI/System%20Library/ZLOCAL/ZARENA_PLM/Core%20Data%20Services/Behavior%20Definitions/ZZR_CHANGEAPPROVAL000/zzr_changeapproval000.bdef.json
|
||||
// ACTION : replace entire content, then activate (after the three ZD_* abstract entities and ZZR_CHANGEAPPROVAL000).
|
||||
// Sources (all verified 2026-09-15):
|
||||
// action syntax incl. ( features : instance ), parameter, result [1] $self
|
||||
// [abap-docs /abap-docs-cloud/ABENBDL_ACTION, ABENBDL_ACTIONS_FC, ABENBDL_ACTION_INPUT_PARAM, ABENBDL_ACTION2_ABEXA]
|
||||
// internal operations (usable only from the behavior pool) [abap-docs /abap-docs-cloud/ABENBDL_INTERNAL]
|
||||
// field ( readonly, numbering : managed ) for a UUID key [abap-docs /abap-docs-cloud/ABENBDL_FIELD_NUMBERING; /abap-fiori-showcase/01_general_features#readonly]
|
||||
// field ( readonly : update, mandatory : create ) combination [abap-docs /abap-fiori-showcase/06_object_page_content (StreamIsReadOnly)]
|
||||
// determination on modify { create; } sets the initial status [abap-docs /abap-docs-cloud/ABENBDL_DETERMINATIONS (setStatustoNew)]
|
||||
// readonly fields written by determinations/actions IN LOCAL MODE [same source: field ( readonly ) AmountSum + TotalPrice determination]
|
||||
// etag master [abap-docs /abap-docs-cloud/ABENBDL_ETAG]; explicit mapping because CDS aliases differ from table fields [abap-docs /abap-docs-cloud/ABENBDL_TYPE_MAPPING]
|
||||
// authorization master ( none ): "no authorization checks for the entire RAP BO" - access is governed exclusively by the
|
||||
// IAM app / business catalog (ADR-002, ARN-007) and read access by DCL [abap-docs /abap-docs-cloud/ABENBDL_AUTHORIZATION]
|
||||
// Open point (falsifiable at activation): StatusText/StatusCriticality/IsApprovable/IsRetriable are CDS-calculated and
|
||||
// deliberately absent from the mapping. ABENBDL_TYPE_MAPPING only requires a mapping where table and entity field
|
||||
// NAMES differ; it is silent on calculated elements. If activation reports an error (not a warning) for the unmapped
|
||||
// elements, fall back to persisting them (add the four columns to the table + mapping) and maintain them in the actions.
|
||||
managed implementation in class zzbp_r_changeapproval000 unique;
|
||||
strict ( 2 );
|
||||
|
||||
define behavior for ZZR_CHANGEAPPROVAL000 alias ChangeApproval
|
||||
persistent table zzchngpproval000
|
||||
lock master
|
||||
authorization master ( none )
|
||||
etag master LocalLastChangedAt
|
||||
{
|
||||
create;
|
||||
internal update;
|
||||
|
||||
field ( readonly, numbering : managed ) ID;
|
||||
field ( readonly : update, mandatory : create ) ItemNumber, ChangeType, ArenaEcoId;
|
||||
field ( mandatory : create ) SapPreview;
|
||||
field ( readonly ) Status, StatusText, StatusCriticality, IsApprovable, IsRetriable,
|
||||
RequestedBy, RequestedOn, DecidedBy, DecidedOn,
|
||||
SapChangeNumber, ErrorMessage, RejectReason,
|
||||
CreatedBy, CreatedAt, LastChangedBy, LastChangedAt, LocalLastChangedAt;
|
||||
|
||||
// Business-user actions (UI projection): PENDING -> APPROVED | REJECTED, FAILED -> EXECUTING (PRD RAP-1/RAP-2)
|
||||
action ( features : instance ) approve result [1] $self;
|
||||
action ( features : instance ) reject parameter ZD_CHANGEAPPROVAL_REJECTP result [1] $self;
|
||||
action ( features : instance ) retrySync result [1] $self;
|
||||
|
||||
// Worker actions (A2X projection): APPROVED -> EXECUTING -> SYNCED | FAILED (PRD RAP-6)
|
||||
action ( features : instance ) markExecuting result [1] $self;
|
||||
action ( features : instance ) markSynced parameter ZD_CHANGEAPPROVAL_SYNCEDP result [1] $self;
|
||||
action ( features : instance ) markFailed parameter ZD_CHANGEAPPROVAL_FAILEDP result [1] $self;
|
||||
|
||||
determination setInitialStatus on modify { create; }
|
||||
|
||||
mapping for zzchngpproval000
|
||||
{
|
||||
ID = id;
|
||||
ItemNumber = item_number;
|
||||
ItemName = item_name;
|
||||
ChangeType = change_type;
|
||||
ArenaEcoId = arena_eco_id;
|
||||
Status = status;
|
||||
RequestedBy = requested_by;
|
||||
RequestedOn = requested_on;
|
||||
DecidedBy = decided_by;
|
||||
DecidedOn = decided_on;
|
||||
SapChangeNumber = sap_change_number;
|
||||
ErrorMessage = error_message;
|
||||
RejectReason = reject_reason;
|
||||
SapPreview = sap_preview;
|
||||
CreatedBy = created_by;
|
||||
CreatedAt = created_at;
|
||||
LastChangedBy = last_changed_by;
|
||||
LastChangedAt = last_changed_at;
|
||||
LocalLastChangedAt = local_last_changed_at;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user