OpenUI5 vs SAPUI5 list, and custom controls in their own BSP - #345
Merged
Merged
Conversation
The OpenUI5 vs SAPUI5 section listed sap.viz among the libraries OpenUI5 contains. It does not: there is no @openui5/sap.viz on npm, only @sapui5/sap.viz, and the abap2UI5 linter lists it as SAPUI5-only. A reader who kept the default OpenUI5 bootstrap for a VizFrame chart got a view that could not load. sap.viz moves to the SAPUI5 bullet, next to two other SAPUI5-only libraries readers run into: sap.ui.richtexteditor (RichTextEditor) and sap.ui.export (spreadsheet export). The closing paragraph now also says what happens on the wrong bootstrap: OpenUI5 cannot load their controls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014hMqkiuAQP6mAVnUEDHoTv
The page told readers to put a new control into the framework's own app/webapp/cc/ and to copy Timer.js, which the framework marks obsolete. That folder ships inside the framework's inline preload on every page load and is rewritten by every update. The framework itself says app code belongs in a BSP of its own: the frontend reserves the resource roots z2ui5_ccc (the customer's own artifacts) and z2ui5_cci (the community custom-controls add-on) for exactly this, as insight 12 on this site already says. The Frontend section now describes that route: the two roots, the custom-controls-customer template with its Example control, npm run app2bsp and abapGit, and how a control that wraps a third-party library loads it (jsDelivr on main, which the CSP has to allow; the BSP itself on the local branch). The backend example uses the template's real control and the z2ui5_ccc.cc namespace, and a closing note gives the console check that tells a typo in the one differing letter from a missing BSP. frontend.md told readers to run npm run auto_app2abap before a pull request. That step alone leaves the generated ABAP un-normalized; the command that runs format, generate and normalize is npm run app2abap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014hMqkiuAQP6mAVnUEDHoTv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two corrections, one commit each.
1. Bootstrapping:
sap.vizis SAPUI5, not OpenUI5The "OpenUI5 vs SAPUI5" section of
configuration/setup/ui5_bootstrapping.mdlistedsap.vizamong the libraries OpenUI5 contains. It does not:@openui5/sap.vizdoes not exist on npm; only@sapui5/sap.vizdoes.A reader who stayed on the default OpenUI5 bootstrap for a
VizFramechart got a view that could not load.The fix:
sap.vizmoves to the SAPUI5 bullet.sap.ui.richtexteditor(RichTextEditor) andsap.ui.export(spreadsheet export).I checked every library the section names against the npm scopes. The OpenUI5 ones exist only as
@openui5/*; the SAPUI5 ones exist only as@sapui5/*.2. Custom controls: the own-BSP route, not the framework folder
advanced/extensibility/custom_control.mdtold readers to put a new control into the framework'sapp/webapp/cc/and to copyTimer.js, which the framework marks obsolete (app/webapp/cc/Timer.js:8). The framework says app code belongs in a BSP of its own:z2ui5_cccandz2ui5_cciinapp/webapp/manifest.json.z2ui5_if_clientsays frontend code of the app's own ships as a custom control inz2ui5_ccc.The rewritten Frontend section covers:
Examplecontrol,npm run app2bspand abapGit;main, which the CSP has to allow; the BSP itself onlocal.The backend example now uses the template's real control and the
z2ui5_ccc.ccnamespace. A closing note gives the console check that tells a typo in the one differing letter apart from a missing BSP.advanced/extensibility/frontend.mdalso told readers to runnpm run auto_app2abapbefore a pull request. Per the framework's AGENTS.md, that step alone leaves the generated ABAP un-normalized. The command is nownpm run app2abap, which formats, generates and normalizes.Side note for the framework, not changed here:
Component.js,z2ui5_cl_ui5_http_handlerand the framework's AGENTS.md nameabap2UI5/customer-frontend-extensionas thez2ui5_ccctemplate. That repository does not exist; the template lives atabap2UI5-addons/custom-controls-customer, which is what this site already links fromaddons.mdandrenaming.md.Verification
Run locally, all green:
npm testcheck:vocabulary,check:line-length(custom_control.mdis now a wrapped page)check:conventions(covers the new chain),check:playgroundcheck:api-namesandcheck:examples, withA2UI5_HOMEpointing at a framework clone onmaincheck:images,check:designdocs:build,check:cross-sitenpm run buildcould not run in my environment: it borrows files fromabap2ui5.github.io, which the proxy blocks, and it fails the same way on unchangedmain. This PR's CI covers it.🤖 Generated with Claude Code
https://claude.ai/code/session_014hMqkiuAQP6mAVnUEDHoTv
Generated by Claude Code