{"ref":"artifact:greltel-abap-form-translator","page":"/artifacts/greltel-abap-form-translator","json":"/artifacts/greltel-abap-form-translator.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"greltel-abap-form-translator","name":"abap-form-translator","artifact_type":"package","ecosystem":"abap","flavors":[{"key":"abap-cloud","source":{"url":"https://github.com/greltel/abap-form-translator","title":"greltel/abap-form-translator — README, Design Goals-Features","checked":"2026-09-14","quote":"ABAP Cloud/Clean Core compatibility.Passed SCI check variant S4HANA_READINESS_2023 and ABAP_CLOUD_READINESS"}}],"domain":"ui-and-frontend-bridge","origin_ring":"independent","description":{"one_line":"A runtime translation layer for Smartform and Adobe form labels, matching structure fields against a table maintained in a RAP Fiori app, so a label changes without SE63 or a transport.","short":"Runtime translation layer for SAP form labels, kept in a table","what_it_solves":"Changing a label on a Smartform or an Adobe form normally means the SE63 translation workflow and a transport. This keeps the text out of the form: the components of a flat interface structure are matched by field name against the rows of a database table, `ZABAP_FORM_TRANS`, through RTTI, and the labels are maintained in a Fiori elements application built with RAP rather than in SE63, which puts a changed label into production without a transport request. Only flat structures are translated, not nested structures or internal tables, and the table is buffered, so a changed text reaches other application servers once the buffer synchronises rather than at once."},"links":{"repo":"https://github.com/greltel/abap-form-translator"},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/greltel/abap-form-translator","title":"greltel/abap-form-translator — README, Design Goals-Features","checked":"2026-09-14","quote":"Install via [ABAPGit](http://abapgit.org)"}]},"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/greltel/abap-form-translator","title":"greltel/abap-form-translator — README, Design Goals-Features","checked":"2026-09-14","quote":"Install via [ABAPGit](http://abapgit.org)"}]}},"identity":{"license":"MIT"},"source_available":true,"maintainers":["actor:greltel"],"provides":[{"capability":"capability:localization","what_it_does":"Decouples SAP form label text from form development by matching a flat interface structure against a database table through RTTI, and exposes label maintenance through a Fiori elements application instead of the standard SE63 workflow.","sources":[{"url":"https://github.com/greltel/abap-form-translator","title":"greltel/abap-form-translator — README","checked":"2026-09-14","quote":"It decouples text management from form development, allowing functional consultants or users to maintain labels via a simple database table (`RAP Application`), bypassing the complex standard SE63 workflow."}]}],"requires":[{"ref":"artifact:abapgit-abapgit","for":"Installs the repository into the ABAP system; the README names [abapGit](artifact:abapgit-abapgit) as the install method.","sources":[{"url":"https://github.com/greltel/abap-form-translator","title":"greltel/abap-form-translator — README, Design Goals-Features","checked":"2026-09-14","quote":"Install via [ABAPGit](http://abapgit.org)"}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"contributors":["actor:greltel","actor:larshp","actor:mbtools"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"5 contributors"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"abaplint syntax Cloud, no release"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"ABAP Unit Testing green, 2026-10-21"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 13 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":13,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":13,"forks":3,"open_issues":0,"archived":false,"pushed_at":"2026-10-21","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2026-02-01T13:02:50Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":13426,"docs_files":0,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-02-01","last_commit":"2026-10-21","commits":227,"contributors":5,"ci_status":"success","ci_run_at":"2026-10-21","ci_workflow":"ABAP Unit Testing","ci_event":"push","readme_path":"README.md","readme_sha":"7e661f02e7b053a1b337918eb7f5c5a44c4018e2","repo_read":"2026-10-26","abap_syntax":{"repo":"greltel/abap-form-translator","file":"abaplint.json","url":"https://github.com/greltel/abap-form-translator/blob/HEAD/abaplint.json","version":"Cloud","checked":"2026-10-26"}},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"repo","path":"CHANGELOG.md","ref":"main","url":"https://github.com/greltel/abap-form-translator/blob/main/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"2.0.0","heading":"[2.0.0] - 2026-09","url":"https://github.com/greltel/abap-form-translator/blob/main/CHANGELOG.md#200---2026-09","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"change","heading":"Changed","items":7},{"kind":"removal","heading":"Removed","items":2},{"kind":"other","heading":"Upgrade notes","items":4}],"hash":"f8afdb96d7a25ed3"},{"version":"1.3.0","heading":"[1.3.0] and earlier","url":"https://github.com/greltel/abap-form-translator/blob/main/CHANGELOG.md#130-and-earlier","sections":[],"hash":"185dd854f2b3954a"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:greltel","name":"George Drakos","json":"/actors/greltel.json"}],"contributors":[{"ref":"actor:greltel","name":"George Drakos","json":"/actors/greltel.json"},{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"},{"ref":"actor:mbtools","name":"Marc Bernard","json":"/actors/mbtools.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}