{"ref":"artifact:spreadsheetimporter-sample-odata-api-upload","page":"/artifacts/spreadsheetimporter-sample-odata-api-upload","json":"/artifacts/spreadsheetimporter-sample-odata-api-upload.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"spreadsheetimporter-sample-odata-api-upload","name":"spreadsheetimporter/sample-odata-api-upload","artifact_type":"sample","ecosystem":"ui5","use_as":"starting-point","domain":"data-and-persistence","origin_ring":"community-org","description":{"one_line":"A UI5 app that lists an on-premise system's OData services from the Gateway catalogue, takes one of their entity sets and opens the Spreadsheet Importer against it at runtime.","short":"UI5 app opening the Spreadsheet Importer on on-premise OData services","what_it_solves":"Reads the Gateway catalogue service at /sap/opu/odata/IWFND/catalogservice;v=2/, lists the services it returns and then the entity sets of the one selected, builds a table from that entity type's properties, and opens [ui5-cc-spreadsheetimporter](artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter) against it, so the upload target is chosen while the app runs rather than written into it. The organisation's other examples wire the component to one table in one app; here the OData V2 model is built from whichever service is picked, and columns are named only for the GWSAMPLE_BASIC sales order set, the target the repository's GWSAMPLE_BASIC_SalesOrderSet.xlsx matches. It runs against a system you can already reach instead of deploying anywhere: [ui5-middleware-simpleproxy](artifact:ui5-community-ui5-middleware-simpleproxy) forwards /sap/opu/odata/ to a base URI with the user and password read from .env and sap-client 001 in the query. The README is the [ui5-typescript-helloworld](https://github.com/SAP-samples/ui5-typescript-helloworld) template's, so what the app does is in webapp/manifest.json, Main.view.xml and the Main controller rather than in its documentation."},"links":{"repo":"https://github.com/spreadsheetimporter/sample-odata-api-upload"},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://github.com/spreadsheetimporter/sample-odata-api-upload","title":"spreadsheetimporter/sample-odata-api-upload — README","checked":"2026-10-18","quote":"A UI5 app that lists an on-premise system's OData services, takes one of their entity sets and opens the Spreadsheet Importer against it."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:data-import-export"],"requires":[{"ref":"artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter","for":"The dialog the Excel Upload button opens is the component's own: the app declares it as the component usage spreadsheetImporter and its Main controller creates that usage before calling openSpreadsheetUploadDialog.","requirement":"required","sources":[{"url":"https://raw.githubusercontent.com/spreadsheetimporter/sample-odata-api-upload/main/webapp/manifest.json","title":"spreadsheetimporter/sample-odata-api-upload — webapp/manifest.json","checked":"2026-09-25","quote":"\"name\": \"cc.spreadsheetimporter.v1_2_0\""},{"url":"https://raw.githubusercontent.com/spreadsheetimporter/sample-odata-api-upload/main/package.json","title":"spreadsheetimporter/sample-odata-api-upload — package.json","checked":"2026-09-25","quote":"\"ui5-cc-spreadsheetimporter\": \"^1.7.4\""}]}],"provenance":{"discovered_via":[{"source":"source:curator","channel":"spreadsheetimporter organisation repositories"}],"first_seen":"2026-09-25"},"drafted_with_ai":true,"maintainers":["actor:spreadsheetimporter"],"contributors":["actor:marianfoo"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"1 contributor, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-04, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"9 test files"},{"label":"Docs","tier":"fair","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":1,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":1,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-04-10","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2024-09-11T19:20:13Z","open_prs":0,"tree_truncated":false,"test_files":9,"workflows":0,"other_ci":false,"readme_bytes":4049,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2024-09-11","last_commit":"2026-04-10","commits":3,"contributors":1,"readme_path":"README.md","readme_sha":"d54f2c7e92713098c5ead41398dede53c0a4ee8d","repo_read":"2026-10-24"},"edges":{"maintainers":[{"ref":"actor:spreadsheetimporter","name":"Spreadsheet Importer","json":"/actors/spreadsheetimporter.json"}],"contributors":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}