{"ref":"artifact:abap2ui5-addons-custom-controls-customer","page":"/artifacts/abap2ui5-addons-custom-controls-customer","json":"/artifacts/abap2ui5-addons-custom-controls-customer.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap2ui5-addons-custom-controls-customer","name":"custom-controls-customer","artifact_type":"sample","ecosystem":"abap","serves_ecosystems":["ui5"],"flavors":[{"key":"standard-abap","source":{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README","checked":"2026-10-17","quote":"- Standard ABAP 7.50 or higher"}}],"domain":"ui-and-frontend-bridge","origin_ring":"community-org","use_as":"starting-point","description":{"one_line":"A template repository for a customer's own UI5 artefacts in [abap2UI5](artifact:abap2ui5-abap2ui5): an icon font, CSS, a reuse library or a custom control, served from a BSP of their own under the resourceRoot `z2ui5_ccc`.","short":"Template repository for own UI5 artefacts served to abap2UI5","what_it_solves":"Adding a UI5 reuse library to abap2UI5 used to mean patching the framework's own BSP by hand in four places: the `resourceRoots` in `index.html`, the library in `manifest.json`, the `xmlns:` in the view and the module in the controller. All four are generated from `app/webapp` in the abap2UI5 repository and force-overwritten in [abap2UI5 frontend](artifact:abap2ui5-frontend) on every framework update, so the patch survives until the next upgrade and then the icons are gone with no error message. This repository holds those artefacts instead: files go under `app/webapp/`, `npm run app2bsp` turns them into the BSP `Z2UI5_CCC` with its page directory and ICF nodes under `src/01`, and [abapGit](artifact:abapgit-abapgit) installs the result. Four declaration blocks at the top of `app/webapp/cc/Extension.js` (resource roots, libraries, icon fonts and stylesheets) replace the four framework patches one for one, and from ABAP `z2ui5_cl_ccc=>xmlns( )` and `render( )` pull the extension into a view. abap2UI5 reserves the resourceRoot `z2ui5_ccc` in its `manifest.json`, so BSP, launchpad and ICF-service mode all resolve the BSP without configuration.","to_build_on_it":"The repository is forked, or copied into a git host of your own, and what you add lives under `app/webapp/`: at most one directory level, and names from letters, digits, `_` and `.` only, because `app2bsp` fails on anything else rather than letting SAP reject the import. BSP pages are text, so a `.woff2`, `.ttf` or `.png` is rejected there and a font either rides in `css/style.css` as a base64 data URI or is uploaded as a MIME object that `fontURI` points at; `npm run app2bsp` then regenerates `src/01`, and CI fails on a diff. `Z2UI5_CCC` and the `Z2UI5_CL_CCC*` classes can be renamed in `tools/app2bsp.mjs`, the class names and `object_naming` in `abaplint.jsonc` together, while the resourceRoot stays as abap2UI5 registers it; for a control to be shared rather than kept in-house the README points at [abap2UI5-addons/custom-controls](https://github.com/abap2UI5-addons/custom-controls), the same mechanism under the reserved namespace `z2ui5_cci`."},"links":{"repo":"https://github.com/abap2UI5-addons/custom-controls-customer"},"type_properties":{"form":{"value":"template","sources":[{"url":"https://github.com/abap2UI5-addons/custom-controls-customer","title":"custom-controls-customer — README","checked":"2026-10-18","quote":"A template repository for your own frontend artefacts in abap2UI5."}]}},"maintainers":["actor:abap2ui5-addons"],"demonstrates":["capability:ui5-custom-controls"],"requires":[{"ref":"artifact:abap2ui5-abap2ui5","for":"The framework in the backend this BSP extends: it reserves the resourceRoot `z2ui5_ccc` the artefacts are served under, and the ABAP class `z2ui5_cl_ccc` builds into an abap2UI5 view. On an older framework the check app renders an empty page and the browser console shows a failed request for `z2ui5_ccc/cc/Extension.js`.","requirement":"required","basis":"binding","role":"framework","sources":[{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README, Installation","checked":"2026-10-17","quote":"[abap2UI5](https://github.com/abap2UI5/abap2UI5) - a version that reserves the `z2ui5_ccc` resourceRoot, installed in the backend."},{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README, How it works","checked":"2026-10-17","quote":"abap2UI5 reserves the resourceRoot **`z2ui5_ccc`** in its `manifest.json`:"}]},{"ref":"artifact:abapgit-abapgit","for":"Installing the ABAP classes, the BSP application `Z2UI5_CCC` and the two ICF nodes it is served from into the system.","requirement":"required","basis":"binding","role":"installation","sources":[{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README","checked":"2026-10-17","quote":"Part of [abap2UI5-addons](https://github.com/abap2UI5-addons) - addons and apps for [abap2UI5](https://github.com/abap2UI5/abap2UI5), installed with [abapGit](https://abapgit.org)."},{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README, Installation","checked":"2026-10-17","quote":"your fork (branch `main`) - it brings the ABAP classes, the BSP application `Z2UI5_CCC` and the two ICF nodes it is served from"}]},{"ref":"artifact:abap2ui5-frontend","for":"The frontend BSP that resolves `z2ui5_ccc` against this BSP, needed when abap2UI5 runs in BSP or launchpad mode.","requirement":"conditional","basis":"binding","role":"frontend","condition":"abap2UI5 runs in BSP or launchpad mode","sources":[{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README, Installation","checked":"2026-10-17","quote":"[abap2UI5/frontend](https://github.com/abap2UI5/frontend) — the frontend BSP, when running in BSP or launchpad mode"}]}],"interfaces":[{"key":"z2ui5-ccc-bsp","kind":"api","protocol":"http","direction":"in","for":"The BSP `Z2UI5_CCC` serves its UI5 modules, stylesheets and `cc/Extension.js` under the resourceRoot `z2ui5_ccc`, from the URL `/sap/bc/ui5_ui5/sap/z2ui5_ccc/`.","sources":[{"url":"https://github.com/abap2ui5-addons/custom-controls-customer","title":"abap2UI5-addons/custom-controls-customer — README, How it works","checked":"2026-10-17","quote":"so the module `z2ui5_ccc/cc/Example` is served from `/sap/bc/ui5_ui5/sap/z2ui5_ccc/cc/Example.js` — the BSP `Z2UI5_CCC` that this repository builds."}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-17"},"drafted_with_ai":true,"contributors":["actor:oblomov-dev"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"SAP_BASIS 750 and up, in its abaplint config: includes every maintained line to 816"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"check green, 2026-10-12"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 12 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":0,"forks":1,"open_issues":1,"archived":false,"pushed_at":"2026-10-12","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2026-08-08T13:34:46Z","open_prs":1,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":12555,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2026-08-08","last_commit":"2026-10-12","commits":21,"contributors":2,"ci_status":"success","ci_run_at":"2026-10-12","ci_workflow":"check","ci_event":"push","readme_path":"README.md","readme_sha":"c09a35abb3cf1cde17bece41ad3e7c7de0b67ef2","repo_read":"2026-10-24","abap_syntax":{"repo":"abap2UI5-addons/custom-controls-customer","file":"abaplint.jsonc","url":"https://github.com/abap2UI5-addons/custom-controls-customer/blob/HEAD/abaplint.jsonc","version":"v750","floor":"750","checked":"2026-10-26"}},"edges":{"maintainers":[{"ref":"actor:abap2ui5-addons","name":"abap2UI5-addons","json":"/actors/abap2ui5-addons.json"}],"contributors":[{"ref":"actor:oblomov-dev","name":"oblomov-dev","json":"/actors/oblomov-dev.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:abap2ui5-abap2ui5","name":"abap2UI5","json":"/artifacts/abap2ui5-abap2ui5.json"},"add_ons":[],"answered_through_parts":[]}}