Sync current sources: clean RAP handover names, app rebind, tooling

Working-tree state as of 2026-09-29, uncommitted since the initial
"upload current sources" commit:

- docs/handover/rap/: renamed the 11 generator-suffixed sources
  (zz*000) to the clean object names built on the tenant, plus the
  A2X leg and parameter-entity edits.
- app/: manifest, annotations, i18n, mock data and local/mock ui5
  configs updated to the live service shape.
- PRD.md, CHANGELOG.md, KNOWLEDGE.md: build record through
  2026-09-19, including the rejected reentrance-ticket path.
- tools/adt-reentrance-login/: retained login helper (new).
- docs/v2/zui_arena_change_appr_o4.metadata.xml: captured live
  $metadata (new).
- Dropped a stray 0.3GB-class Eclipse installer that the initial
  commit had tracked under a URL-mangled filename, and the
  machine-specific 0M7DEJI.code-workspace.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 10:22:52 -07:00
co-authored by Claude Opus 5
parent f8b45ea4a5
commit 468729eb4e
42 changed files with 4597 additions and 1680 deletions
+43 -35
View File
@@ -1,12 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Local UI annotations for the Arena PLM change-approval Fiori Elements app.
Service identity (binding, service definition, version, namespace) is defined ONCE in
webapp/localService/mainService/metadata.xml - keep this file's edmx:Reference, every
Annotations Target and every DataFieldForAction.Action in sync with it.
Provisional - namespace = binding name is strongly indicated, not proven; reconcile namespace,
entity type suffix and URL segments against the live $metadata of the RAP UI service binding
at PRD V-2 before deploy.
Service identity is the live $metadata of RAP UI binding ZUI_ARENA_CHANGE_APPR_O4 (PRD V-2, reconciled
2026-09-16): webapp/localService/mainService/metadata.xml is a byte-identical copy of
docs/v2/zui_arena_change_appr_o4.metadata.xml. URL /sap/opu/odata4/sap/zui_arena_change_appr_o4/srvd/sap/
zui_arena_change_approval/0001/ (first segment = binding), schema namespace
com.sap.gateway.srvd.zui_arena_change_approval.v0001 (from the service DEFINITION), entity type
ChangeApprovalType. Keep this file's edmx:Reference, every Annotations Target and every
DataFieldForAction.Action in sync with it.
Layering: the backend (metadata extension ZC_CHANGEAPPROVAL) already emits most UI annotations. An
annotation in this file replaces the backend annotation with the same term + qualifier on the same
target; deleting it here makes the backend one effective again
[source: fiori-mcp-server "Visualizing and Managing Annotations with SAP Fiori Tools - Service Modeler",
verified 2026-09-16].
-->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
@@ -15,8 +21,8 @@
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
<edmx:Include Namespace="com.sap.vocabularies.Common.v1" Alias="Common"/>
</edmx:Reference>
<edmx:Reference Uri="/sap/opu/odata4/sap/zui_arena_change_approval_o4/srvd/sap/zui_arena_change_approval/0001/$metadata">
<edmx:Include Namespace="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001"/>
<edmx:Reference Uri="/sap/opu/odata4/sap/zui_arena_change_appr_o4/srvd/sap/zui_arena_change_approval/0001/$metadata">
<edmx:Include Namespace="com.sap.gateway.srvd.zui_arena_change_approval.v0001"/>
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="local">
@@ -29,92 +35,92 @@
"Enabling Table Personalization in SAP Fiori Elements (OData V2 & V4)";
"Filter Fields - Add, Configure, Move, Delete...", verified 2026-09-14]
============================================================================ -->
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ID">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ID">
<Annotation Term="Common.Label" String="{@i18n>FIELD_ID}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ItemNumber">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ItemNumber">
<Annotation Term="Common.Label" String="{@i18n>FIELD_ITEM}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ItemName">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ItemName">
<Annotation Term="Common.Label" String="{@i18n>FIELD_NAME}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ChangeType">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ChangeType">
<Annotation Term="Common.Label" String="{@i18n>FIELD_CHANGE_TYPE}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/Status">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/Status">
<Annotation Term="Common.Label" String="{@i18n>FIELD_STATUS}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/StatusCriticality">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/StatusCriticality">
<Annotation Term="Common.Label" String="{@i18n>FIELD_STATUS_CRITICALITY}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/RequestedBy">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/RequestedBy">
<Annotation Term="Common.Label" String="{@i18n>FIELD_REQUESTED_BY}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/RequestedOn">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/RequestedOn">
<Annotation Term="Common.Label" String="{@i18n>FIELD_REQUESTED_ON}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/DecidedBy">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/DecidedBy">
<Annotation Term="Common.Label" String="{@i18n>FIELD_DECIDED_BY}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/DecidedOn">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/DecidedOn">
<Annotation Term="Common.Label" String="{@i18n>FIELD_DECIDED_ON}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ArenaEcoId">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ArenaEcoId">
<Annotation Term="Common.Label" String="{@i18n>FIELD_ARENA_ECO}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/SapChangeNumber">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/SapChangeNumber">
<Annotation Term="Common.Label" String="{@i18n>FIELD_SAP_CHANGE_NO}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/ErrorMessage">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/ErrorMessage">
<Annotation Term="Common.Label" String="{@i18n>FIELD_ERROR_MSG}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/RejectReason">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/RejectReason">
<Annotation Term="Common.Label" String="{@i18n>FIELD_REJECT_REASON}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/SapPreview">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/SapPreview">
<Annotation Term="Common.Label" String="{@i18n>FIELD_STAGED_PAYLOAD}"/>
<Annotation Term="Common.FieldControl" EnumMember="Common.FieldControlType/ReadOnly"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
<!-- long JSON payload: render as text area [source: fiori-mcp-server "Text and Text Arrangement" sample (@UI.MultiLineText), verified 2026-09-14] -->
<Annotation Term="UI.MultiLineText" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/IsApprovable">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/IsApprovable">
<Annotation Term="Common.Label" String="{@i18n>FIELD_IS_APPROVABLE}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
</Annotations>
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type/IsRetriable">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType/IsRetriable">
<Annotation Term="Common.Label" String="{@i18n>FIELD_IS_RETRIABLE}"/>
<Annotation Term="UI.Hidden" Bool="true"/>
<Annotation Term="UI.HiddenFilter" Bool="true"/>
</Annotations>
<!-- Action parameter label for the reject dialog -->
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.reject(com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type)/RejectReason">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.reject(com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType)/RejectReason">
<Annotation Term="Common.Label" String="{@i18n>FIELD_REJECT_REASON}"/>
</Annotations>
<!-- ============================================================================
Entity-type annotations
============================================================================ -->
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.ChangeApproval_Type">
<Annotations Target="com.sap.gateway.srvd.zui_arena_change_approval.v0001.ChangeApprovalType">
<!-- Semantic key: bold ObjectIdentifier in responsive tables
[source: fiori-mcp-server "Handling Semantic Key Fields in SAP Fiori Elements", verified 2026-09-14] -->
@@ -255,28 +261,30 @@
<!-- Object page header actions (the ONLY place approve/reject/retry are offered; the list
report table is display-only with selectionMode None in the manifest).
Enablement comes from Core.OperationAvailable in the service metadata
(approve/reject: IsApprovable, retrySync: IsRetriable).
[source: fiori-mcp-server "Action Control for Context-Dependent Actions";
sap-docs /sapui5/06_SAP_Fiori_Elements/actions-cbf16c5#enabling-custom-actions-defined-using-annotations,
verified 2026-09-14] -->
Enablement is owned by the backend: RAP emits Core.OperationAvailable
Path="_it/__OperationControl/<action>" for the ( features : instance ) actions (live $metadata
2026-09-16). Deliberately NO OperationAvailable in this file - a local one would replace the
backend annotation on the same target.
[source: fiori-mcp-server "Action Control for Context-Dependent Actions (SAP Fiori Elements)";
"Enable Header Actions on the Object Page (UI.Identification / DataFieldForAction)";
"Visualizing and Managing Annotations with SAP Fiori Tools - Service Modeler", verified 2026-09-16] -->
<Annotation Term="UI.Identification">
<Collection>
<Record Type="UI.DataFieldForAction">
<PropertyValue Property="Label" String="{@i18n>ACTION_APPROVE}"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.approve"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval.v0001.approve"/>
<PropertyValue Property="Determining" Bool="false"/>
<PropertyValue Property="Criticality" EnumMember="UI.CriticalityType/Positive"/>
</Record>
<Record Type="UI.DataFieldForAction">
<PropertyValue Property="Label" String="{@i18n>ACTION_REJECT}"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.reject"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval.v0001.reject"/>
<PropertyValue Property="Determining" Bool="false"/>
<PropertyValue Property="Criticality" EnumMember="UI.CriticalityType/Negative"/>
</Record>
<Record Type="UI.DataFieldForAction">
<PropertyValue Property="Label" String="{@i18n>ACTION_RETRY}"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval_o4.v0001.retrySync"/>
<PropertyValue Property="Action" String="com.sap.gateway.srvd.zui_arena_change_approval.v0001.retrySync"/>
<PropertyValue Property="Determining" Bool="false"/>
<PropertyValue Property="Criticality" EnumMember="UI.CriticalityType/Critical"/>
</Record>