{"ref":"artifact:sap-samples-teched2025-dt261","page":"/artifacts/sap-samples-teched2025-dt261","json":"/artifacts/sap-samples-teched2025-dt261.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-teched2025-dt261","name":"SAP-samples/teched2025-DT261","artifact_type":"sample","ecosystem":"abap","flavors":[{"key":"abap-cloud","source":{"url":"https://github.com/SAP-samples/teched2025-DT261","title":"SAP-samples/teched2025-DT261 — README","checked":"2026-09-13","quote":"Build on-stack extensions with ABAP Cloud in SAP Cloud ERP"}}],"use_as":"starting-point","domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"A TechEd 2025 workshop that extends an SAP-delivered RAP business object with validations, a new field and a custom action, without touching the original.","short":"TechEd 2025 workshop extending an SAP-delivered RAP business object","what_it_solves":"RAP extensibility lets a consumer add behaviour and data-model elements to a business object its provider has explicitly opened through dedicated extension points, and an extension can only define behaviour for the elements it adds, never override the original. The three exercises extend a pre-generated base business object in that order: determinations, validations and side effects in exercise one, an added CDS field in exercise two, and a custom action on that new field in exercise three, since an action added via extension must follow the field it acts on."},"links":{"repo":"https://github.com/SAP-samples/teched2025-DT261"},"type_properties":{"form":{"value":"workshop","sources":[{"url":"https://github.com/SAP-samples/teched2025-DT261","title":"SAP-samples/teched2025-DT261 — README","checked":"2026-10-18","quote":"This repository contains the material for the SAP TechEd 2025 session **DT261 - Build on-stack extensions with ABAP Cloud in SAP Cloud ERP**."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:abap-extensibility"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:ajaysoreng","actor:ajinkyapatil8190","actor:anfisc","actor:carinetd","actor:ibraeuninger","actor:volkerdrees"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"6 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, 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":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 7 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":11,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":11,"forks":6,"open_issues":0,"archived":false,"pushed_at":"2026-09-03","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2025-08-07T11:52:57Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":6977,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-08-07","last_commit":"2026-09-03","commits":65,"contributors":6,"readme_path":"README.md","readme_sha":"2f089da6d73bacd6fbe03de3ba44cb735f4d66d4","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:ajaysoreng","name":"Ajay Soreng","json":"/actors/ajaysoreng.json"},{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:anfisc","name":"Andre Fischer","json":"/actors/anfisc.json"},{"ref":"actor:carinetd","name":"Carine Tchoutouo Djomo","json":"/actors/carinetd.json"},{"ref":"actor:ibraeuninger","name":"Ingo Bräuninger","json":"/actors/ibraeuninger.json"},{"ref":"actor:volkerdrees","name":"Volker Drees","json":"/actors/volkerdrees.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}