Skip to main content
Glama
Hollway

mcp-abap-abap-adt-api

by Hollway

setDataElementProperties

Update an existing DDIC data element by changing its labels, type, domain, length, or other properties. Writes an inactive version; optionally activates it or uses a transport request.

Instructions

Change the definition of an existing DDIC data element. The backend PUT replaces the whole definition, so anything not passed is kept as the system has it. The type is either a domain or a built-in ABAP type, not both. The lock is taken and released here unless you pass a handle or this server already holds one; outside $TMP a transport request is needed. Writes the inactive version - pass activate to finish the job, or run activateSafe afterwards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoData element name.
labelNoFills all four field labels at once. Each is cut to the length SAP allows (10/20/40/55) and the answer says which were cut.
domainNoDomain the element takes its type from, e.g. ZAPP_STATUS. Alternative to dataType.
lengthNoLength, for a built-in type.
activateNoActivate after the write (default false). Only possible when this tool took the lock itself - activation is refused while a session holds one.
dataTypeNoBuilt-in ABAP type for an element without a domain, e.g. CHAR, NUMC, DEC. Alternative to domain.
decimalsNoDecimal places, for a built-in type.
metaDataNoEscape hatch: the complete DataElementMetaData document, sent as it is with no merge.
longLabelNoLong label, up to 40 characters.
transportNoTransport request number - the request itself, not a developer task.
lockHandleNoLock handle. Omit it: the one this server holds for the object is used, and with none held the lock is taken and released here.
propertiesNoEscape hatch: the complete DataElementProperties document, sent as it is with no merge.
searchHelpNoSearch help name.
shortLabelNoShort label, up to 10 characters.
descriptionNoShort description.
mediumLabelNoMedium label, up to 20 characters.
headingLabelNoHeading, up to 55 characters.
changeDocumentNoLog changes in change documents.
dataElementUrlNoObject URL instead of the name.
setGetParameterNoSET/GET parameter id.
searchHelpParameterNoSearch help parameter.
defaultComponentNameNoDefault component name.
leftToRightDirectionNoLeft-to-right direction.
deactivateInputHistoryNoSwitch off the input history.
deactivateBIDIFilteringNoSwitch off BIDI filtering.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (which only state readOnlyHint=false and destructiveHint=false), the description discloses key behaviors: PUT replaces the whole definition (though unspecified fields are preserved), the type must be either a domain or built-in, the locking lifecycle, the transport requirement outside $TMP, and the fact that an inactive version is written and requires activation. This is rich, non-redundant behavioral information.

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

Conciseness5/5

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

The description is a compact paragraph of four sentences, each conveying essential information without redundancy. It is front-loaded with the core purpose and then systematically addresses semantics, constraints, locking, and activation, all in a logical order.

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

Completeness5/5

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

Given the tool's complexity (25 parameters, no required fields, two escape hatches), the description, combined with the fully-annotated schema, provides everything an agent needs to invoke it correctly. It covers the critical system behaviors (PUT semantics, locking, transport, activation) and relies on the schema for parameter-level detail. No essential context is missing.

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

Parameters4/5

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

With 100% schema description coverage, the schema already documents all parameters. The description adds value by clarifying relationships: domain vs dataType exclusivity, lockHandle behavior with the server-held lock, and transport necessity. It does not cover every parameter, but the most impactful relationships are explained, exceeding the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb ('Change'), the resource ('the definition of an existing DDIC data element'), and distinguishes it from creation and retrieval tools. It also adds critical semantic detail about the PUT semantics and the exclusivity of type sources, making the tool's scope unambiguous.

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

Usage Guidelines4/5

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

The description provides context on when to use the tool (for existing elements, with lock and transport requirements) and mentions an alternative activation path ('run activateSafe afterwards'). It does not explicitly name sibling tools like createDataElement or getDataElementProperties, but the phrasing implies the distinction clearly enough for an agent.

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

Deploy Server

Other Tools