{"ref":"content:sap-cap-function-and-action-with-unstructured-dynamic-type-input-output","page":"/content/sap-cap-function-and-action-with-unstructured-dynamic-type-input-output","json":"/content/sap-cap-function-and-action-with-unstructured-dynamic-type-input-output.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-cap-function-and-action-with-unstructured-dynamic-type-input-output","title":"SAP CAP function and action with Unstructured/Dynamic Type Input/Output","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/sap-cap-function-and-action-with-unstructured-dynamic-type-input-output/ba-p/13571201","content_type":"blog","published_on":"source:sap-community","explains":[{"ref":"capability:odata","applies_to":{"ecosystems":["cap"]}},"capability:graphql"],"summary":"A CAP action or function can take or return an unstructured type: annotate the service `@protocol: 'rest'`, declare the parameter or return value as `@open type object {}`, and a handler shapes the payload however a given request needs, shown here with a bound action and a function that returns a different structure per input. The text states plainly that [OData](capability:odata) V4 and [GraphQL](capability:graphql) services require a fixed structure for action and function parameters, so the dynamic type works only over CAP's REST protocol.","short":"CAP actions and functions with open, unstructured types","authors":["actor:ajitkp91"],"published":"2022-12-08","provenance":{"discovered_via":[{"source":"source:sap-community","channel":"cap-tag"}],"first_seen":"2026-09-22"},"drafted_with_ai":true,"history":[{"date":"2026-10-17","field":"explains","from":null,"to":"applies_to on capability:odata (cap)","reason":"Door scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md)."}]},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"poor","evidence":"published 46 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"poor","evidence":"@cap-js-community/odata-v2-adapter 1.10.0, 2023-04"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":22368,"unit":"views"},{"value":6,"unit":"comments"},{"value":21,"unit":"likes"}]},"signals":{"views":22368,"likes":21,"comments":6,"metrics_at":"2026-10-25"},"series":null,"edges":{"authors":[{"ref":"actor:ajitkp91","name":"Ajit Kumar Panda","json":"/actors/ajitkp91.json"}]}}