Skip to content

docs(abap): Fiori Elements page — verified sample, UI5 1.135 minimum, sharpened 758 finding#1

Open
marianfoo wants to merge 2 commits into
mainfrom
docs/fiori-elements-verified
Open

docs(abap): Fiori Elements page — verified sample, UI5 1.135 minimum, sharpened 758 finding#1
marianfoo wants to merge 2 commits into
mainfrom
docs/fiori-elements-verified

Conversation

@marianfoo

@marianfoo marianfoo commented Jun 11, 2026

Copy link
Copy Markdown
Member

Updates the Fiori Elements & file upload page with facts verified live against S/4HANA 2023 (SAP_BASIS 758) using SAPUI5 1.136 and the new runnable FE app in the samples repo (app/demo-orders):

  • UI5 minimum stated: file upload as an action parameter is an FE OData V4 feature added in SAPUI5 1.135 (What's New 1.135).
  • Real metadata extension: the conceptual DDLX sketch is replaced by the actual, activated ZSSI_C_S_ORD DDLX from the samples (the #FOR_ACTION line items that put the import buttons in the List Report toolbar), plus the surrounding projection/behavior-projection/SRVD/SRVB stack.
  • Verified channel matrix (new section): on 758 the native importUpload dialog renders (file-upload control + the shipped field labels) but submit fails — the gateway cannot deserialize an inline Edm.Stream action parameter in any JSON representation (tested with/without @odata.mediaContentType, base64/base64url, OData 4.0/4.01 — and from the real FE app: same parser error). The docs previously implied only the mime/filename auto-binding was missing; this is now corrected.
  • The working 758 path: base64 importExcel via an FE custom action — proven end-to-end in the sample app, including per-row BO messages (duplicate-key) surfacing in the FE result dialog and table refresh.
  • Troubleshooting gets the parser-error symptom row.

Strict build clean (mkdocs build --strict).

🤖 Generated with Claude Code


Added: correctness fixes from a full docs audit (ABAP + UI5)

Folded in a repo-wide docs audit — every fix cross-checked against the current source in an adversarial verify pass (5 further claims were investigated and rejected as false alarms). The same ABAP-page fixes already landed in the library + samples repos so the copies stay consistent.

ABAP pagespublic-api-contract (public parser utility is convexit_of, not the private resolve_field; gc_comp isn't in ZIF_SSI_TYPES; no generated adapter runs coerce_field/on_before_persist), integration-guide (generate_deep is active-create only → does not set %is_draft), extension-hooks (engine runs only two hooks; the other three are in the facade), usage-cookbook (build_create_template returns an empty xstring, doesn't raise), troubleshooting (dates fail closed — text YYYYMMDD/YYYY-MM-DD only; the existing parser-error row from this PR is kept).

UI5 pagesspreadsheetdownload (setDraftStatus/showOptions default true, not false), Wizard (the openWizard sample now compiles + uses this.spreadsheetUpload), Configuration (repaired the corrupted nullMarker row; useCsrf not csrf; dropped the non-existent uploadTimeout), HowItWorks (error at more than one table), Checks (Available since 2.4.0), NullHandling (real column names), APIReference ("UI5 application"), Events (closed backtick).

mkdocs build --strict passes for the combined branch.

marianfoo and others added 2 commits June 11, 2026 16:19
… sharpened 758 finding

Backed by a live test (S/4HANA 2023 / 758, SAPUI5 1.136, real FE app from the
samples repo):

- State the frontend floor explicitly: file upload as an action parameter is
  a Fiori Elements OData V4 feature added in SAPUI5 1.135.
- Replace the conceptual DDLX sketch with the real, runnable metadata
  extension from the samples (ZSSI_C_S_ORD) and link the new app/demo-orders
  Fiori Elements app incl. the custom 'API channel' action.
- Add a verified channel matrix: on 758 the native importUpload dialog
  renders (labels included) but the gateway rejects the inline stream payload
  on submit (parser error) — previously the docs implied only mime/filename
  auto-binding was missing. The base64 importExcel channel works end-to-end,
  incl. per-row BO messages in the FE result dialog.
- Troubleshooting: add the parser-error symptom row.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Every fix was cross-checked against the current source in a verify pass; the
same ABAP-page fixes were applied to the library repo (source of truth) so the
two copies stay consistent.

ABAP pages:
- public-api-contract: ZCL_SSI_PARSER's public utility is convexit_of, not the
  private resolve_field; gc_comp is not in ZIF_SSI_TYPES (internal ZCL_SSI_UTIL);
  no generated adapter (flat/deep/upsert) runs coerce_field/on_before_persist.
- integration-guide: generate_deep is active-create only, so it does not set
  %is_draft (only flat/upsert do); is_draft is ignored on the deep path.
- extension-hooks: engine runs only coerce_field + on_before_persist; the other
  three hooks live in the facade; no generated adapter runs the two today.
- usage-cookbook: build_create_template returns an empty xstring for an unknown
  entity, it does not raise cx_static_check.
- troubleshooting: dates must be text YYYYMMDD / YYYY-MM-DD (optional Txx); any
  other order or trailing junk fails closed (msg 002, row dropped), never stored
  corrupt.

UI5 pages:
- spreadsheetdownload: setDraftStatus and showOptions default to true (source +
  the page's own prose), the tables said false.
- Wizard: the "openWizard with Options" sample now compiles (async) and calls
  this.spreadsheetUpload (was an undefined oComponent).
- Configuration: repaired the corrupted nullMarker table row; directUploadConfig
  example uses useCsrf (not csrf) and drops the non-existent uploadTimeout.
- HowItWorks: the table-count error triggers at more than ONE table (not two).
- Checks: Nullable-Field check is available since 2.4.0 (was "[Next Release]").
- NullHandling: fixed a prose reference to a non-existent Phone column.
- APIReference: "UI5 application" (was "UI Builder application").
- Events: closed an unclosed backtick on the MessageType link.

Verified: mkdocs build --strict passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant