{"ref":"artifact:cesar-sap-abap-fm-json","page":"/artifacts/cesar-sap-abap-fm-json","json":"/artifacts/cesar-sap-abap-fm-json.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"cesar-sap-abap-fm-json","name":"abap_fm_json","artifact_type":"package","ecosystem":"abap","flavors":[{"key":"standard-abap","source":{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, How to install","checked":"2026-10-18","quote":"This adaptor works with any ABAP version from 7.0 onwards. I have tested it in 7.31, 7.40 and 7.50, which are the three releases where I can currently maintain it."}}],"domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"A JSON adapter that exposes ABAP function modules over HTTP: a handler class in an ICF service calls the module named in the URL and serialises its parameters to and from JSON.","short":"JSON adapter exposing ABAP function modules over HTTP","what_it_solves":"A handler class, ZCL_JSON_HANDLER, that you put first in the handler list of an ICF service you create yourself; from then on a call to `http(s)://your_abap_server:<port>/fmcall/<function_module_name>` invokes that function module and serialises its import and export parameters to and from JSON. Single-valued import parameters go in the query string, structures and tables in a POST or PUT body, and standard parameters change the response: `format=` switches the output to XML, YAML or Perl, `lowercase` and `camelcase` rename the ABAP fields, and `callback=` wraps the answer for JSONP. Every call runs an AUTHORITY_CHECK against a custom authorization object named Z_JSON with one field, FNMANE, which you create in SU21 because SAPLink does not transport authorization objects, and `action=start_session` holds an ABAP session across several calls. It ships two serialisers: the original pure ABAP ones, active by default, and the ABAP built-in transformations, switched on by commenting out the corresponding lines in HANDLE_REQUEST — on a release before 7.31 the calls to the built-in converter have to be commented out instead, because they cannot be used there.","when_not_to_use":"Input arrives only as JSON, or as plain XML if the ABAP built-in transformation is switched on, whatever the output format is set to. Cross-site calls are limited to JSONP: the maintainer lists CORS support as planned."},"links":{"repo":"https://github.com/cesar-sap/abap_fm_json","homepage":"http://scn.sap.com/community/abap/connectivity/blog/2013/03/05/json-adapter-for-abap-function-modules"},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, Create ICF service","checked":"2026-10-18","quote":"You must create a service in ICF to make an endpoint for the adaptor. The service must use class ZCL_JSON_HANDLER as the first entry in the Handler List."}]},"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, How to install","checked":"2026-10-18","quote":"It seems that [abapGit](https://github.com/larshp/abapGit) is the way to go. This repository should now work with abapGit, please inform me if you find any issue"}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"provides":[{"capability":"capability:rfc-connectivity","what_it_does":"Serves a function module to callers outside the system over HTTP, converting its parameters to and from JSON, and optionally writing the response as XML, YAML or Perl.","sources":[{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README","checked":"2026-10-18","quote":"The purpose of this adaptor is to allow calling ABAP function modules via HTTP and serializing the input and output in JSON format."},{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, Supported output formats","checked":"2026-10-18","quote":"The adaptor can produce output in the following formats: [JSON](http://www.json.org/), plain XML, [YAML 1.0](http://yaml.org/spec/1.0/), and [Perl](http://perldoc.perl.org/Data/Dumper.html)"}]}],"requires":[{"ref":"artifact:abapgit-abapgit","requirement":"conditional","condition":"installing the adapter from this repository; the README also offers SAPLink with its plugins, and a transport request under transport/ for direct import","basis":"binding","role":"installation","for":"Pulling the repository into the system, which the maintainer calls the way to go for installing it.","sources":[{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, How to install","checked":"2026-10-18","quote":"It seems that [abapGit](https://github.com/larshp/abapGit) is the way to go. This repository should now work with abapGit, please inform me if you find any issue"},{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, How to install","checked":"2026-10-18","quote":"SAPLink is still supported and I've updated the nugget and slinkees. However, many people are currently getting trouble to make SAPLink work. If you come accross problems, I have made available a transport request for direct import into an ABAP system"}]}],"interfaces":[{"key":"fmcall","kind":"api","protocol":"http","direction":"in","for":"calling a function module by name and getting its export parameters back as JSON","sources":[{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README","checked":"2026-10-18","quote":"The purpose of this adaptor is to allow calling ABAP function modules via HTTP and serializing the input and output in JSON format."},{"url":"https://github.com/cesar-sap/abap_fm_json","title":"cesar-sap/abap_fm_json — README, Create ICF service","checked":"2026-10-18","quote":"http(s)://your_abap_server:<port>/fmcall/<function_module_name>?<parameters>"}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"maintainers":["actor:cesar-sap"],"contributors":["actor:cesar-sap","actor:froggs"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"good","evidence":"pushed 2026-07, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 6 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":122,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":122,"forks":40,"open_issues":5,"archived":false,"pushed_at":"2026-07-29","license_spdx":"Apache-2.0","org_owned":false,"default_branch":"master","created_at":"2014-03-01T16:44:16Z","open_prs":1,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":6011,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2014-03-01","last_commit":"2021-04-30","commits":60,"contributors":2,"readme_path":"README.md","readme_sha":"7a55b88d829c66d33b801659d7d5a8694b5ffe42","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:cesar-sap","name":"Cesar Martin","json":"/actors/cesar-sap.json"}],"contributors":[{"ref":"actor:cesar-sap","name":"Cesar Martin","json":"/actors/cesar-sap.json"},{"ref":"actor:froggs","name":"Tobias Leich","json":"/actors/froggs.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}