{"ref":"artifact:magpasulke-abap-string-interpreter","page":"/artifacts/magpasulke-abap-string-interpreter","json":"/artifacts/magpasulke-abap-string-interpreter.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"magpasulke-abap-string-interpreter","name":"ZASIS","artifact_type":"package","ecosystem":"abap","domain":"protocols-and-apis","origin_ring":"independent","use_as":"dependency","source_available":true,"flavors":[{"key":"abap-cloud","source":{"url":"https://github.com/MagPasulke/abap-string-interpreter","title":"MagPasulke/abap-string-interpreter — README","checked":"2026-10-26","quote":"The current release contains artifacts for both ABAP Cloud and on-premise installations."}},{"key":"standard-abap","source":{"url":"https://github.com/MagPasulke/abap-string-interpreter","title":"MagPasulke/abap-string-interpreter — README","checked":"2026-10-26","quote":"The current release contains artifacts for both ABAP Cloud and on-premise installations."}}],"description":{"one_line":"The ABAP String Interpreter: an ABAP component that reads named field values out of an unstructured string, such as a barcode or scanner payload, through regex RuleSets configured in a Fiori app and called from ABAP or over HTTP.","short":"Regex RuleSets that read barcode strings into named fields","what_it_solves":"Scanner and barcode payloads arrive as one string that packs several business values together, and the parsing code gets written again for every format. ZASIS keeps the parsing as configuration: a RuleSet is a named, ordered list of rule items, each one extracting a substring with a PCRE regex and offset trimming or performing a regex find-and-replace, and a caller gets one target field and result per rule item. Three access points reach the same engine: a Fiori Elements maintenance app with a Test RuleSet action, an ABAP API, and an HTTP REST endpoint. A rule item may hand its work to an ABAP class implementing `ZASIS_IF_CUSTOMLOGIC` where a regex does not reach. Callers can pass key/value context that is echoed back in the response and forwarded to custom logic and event producers, and every execution and maintenance activity is checked against the authorization object `ZASIS_GRL`. It needs SAP ABAP Platform 2023 / SAP BASIS 758 and is installed with [abapGit](artifact:abapgit-abapgit); the current release carries the artifacts for both ABAP Cloud and on-premise, with a split into separate release variants named as planned.","when_not_to_use":"The project states that until v1.0.0 is reached, breaking changes may occur without prior notice. Rule items do not chain: every rule operates on the original input string, so a format whose second step needs the result of the first needs a custom logic class. A REPLACE rule whose replacement produces the exact same string as the input is reported as `no match`, which the documentation records as a known limitation.","to_build_on_it":"The two extension points are ABAP interfaces registered in catalogs of their own: `ZASIS_IF_CUSTOMLOGIC` for extraction a regex cannot express, and `ZASIS_IF_EVENT_PRODUCER` for reacting to a result, each catalog entry carrying an Active or Deprecated status that governs whether a rule item may use it. The technical reference documents the package layout, testing, CI/CD and off-stack development, and the HTTP core is written against the project's own request and response interfaces so it can be exercised without an SAP runtime present."},"links":{"repo":"https://github.com/MagPasulke/abap-string-interpreter","docs":"https://github.com/MagPasulke/abap-string-interpreter/blob/main/docs/user/manual.md"},"maintainers":["actor:magpasulke"],"provides":[{"capability":"capability:serialisation","what_it_does":"Reads a raw string into named target fields through configured regex rule sets, so the mapping from a barcode or scanner payload to field values is maintained as data in the system and not written per format in ABAP.","sources":[{"url":"https://github.com/MagPasulke/abap-string-interpreter","title":"MagPasulke/abap-string-interpreter — README","checked":"2026-10-26","quote":"ZASIS extracts structured data from unstructured strings. You configure regex-based RuleSets, pass in a raw string (e.g. a barcode scan), and get back clean key/value pairs — no coding required per use case."},{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/user/manual.md","title":"ZASIS — User Manual","checked":"2026-10-26","quote":"Each rule maps to a **target field** (e.g. `MaterialNo`, `DeliveryNote`) and produces an extraction result."}]}],"requires":[{"ref":"artifact:abapgit-abapgit","for":"The installation path the project documents: the repository is pulled into the target system with abapGit, which the installation page lists as a prerequisite.","requirement":"required","basis":"binding","role":"installation","sources":[{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/technical/installation.md","title":"ZASIS — Installation","checked":"2026-10-26","quote":"[abapGit](https://docs.abapgit.org/user-guide/getting-started/install.html) installed in the target system"}]}],"interfaces":[{"key":"http-rest","kind":"api","protocol":"http","direction":"in","for":"Executing a RuleSet against a posted string and returning one result per rule item, published either as a cloud HTTP service or as a classic ICF node.","sources":[{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/user/manual.md","title":"ZASIS — User Manual","checked":"2026-10-26","quote":"ZASIS exposes the same HTTP API through two service variants:"},{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/user/manual.md","title":"ZASIS — User Manual","checked":"2026-10-26","quote":"Interprets the input string against all rules of the specified RuleSet and returns one result per rule item."}]},{"key":"abap-api","kind":"api","direction":"in","for":"Calls from ABAP in the same system: a factory loads a RuleSet by its id and the interpreter's `execute` method takes the string and optional context.","sources":[{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/user/manual.md","title":"ZASIS — User Manual","checked":"2026-10-26","quote":"ZASIS can be called directly from ABAP without going through HTTP."}]},{"key":"ruleset-maintenance-ui","kind":"ui","protocol":"odata-v4","direction":"in","for":"Maintaining RuleSets and rule items in a Fiori Elements application, and running a RuleSet against a sample string from it.","sources":[{"url":"https://raw.githubusercontent.com/MagPasulke/abap-string-interpreter/main/docs/user/manual.md","title":"ZASIS — User Manual","checked":"2026-10-26","quote":"RuleSets are managed via the **ZASIS Fiori application** (OData V4, exposed via SAP Launchpad or direct URL)."}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-26"},"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"3 contributors"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, 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":"good","evidence":"release-please green, 2026-10-26"}],"practice":[{"label":"Tests","tier":"good","evidence":"3 test files"},{"label":"Docs","tier":"good","evidence":"docs/ with 38 pages, docs site, README 4 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":17,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":17,"forks":1,"open_issues":16,"archived":false,"pushed_at":"2026-10-26","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2026-05-18T13:39:17Z","open_prs":2,"tree_truncated":false,"test_files":3,"workflows":5,"other_ci":false,"readme_bytes":3777,"docs_files":38,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-05-18","last_commit":"2026-10-26","commits":132,"contributors":3,"ci_status":"success","ci_run_at":"2026-10-26","ci_workflow":"release-please","ci_event":"push","readme_path":"README.md","readme_sha":"9daa16222989829b32ae03b140b48a0ac4f87ddb","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:magpasulke","name":"Philipp Dölker","json":"/actors/magpasulke.json"}],"contributors":[],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}