{"ref":"artifact:greltel-abap-dynamic-assignment","page":"/artifacts/greltel-abap-dynamic-assignment","json":"/artifacts/greltel-abap-dynamic-assignment.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"greltel-abap-dynamic-assignment","name":"abap-dynamic-assignment","artifact_type":"package","ecosystem":"abap","flavors":[{"key":"abap-cloud","source":{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README, Key Benefits","checked":"2026-09-14","quote":"Written for ABAP for Cloud Development."}}],"domain":"operations-and-runtime","origin_ring":"independent","description":{"one_line":"A framework for maintaining runtime parameters, ranges and value mappings in ABAP instead of hard-coded values or TVARVC, checked against data elements and maintained in a RAP Fiori app.","short":"Framework for runtime parameters, ranges and value mappings in ABAP","what_it_solves":"Configuration values are often hard-coded in ABAP or wedged into the generic, rigid TVARVC table. This framework stores single values, ranges and value-to-value mappings behind a validated API, get_variant for reading and map_value for classifying an incoming value against configured rules, and ships a RAP-based Fiori elements app for maintaining them without a transport. Every value is checked against its configured data element on write, so a value that would not survive a round trip is rejected rather than corrupted silently."},"links":{"repo":"https://github.com/greltel/abap-dynamic-assignment"},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README, Installation","checked":"2026-09-14","quote":"Pull the repository with [abapGit](http://abapgit.org) into a Z package."}]},"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README, Installation","checked":"2026-09-14","quote":"Pull the repository with [abapGit](http://abapgit.org) into a Z package."}]}},"identity":{"license":"MIT"},"source_available":true,"maintainers":["actor:greltel"],"interfaces":[{"key":"variants-service-binding","name":"ZUI_DA_VARIANTS_O4","kind":"api","direction":"in","for":"the service binding the maintenance application is published through","sources":[{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README, Installation","checked":"2026-09-14","quote":"Publish the service binding `ZUI_DA_VARIANTS_O4`."}]}],"provides":[{"capability":"capability:configuration","what_it_does":"Replaces hard-coded values and TVARVC with a validated, RAP-maintained parameter table exposed through get_variant and map_value.","sources":[{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README","checked":"2026-09-14","quote":"It decouples configuration values from code logic, allowing developers, functional consultants or key users\nto maintain variables, ranges and mappings through a Fiori Elements application or a programmatic API,\nbypassing hardcoded values and the rigid standard TVARVC table."}]}],"requires":[{"ref":"artifact:abapgit-abapgit","for":"Installs the repository into the ABAP system; the README's first installation step is a pull with [abapGit](artifact:abapgit-abapgit).","sources":[{"url":"https://github.com/greltel/abap-dynamic-assignment","title":"greltel/abap-dynamic-assignment — README, Installation","checked":"2026-09-14","quote":"Pull the repository with [abapGit](http://abapgit.org) into a Z package."}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"changed_in":[{"version":"2.0.0","date":"2026-08-05","what_changed":"Adds the authorization object `ZDA_VAR` (fields `ACTVT`, `ZDA_PROG`), the authorization class `ZDA` and a DCL role on the root view entity.","source":{"url":"https://github.com/greltel/abap-dynamic-assignment/blob/main/CHANGELOG.md#200--2026-08-05","title":"greltel/abap-dynamic-assignment changelog, 2.0.0","checked":"2026-10-19","quote":"Authorization object `ZDA_VAR` (fields `ACTVT`, `ZDA_PROG`), authorization class `ZDA`, DCL role on the root view entity"}}],"contributors":["actor:greltel"]},"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-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":"CI green, 2026-10-21"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 23 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":6,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":6,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-10-21","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2026-03-12T12:02:13Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":23226,"docs_files":0,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-03-12","last_commit":"2026-10-21","commits":116,"contributors":2,"ci_status":"success","ci_run_at":"2026-10-21","ci_workflow":"CI","ci_event":"push","readme_path":"README.md","readme_sha":"ca3da87f3b6bbca5838a996b5560b52248bb57a6","repo_read":"2026-10-24","abap_syntax":{"repo":"greltel/abap-dynamic-assignment","file":"abaplint.json","url":"https://github.com/greltel/abap-dynamic-assignment/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-dynamic-assignment/blob/main/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"3.0.0","date":"2026-09-19","date_source":"heading","heading":"[3.0.0] — 2026-09-19","url":"https://github.com/greltel/abap-dynamic-assignment/blob/main/CHANGELOG.md#300--2026-09-19","sections":[{"kind":"feature","heading":"Added","items":6},{"kind":"change","heading":"Changed","items":6},{"kind":"fix","heading":"Fixed","items":5}],"hash":"f6a1a6caf2a9a00e"},{"version":"2.1.0","date":"2026-08-10","date_source":"heading","heading":"[2.1.0] — 2026-08-10","url":"https://github.com/greltel/abap-dynamic-assignment/blob/main/CHANGELOG.md#210--2026-08-10","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"fix","heading":"Fixed","items":4}],"hash":"a8a4510b7206ef12"},{"version":"2.0.0","date":"2026-08-05","date_source":"heading","heading":"[2.0.0] — 2026-08-05","url":"https://github.com/greltel/abap-dynamic-assignment/blob/main/CHANGELOG.md#200--2026-08-05","sections":[{"kind":"feature","heading":"Added","items":7},{"kind":"change","heading":"Changed","items":2},{"kind":"removal","heading":"Removed","items":1}],"hash":"73e6e9a7814af6bb","cited_by":[{"version":"2.0.0","date":"2026-08-05"}]},{"version":"1.0.0","date":"2026-03-16","date_source":"heading","heading":"[1.0.0] — 2026-03-16","url":"https://github.com/greltel/abap-dynamic-assignment/blob/main/CHANGELOG.md#100--2026-03-16","sections":[{"kind":"feature","heading":"Added","items":4}],"hash":"f7e1a85940e22e6f"}],"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"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}