Apply Customizing Change
customizing_applyCopy or delete SM30 customizing rows through the standard maintenance engine with a dry run by default; set commit to apply and record changes on a transport.
Instructions
Copy or delete customizing rows through the in-system engine, which drives the SM30 maintenance-view runtime (VIEW_MAINTENANCE_SINGLE_ENTRY) so FK checks, events, change docs and transport recording all run the standard way. DRY RUN by default — returns the exact rows affected. Set commit: true to apply. Use it for one table or view; use org_copy to copy a whole org unit, customizing_create for new rows with no source row, and customizing_plan_change for a quick preview without the engine.
action: "copy" (default) — duplicate rows from sourceKey to targetKey. action: "delete" — remove the entry whose keyField = targetKey (sourceKey not needed), recording the deletion onto the transport like an SM30 delete.
Delivery class behaviour: C / G / E — customizing + control tables: transport-based write. Provide a transport when committing. A — application data (e.g. /POSDW/STORE): direct MODIFY + COMMIT, no transport recording (copy only). Do NOT pass a transport for class-A tables.
The engine enforces S_TABU_DIS authorization on the target table.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"table": "<table>",
"keyField": "<keyField>",
"targetKey": "<targetKey>"
},
"name": "customizing_apply"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name (e.g. /POSDW/PROF, /POSDW/STORE, TCURR, TVKO) | |
| action | No | "copy" (default) duplicates source→target; "delete" removes the targetKey entry via the SM30 runtime, recording the deletion to the transport. | |
| commit | No | Actually write (default: false = dry run) | |
| values | No | Field overrides applied to every planned row after the key swap, e.g. { NAME1: "Z Retail", WAERS: "EUR" }. With sourceKey = targetKey and onlyMissing: false this patches an existing row in place. | |
| icfPath | No | SICF path of the engine (default: /sap/bc/zmcp_cust) | |
| keyField | Yes | Key field (e.g. PROFILE, WERKS, BUKRS, VKORG, or the full key field for delete) | |
| workItem | No | Name of the piece of work (e.g. HPM, a ticket). Keeps using the same transport for it across calls and sessions until you pass another. | |
| sourceKey | No | Copy: source value (reference config). Not used for action: "delete". | |
| targetKey | Yes | Copy: target value to create. Delete: the key value of the entry to remove. | |
| transport | No | Existing open request to record into (the 'already chosen for this task' case — used as-is, no prompt). If omitted on a recorded commit and createTransport is not set, the tool returns an interactive prompt: the open Customizing requests to pick from PLUS the create options. | |
| autoDeploy | No | Auto-deploy/update the ABAP engine class if missing or outdated (default: true) | |
| onlyMissing | No | Only write rows absent from target (default: true) | |
| connectionId | No | SAP system connection ID | |
| transportText | No | Short description for the engine-created Customizing request (only used with createTransport: true). Omit to use an auto-generated text. | |
| createTransport | No | Create a NEW Customizing request at commit (only when you mean it; existing requests are preferred). Combine with transportText to name it. | |
| recordTransport | No | Record the write on a transport request (default: true for C/G/E). Set false for sandbox/test-data writes that should not be transported — transport must be omitted when false. | |
| showAllTransports | No | When prompting for a transport, list ALL users' open requests instead of only your own (default: false = your own). |