{"ref":"artifact:jrgkraus-abap-ui-tools","page":"/artifacts/jrgkraus-abap-ui-tools","json":"/artifacts/jrgkraus-abap-ui-tools.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"jrgkraus-abap-ui-tools","name":"abap-ui-tools","artifact_type":"package","ecosystem":"abap","domain":"ui-and-frontend-bridge","origin_ring":"independent","description":{"one_line":"A helper class for the classic ABAP dynpro UI: hiding, disabling and requiring screen fields, setting dropdown values, and asking yes/no questions, in single calls.","short":"Helper class for classic ABAP dynpro field handling and popups","what_it_solves":"Manipulating dynpro screen fields normally means writing a `loop at screen` and checking group and field names by hand in the PBO event. `ZCL_UITOOLS`, used through inheritance or as an instance, replaces that with direct calls such as `field('MATNR')->hide()` or `group('GR1')->set_required()` to hide, disable or require whole groups or single fields, and the same `field()` method sets a list box's dropdown values. Its `ask()` and `ask_with_cancel()` methods wrap `POPUP_TO_CONFIRM` for yes/no and yes/no/cancel questions, with an optional long text pulled from an SE61 document. A demo report, `ZP_UITOOLS_DEMO`, shows the calls in use."},"links":{"repo":"https://github.com/jrgkraus/abap-ui-tools"},"identity":{"license":"MIT"},"source_available":true,"provides":[{"capability":"capability:abap-classic-ui","what_it_does":"Replaces manual `loop at screen` handling in PBO with direct calls to hide, disable or require screen fields and groups, set dropdown values for a list box, and show yes/no or yes/no/cancel confirmation popups.","sources":[{"url":"https://github.com/jrgkraus/abap-ui-tools","title":"jrgkraus/abap-ui-tools — README","checked":"2026-09-14","quote":"Instead of using `loop at screen.`, you can now use the following calls to influence on the screen behaviour."}]}],"requires":[{"ref":"artifact:abapify-throw","for":"The coding depends on ZCL_THROW to raise its exceptions, as the README states.","sources":[{"url":"https://github.com/jrgkraus/abap-ui-tools","title":"jrgkraus/abap-ui-tools — README","checked":"2026-09-14","quote":"The coding uses ![ZCL_THROW](https://github.com/abapify/throw), which depends on ![ZCL_ASSERTABLE_UNIT](https://github.com/abapify/assert)"}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"maintainers":["actor:jrgkraus"],"contributors":["actor:jrgkraus"]},"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":"good","evidence":"pushed 2026-04, 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":"fair","evidence":"README 2 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":10,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","majors":{},"license":null,"first_release":null,"last_release":null,"releases":0,"cadence_days":null,"maintainers":null,"repository":null,"repository_directory":null,"peer_cds":null,"dependencies":0,"node_engine":null,"test_script":false,"types":false,"downloads_weekly":null,"downloads_monthly":null,"stars":10,"forks":2,"open_issues":0,"archived":false,"pushed_at":"2026-04-01","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2025-03-13T08:22:23Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":2020,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-03-13","last_commit":"2026-04-01","commits":17,"contributors":1,"readme_path":"README.md","readme_sha":"64bbf976c9d0a55d06a789eebcdce1e4bae672cf","repo_read":"2026-10-24"},"edges":{"maintainers":[{"ref":"actor:jrgkraus","name":"Jörg Krause","json":"/actors/jrgkraus.json"}],"contributors":[{"ref":"actor:jrgkraus","name":"Jörg Krause","json":"/actors/jrgkraus.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}