{"ref":"capability:draft-handling","page":"/capabilities/draft-handling","json":"/capabilities/draft-handling.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"draft-handling","name":"Draft handling","domain":"ui-and-frontend-bridge","ecosystems":["cap"],"universal":false,"description":"Letting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.","short":"Editing a record over several requests before it becomes real","core_coverage":{"state":"core-and-community","what_core_does":"Draft-enabled entities with activation, discard and locking handled by the runtime. A draft-enabled entity has a drafts twin in the model, draft-specific events NEW, EDIT, PATCH, SAVE and DISCARD to handle, and locks with a timeout.","where_it_stops":"It stops at one editor at a time. Locking is exclusive by design, so collaborative editing — several people in the same draft — is a separate problem the community has taken on.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/fiori#draft-support","title":"Serving Fiori UIs — draft support","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/fiori","title":"Fiori Support (Node.js) — capire","checked":"2026-09-27","quote":"Draft-enabled entities have corresponding CSN entities for drafts"}],"assessed_at":"2026-09-27","relationship":"narrow-by-design"},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"left-open-on-purpose","to":"core-and-community","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27: a page this capability owns was cited nowhere."},{"date":"2026-10-17","field":"description","from":"Letting a user edit a record over several requests before it becomes real — draft activation, locking, and the semantics Fiori elements expects.","to":"Letting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit."}],"drafted_with_ai":true,"framing_by_ecosystem":{"cap":{"description":"Letting a user edit a record over several requests before it becomes real — draft activation, locking, and the semantics Fiori elements expects."}}},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-cds-fiori","name":"@sap/cds-fiori","json":"/artifacts/sap-cds-fiori.json"}]},"by_flavor":{"node":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-cds-fiori","name":"@sap/cds-fiori","json":"/artifacts/sap-cds-fiori.json"}]},"java":{"built_in":[{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[]}}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:rizing-cds-extension","name":"@rizing/cds-extension","json":"/artifacts/rizing-cds-extension.json","ecosystem":"cap","origin_ring":"partner"},{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:sap-cds-fiori","name":"@sap/cds-fiori","json":"/artifacts/sap-cds-fiori.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:sleibach-cap-collaborative-draft","name":"cap-collaborative-draft","json":"/artifacts/sleibach-cap-collaborative-draft.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:mubuntu-cap-handler-framework","name":"cap-handler-framework","json":"/artifacts/mubuntu-cap-handler-framework.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json","ecosystem":"cap","origin_ring":"sap-official"}],"samples":[{"ref":"artifact:gregorwolf-bookshop-demo","name":"bookshop-demo","json":"/artifacts/gregorwolf-bookshop-demo.json"},{"ref":"artifact:miyasuta-cap-defaultvalue-function","name":"cap-defaultvalue-function","json":"/artifacts/miyasuta-cap-defaultvalue-function.json"},{"ref":"artifact:miyasuta-cap-fe-massedit","name":"cap-fe-massedit","json":"/artifacts/miyasuta-cap-fe-massedit.json"},{"ref":"artifact:miyasuta-cap-java-draft-composition-delete","name":"cap-java-draft-composition-delete","json":"/artifacts/miyasuta-cap-java-draft-composition-delete.json"},{"ref":"artifact:miyasuta-fiori-inline-edit","name":"fiori-inline-edit","json":"/artifacts/miyasuta-fiori-inline-edit.json"},{"ref":"artifact:sap-samples-ui5-cap-event-app","name":"SAP-samples/ui5-cap-event-app","json":"/artifacts/sap-samples-ui5-cap-event-app.json"}],"explained_by":[{"ref":"content:devtoberfest-2026-rap-draft-handling","name":"What's new with draft handling in RAP?","json":"/content/devtoberfest-2026-rap-draft-handling.json"},{"ref":"content:cap-foundry-engineering-sap-cap-applications-from-business-intent-with-guardrail","name":"CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AI","json":"/content/cap-foundry-engineering-sap-cap-applications-from-business-intent-with-guardrail.json"},{"ref":"content:reading-between-the-lines-under-documented-fiori-elements-capabilities-in-sapui5","name":"Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149","json":"/content/reading-between-the-lines-under-documented-fiori-elements-capabilities-in-sapui5.json"},{"ref":"content:custom-handlers-for-draft-enabled-entities-in-sap-cap","name":"Custom Handlers for Entities in SAP CAP","json":"/content/custom-handlers-for-draft-enabled-entities-in-sap-cap.json"},{"ref":"content:a-simple-example-of-a-sap-rap-application-based-on-legacy-api-without-uuid-keys","name":"A simple example of a SAP RAP Application based on Legacy API without UUID keys","json":"/content/a-simple-example-of-a-sap-rap-application-based-on-legacy-api-without-uuid-keys.json"},{"ref":"content:keep-the-core-clean-with-rizing-cdsx","name":"Keep the Core Clean with Rizing CDSX","json":"/content/keep-the-core-clean-with-rizing-cdsx.json"},{"ref":"content:efficient-data-entry-in-sap-fiori-elements-applications","name":"How to ensure that users can efficiently enter data in SAP Fiori elements applications","json":"/content/efficient-data-entry-in-sap-fiori-elements-applications.json"},{"ref":"content:messaging-system-for-odata-error-warning-and-information-messages","name":"Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client Applications","json":"/content/messaging-system-for-odata-error-warning-and-information-messages.json"},{"ref":"content:extend-sap-successfactors-on-sap-btp-with-cap-create-the-cap-service","name":"Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP Service","json":"/content/extend-sap-successfactors-on-sap-btp-with-cap-create-the-cap-service.json"},{"ref":"content:ui5ers-buzz-56-full-stack-ui5-sample-app-with-cap-odata-v4-and-draft","name":"UI5ers Buzz #56: New full-stack UI5 sample app featuring CAP + OData V4 + draft mode","json":"/content/ui5ers-buzz-56-full-stack-ui5-sample-app-with-cap-odata-v4-and-draft.json"}],"normative_context":[]}}