{"ref":"capability:value-normalisation","page":"/capabilities/value-normalisation","json":"/capabilities/value-normalisation.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"value-normalisation","name":"Value normalisation","domain":"data-and-persistence","ecosystems":["cap"],"universal":true,"description":"Making stored values consistent regardless of how they were typed — trimming the padding, fixing the case — declared on the model rather than repeated in every handler that writes.","short":"Making stored values consistent regardless of how they were typed","core_coverage":{"state":"community-only","assessed_at":"2026-09-09","where_it_stops":"CAP validates on write and does not change what it stores. @assert.format will reject a value with a trailing space; nothing in the core removes it, so normalisation is a handler you write or a plugin you install.","note":"An ABAP-era expectation more than a modern one — conversion exits did this, and people arriving from that world look for it. Both entries here are annotation-driven and by the same vendor, which is a thin base to call this settled."},"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":null,"by_flavor":{"node":null,"java":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:neoimpulse-cap-js-trim","name":"@neoimpulse/cap-js-trim","json":"/artifacts/neoimpulse-cap-js-trim.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:neoimpulse-cap-js-uppercase","name":"@neoimpulse/cap-js-uppercase","json":"/artifacts/neoimpulse-cap-js-uppercase.json","ecosystem":"cap","origin_ring":"independent"}],"samples":[],"explained_by":[],"normative_context":[]}}