{"ref":"artifact:miyasuta-cap-rfc","page":"/artifacts/miyasuta-cap-rfc","json":"/artifacts/miyasuta-cap-rfc.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"miyasuta-cap-rfc","name":"cap-rfc","artifact_type":"sample","ecosystem":"cap","domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"A CAP Node.js action that calls `BAPI_EPM_BP_CREATE` over RFC, with the function module's own signature imported as CDS and a destination standing in for the system once deployed.","short":"CAP Node.js action calling BAPI_EPM_BP_CREATE over RFC","what_it_solves":"`cds.requires` declares `abaptrialRFC` as `kind: rfc` against the model imported into `srv/external`, with `credentials.destination: 'abaptrialRFC'` under `[production]`, and the handler calls `rfc.BAPI_EPM_BP_CREATE({HEADERDATA: req.data.header})` and returns what comes back untouched. The service exposes one action, `createBP`, whose parameter is typed from the imported DDIC structure `BAPI_EPM_BP_HEADER` and whose return type is the function module's own result type, so the ABAP signature is the contract rather than a hand-written shape. [@sap/cds-rfc](artifact:sap-cds-rfc) supplies that connection kind, and `@sap-rfc/node-rfc-library` sits in devDependencies, which is where the native library enters. The MTA binds xsuaa, `connectivity` and `destination` on the `lite` plan and nothing else; the README is the CAP scaffold's own, and the project and its deployed application are named `cap-rfc2` rather than after the repository."},"links":{"repo":"https://github.com/miyasuta/cap-rfc"},"compat":{"runtimes":["node"],"deployment":["cf"]},"demonstrates":["capability:rfc-connectivity","capability:destinations"],"requires":[{"ref":"artifact:sap-cds-rfc","for":"The connection the service opens is declared with `kind: rfc`, the kind this plugin adds, and the project depends on it directly.","sources":[{"url":"https://raw.githubusercontent.com/miyasuta/cap-rfc/main/package.json","title":"miyasuta/cap-rfc — package.json, cds.requires","checked":"2026-10-15","quote":"\"abaptrialRFC\": {\n        \"kind\": \"rfc\",\n        \"model\": \"srv/external/abaptrialRFC\","},{"url":"https://raw.githubusercontent.com/miyasuta/cap-rfc/main/package.json","title":"miyasuta/cap-rfc — package.json, dependencies","checked":"2026-10-15","quote":"\"@sap/cds-rfc\": \"^2.0.2\","}]},{"ref":"artifact:btp-destination","for":"The production profile reaches the ABAP system through a destination of the same name, and the MTA binds a destination instance to the service module.","sources":[{"url":"https://raw.githubusercontent.com/miyasuta/cap-rfc/main/package.json","title":"miyasuta/cap-rfc — package.json","checked":"2026-10-15","quote":"\"[production]\": {\n          \"credentials\": {\n            \"destination\": \"abaptrialRFC\"\n          }\n        }"}]},{"ref":"artifact:btp-connectivity","for":"The MTA binds a connectivity instance to the service module, which is what reaches an on-premise system through the Cloud Connector.","sources":[{"url":"https://raw.githubusercontent.com/miyasuta/cap-rfc/main/mta.yaml","title":"miyasuta/cap-rfc — mta.yaml, resources","checked":"2026-10-15","quote":"- name: cap-rfc2-connectivity\n    type: org.cloudfoundry.managed-service\n    parameters:\n      service: connectivity\n      service-plan: lite"}]}],"maintainers":["actor:mio-yasutake"],"contributors":["actor:mio-yasutake"],"use_as":"reference","provenance":{"discovered_via":[{"source":"source:github","channel":"miyasuta"}],"first_seen":"2026-10-15"},"drafted_with_ai":true},"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-08, 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":"1 test file"},{"label":"Docs","tier":"poor","evidence":"README 1 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-25","npm":"not published under this name","stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2025-08-04","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2025-08-04T21:06:18Z","open_prs":0,"tree_truncated":false,"test_files":1,"workflows":0,"other_ci":false,"readme_bytes":674,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2025-08-03","last_commit":"2025-08-04","commits":2,"contributors":1,"readme_path":"README.md","readme_sha":"dbac29eb1594d1dd9e9cd90a11879f1495caa4b6","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"contributors":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}