Skip to main content
Glama
bw-modeling-mcp

bw-modeling-mcp

by dnic-dev

bw_write_dtp

Create, update, or configure a Data Transfer Process, including filters, filter routines, extraction modes, and batch/error-handling settings, for SAP BW/4HANA modeling.

Instructions

Create or change a DTP, including its filters and a filter routine. The operation enum lists every operation with what it requires; bw_describe(tool: "bw_write_dtp", operation: "…") gives the complete parameter definition of one.

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": {
      "operation": "<operation>"
    },
    "name": "bw_write_dtp"
  }
}

Input Schema

NameRequiredDescriptionDefault
packageNoDevelopment package (default "$TMP"). [create]
dtp_nameNoDefined per operation — bw_describe(tool: "bw_write_dtp", operation: "…") gives each definition. [update, set_filter_routine]
operationYesOperation — one of: create: Create a new DTP (Data Transfer Process) for an existing Transformation and activate it. Requires trfn_name, source_name, source_type, target_name, target_type. | update: Update DTP properties: description, the value selection of one filter field, extraction mode (Full vs Delta), and/or the semantic group. Requires dtp_name. | set_filter_routine: Set an ABAP filter routine on a DTP filter field. Requires dtp_name, field_name, routine_code.
transportNoTransport request number. [update]
trfn_nameNoTechnical name of the existing Transformation (UUID-like key). [create]
field_nameNoFilter field name as it appears in the DTP XML fields element. [set_filter_routine]
batch_classNoBatch manager: job priority (class A, B or C). [update]
descriptionNoDefined per operation — bw_describe(tool: "bw_write_dtp", operation: "…") gives each definition. [create, update]
global_codeNoOptional global declarations for the routine. [set_filter_routine]
server_nameNoBatch manager: the server group or host name for server_type "group" or "host"; an empty string clears it. [update]
server_typeNoBatch manager: where the parallel jobs run; with "group" or "host", pass server_name. [update]
source_nameNoSource object name (e.g. [create]
source_typeNog. [create]
target_nameNoTarget object name (e.g. [create]
target_typeNoTarget object type (e.g. [create]
trfn_name_2NoOptional second transformation in a multi-step chain. [create]
filter_fieldNoFilter field to set. Use the exact field name from bw_get_dtp; a name that does not exist is rejected. Requires filter_value or filter_selections. [create, update]
filter_valueNoOne or more values for an Equal selection, comma-separated (e.g. Full definition: bw_describe(tool: "bw_write_dtp", operation: "create"). [create, update]
package_sizeNoExtraction: package size in records (at least 1). [update]
routine_codeNoABAP routine code (plain text, without FORM/ENDFORM wrapper). [set_filter_routine]
source_systemNoSource system name of the DataSource. [create]
track_recordsNoError handling: track records after a failed request. [update]
hana_executionNoRuntime: execute the DTP in SAP HANA. [update]
extraction_modeNoSwitch the DTP extraction mode. [update]
level_of_detailNoRuntime: level of detail of the temporary storage (trace by package, erroneous records, or by record). [update]
filter_excludingNoIf true, all values of filter_value are excluded instead of included. Default false. Applies to filter_value only; filter_selections carries a sign per entry. [create, update]
request_handlingNoError handling: what happens to a request with errors. [update]
filter_selectionsNoFull selection vocabulary for one filter field, equivalent to an ABAP RANGE table. Full definition: bw_describe(tool: "bw_write_dtp", operation: "create"). [create, update]
parallel_processesNoBatch manager: number of parallel processes (1..99). [update]
filter_clear_fieldsNoComma-separated list of field names whose value selections are removed. [update]
only_get_delta_onceNoRequest selection, delta only: only get the delta once (DELTAONLYONCE). [update]
parallel_extractionNoExtraction: extract data packages in parallel. [update]
semantic_group_fieldsNoComma-separated list of field names that form the semantic group (e.g. [update]
target_object_subtypeNoInfoObject sub-object to load into. [create]
transport_lock_holderNoTransport lock holder. [update]
overall_request_statusNoExecution: how the overall request status is set. [update]
delta_init_without_dataNoRequest selection, delta only: perform the delta initialization without data transfer (INITSIMU). [update]
technical_request_statusNoExecution: technical status of a request with warnings. [update]
extract_all_green_requestsNoRequest selection: extract all green requests (ignore the overall status). [update]
only_retrieve_last_requestNoRequest selection: only retrieve the last request (ONLYLASTREQUEST). [update]
number_of_errors_per_packageNoError handling: maximum number of errors per package before the request is cancelled. [update]
retrieve_until_no_more_new_dataNoRequest selection: retrieve until no more new data (FETCHUNTILEOF). [update]
get_all_new_data_request_by_requestNoRequest selection, delta only: get all new data request by request (SINGLEREQUEST). [update]
repeat_red_requests_in_process_chainNoExecution: automatically repeat red requests when the DTP runs in a process chain. [update]

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden, yet it only restates that DTPs can be created or changed. It does not mention that create also activates the DTP, that changes may require a transport, whether operations are reversible, or what happens to existing filter settings not named in the call. Nearly all behavioral detail lives in the schema's bracketed operation tags rather than in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the capability statement front-loaded and the discovery pointer second; nothing is redundant. It is arguably over-lean for a 44-parameter write tool, but it is efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a large multi-operation write tool with no annotations and no output schema, the description is minimally adequate: it names the resource and defers to the enum and bw_describe. It omits mutation consequences, transport/permission needs, and any indication of what a call returns, which an agent calling a write tool would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and 44 parameters are each tagged with their applicable operation, so the schema does the heavy lifting; the description only points at it. It adds no meaning of its own beyond recommending bw_describe for full definitions, which is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb pair and resource: 'Create or change a DTP, including its filters and a filter routine.' That covers all three operations in the enum without opening the schema. It does not explicitly contrast itself with look-alike siblings such as bw_write_transformation, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent how to discover per-operation requirements (read the operation enum, or call bw_describe with a specific operation), which is real usage guidance. It gives no when-to-use vs. when-not guidance, no prerequisites (e.g. an existing transformation), and no warnings about which operations are destructive, leaving the choice implied by the enum text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.