{"ref":"artifact:marianfoo-ui5-call-action","page":"/artifacts/marianfoo-ui5-call-action","json":"/artifacts/marianfoo-ui5-call-action.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"marianfoo-ui5-call-action","name":"ui5-call-action","artifact_type":"sample","ecosystem":"cap","serves_ecosystems":["ui5"],"flavors":[{"key":"fiori-elements","source":{"url":"https://github.com/marianfoo/ui5-call-action","title":"marianfoo/ui5-call-action — README","checked":"2026-09-25","quote":"**UI5 V4 Fiori Elements**"}},{"key":"freestyle","source":{"url":"https://github.com/marianfoo/ui5-call-action","title":"marianfoo/ui5-call-action — README","checked":"2026-09-25","quote":"**UI5 V4 Freestyle**"}}],"domain":"ui-and-frontend-bridge","origin_ring":"independent","use_as":"starting-point","description":{"one_line":"Four UI5 apps over one CAP service, each calling the same bound, collection-bound and unbound [OData](capability:odata) actions and functions from custom code.","short":"UI5 apps calling CAP OData actions and functions from custom code","what_it_solves":"A books service in CDS with four front ends against it: Fiori elements and freestyle, each once in OData V4 and once in V2, all served together on localhost:4004 by `npm run watch`. Every app calls the same set of operations — an action bound to an entity, one bound to a collection, an unbound one, and read-only functions at entity and service level — first through the button CAP's [Fiori annotations](capability:fiori-annotations) generate, then through custom code doing the same thing. The V2 pair carries the boundary: the V2 OData adapter does not support collection-bound actions properly, and `createBooksAndChapters`, the action with nested parameters, is not available there at all. On the V4 side the README marks `bindContext().execute()` deprecated in UI5 1.123 and names `invoke()` as the call to move to. It stops at the call itself, with a handler of a few lines behind each action, because what the repository is about is how the front end reaches it."},"links":{"repo":"https://github.com/marianfoo/ui5-call-action"},"compat":{"runtimes":["node"]},"type_properties":{"form":{"value":"tutorial","sources":[{"url":"https://github.com/marianfoo/ui5-call-action","title":"ui5-call-action — README","checked":"2026-10-18","quote":"A full walk-through is available as a blog post"}]}},"demonstrates":["capability:odata","capability:fiori-annotations"],"maintainers":["actor:marianfoo"],"source_available":true,"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:github-orgs","channel":"marianfoo"}],"first_seen":"2026-09-25"},"contributors":["actor:marianfoo"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"fair","evidence":"pushed 2025-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"13 test files"},{"label":"Docs","tier":"good","evidence":"README 9 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":31,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":31,"forks":9,"open_issues":0,"archived":false,"pushed_at":"2025-09-12","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2025-07-17T08:11:10Z","open_prs":0,"tree_truncated":false,"test_files":13,"workflows":0,"other_ci":false,"readme_bytes":9119,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2025-05-21","last_commit":"2025-09-12","commits":3,"contributors":1,"contributors_since":"2025-07-17","readme_path":"README.md","readme_sha":"49b1e07e4370e4895729040b9049b0819e12d569","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"contributors":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[{"ref":"artifact:marianfoo-ui5-fe-mockserver-tutorial","name":"ui5-fe-mockserver-tutorial","json":"/artifacts/marianfoo-ui5-fe-mockserver-tutorial.json","requirement":"required"}],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}