{"ref":"content:joule-studio-cap","page":"/content/joule-studio-cap","json":"/content/joule-studio-cap.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"joule-studio-cap","title":"Joule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみた","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/joule-studio%E3%81%8C%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%95%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%A7%E6%97%A9%E9%80%9Fcap%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E3%81%A7%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%B9%E3%82%AD%E3%83%AB%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/ba-p/14166464","content_type":"blog","published_on":"source:sap-community","explains":["artifact:sap-joule-studio","capability:generators","capability:authorization","capability:authentication","capability:deployment"],"summary":"A walkthrough of building a custom [Joule Studio](artifact:sap-joule-studio) skill on a CAP bookshop app: `cds add sample` and `cds add mta` scaffold the project and its deployment descriptor, `cds compile srv/ --to xsuaa` generates the role template behind the `@requires: 'admin'` check on AdminService from the [SAP Authorization and Trust Management service](artifact:btp-authorization-and-trust-management) (XSUAA), and `mbt build` packages the app for deployment to the [SAP BTP, Cloud Foundry Runtime](artifact:btp-cloud-foundry-runtime). The skill reaches the deployed [OData](capability:odata) API through the [SAP Destination service](artifact:btp-destination), configured with the OAuth2 Client Credentials grant using the client ID, secret and token endpoint from the app's XSUAA service key, so Joule answers a natural-language question about a book by its ID.","author":"takayuki_tanaka","published":"2025-07-30","provenance":{"discovered_via":[{"source":"source:sap-community","channel":"joule-tag"}],"first_seen":"2026-10-26"},"drafted_with_ai":true},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"fair","evidence":"published 15 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2025-07-30"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":null,"unit":"views"},{"value":null,"unit":"comments"},{"value":null,"unit":"likes"}]},"signals":null,"series":null,"edges":{"authors":[]}}