{"ref":"artifact:sap-samples-xsa-cap-migration","page":"/artifacts/sap-samples-xsa-cap-migration","json":"/artifacts/sap-samples-xsa-cap-migration.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-xsa-cap-migration","name":"xsa-cap-migration","artifact_type":"sample","ecosystem":"cap","domain":"operations-and-runtime","origin_ring":"sap-official","use_as":"reference","description":{"one_line":"A migration guide that moves the [hana-shine-xsa](artifact:sap-samples-hana-shine-xsa) demo application from the XS Advanced programming model to the Cloud Application Programming Model on [SAP HANA Cloud](artifact:btp-hana-cloud).","short":"Guide migrating the hana-shine-xsa demo from XS Advanced to CAP","what_it_solves":"A decision table lays out, artefact by artefact, what changes when an XS Advanced application moves to CAP: HDBCDS entities become CAP CDS and their identifiers are renamed in the source HDI container by a procedure the cds compiler's `toRename` generates, most native HDI artefacts carry over as is apart from table types, which need `.hdbtabletype` files, and XSJS has no CAP equivalent, so the guide says to rewrite it. The repository's `migration-script` automates the renaming and several of the file-by-file edits; the rest of the table is manual work the seven steps walk through, including two deployments to the source container, in `hdbcds` and then `hdbtable` format, before the container itself is migrated with Self-Service Migration for SAP HANA Cloud. Step 5 continues into the SRV and UI layers: xsodata and xsjs services are rewritten as CAP services, authentication and authorization follow the CAP documentation, and the UI5 code is reused once its OData routes and REST endpoints point at the CAP services. It is written from the [hana-shine-xsa](artifact:sap-samples-hana-shine-xsa) migration, and the guide notes that Fiori elements are not used in SHINE, so an annotation-based application needs further testing.","when_not_to_use":"Directed at single-tenant applications, which the guide states as its scope. The migration path it uses also has no option to select individual containers, so it migrates every container in the given space."},"links":{"repo":"https://github.com/SAP-samples/xsa-cap-migration"},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:platform-migration"],"requires":[{"ref":"artifact:sap-cds-dk","for":"creating the target CAP project and building it, which the steps do with `cds init`, `cds add hana` and `cds build --production`.","sources":[{"url":"https://github.com/SAP-samples/xsa-cap-migration","title":"SAP-samples/xsa-cap-migration — README, Requirements","checked":"2026-10-19","quote":"CDS development kit should be installed with the command `npm i -g @sap/cds-dk`"}]},{"ref":"artifact:sap-cds-compiler","for":"generating the rename procedure with `cdsc toRename`, which renames the existing HANA artefacts to the identifiers CAP expects.","sources":[{"url":"https://github.com/SAP-samples/xsa-cap-migration","title":"SAP-samples/xsa-cap-migration — README, Step-2.1","checked":"2026-10-19","quote":"Install the SAP cds-compiler globally with the command `npm i -g @sap/cds-compiler`."}]},{"ref":"artifact:btp-hana-cloud","for":"the target of the migration: the HDI container the SAP HANA 2.0 container is migrated to and the CAP application is then bound to.","sources":[{"url":"https://github.com/SAP-samples/xsa-cap-migration","title":"SAP-samples/xsa-cap-migration — README, Requirements","checked":"2026-10-19","quote":"Hana Cloud Service Instance should be created."}]},{"ref":"artifact:sap-hdi-deploy","for":"deploying the rename procedure, the access role and the CAP db module into the HDI container.","requirement":"conditional","condition":"the deployments are done with the HDI Deployer module; the guide names an MTA deployment as the alternative.","sources":[{"url":"https://github.com/SAP-samples/xsa-cap-migration","title":"SAP-samples/xsa-cap-migration — README, Requirements","checked":"2026-10-19","quote":"The deployments can be done either by using the `@sap/hdi-deploy` module or by using the MTA."}]}],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"contributors":["actor:i562818","actor:lalithmanokar","actor:priyankashivakumar","actor:veekshith-gandhi"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"7 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"8 test files"},{"label":"Docs","tier":"good","evidence":"README 33 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-25","npm":"not published under this name","stars":10,"forks":7,"open_issues":2,"archived":false,"pushed_at":"2026-06-03","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2023-08-10T11:26:03Z","open_prs":1,"tree_truncated":false,"test_files":8,"workflows":0,"other_ci":false,"readme_bytes":33339,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2023-08-10","last_commit":"2026-06-03","commits":66,"contributors":7,"readme_path":"README.md","readme_sha":"448b2b1d5a2932f040a6c1dbb9c57b0f1262e07b","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:lalithmanokar","name":"LalithManokar","json":"/actors/lalithmanokar.json"},{"ref":"actor:veekshith-gandhi","name":"NM Veekshith Gandhi","json":"/actors/veekshith-gandhi.json"},{"ref":"actor:priyankashivakumar","name":"Priyanka R S","json":"/actors/priyankashivakumar.json"},{"ref":"actor:i562818","name":"Sri Sai Lahari Gandrapu","json":"/actors/i562818.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}