Skip to main content
Glama

UpdateLocalTestClass

Writes local test class source code into an ABAP class include under lock, optionally activating the parent class after the update.

Instructions

Writes test_class_code as the local test classes include of the ABAP class named by class_name. The include is written under the class lock; with activate_on_update the class is activated. Runs outside batch mode.

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": {
      "class_name": "<class_name>",
      "test_class_code": "<test_class_code>"
    },
    "name": "UpdateLocalTestClass"
  }
}

Input Schema

NameRequiredDescriptionDefault
detailNoHow much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it).terse
class_nameYesParent class name.
test_class_codeYesUpdated source code for the local test class.
transport_requestNoTransport request number (required for transportable objects), not a task.
activate_on_updateNoActivate parent class after updating test class. Default: false

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv16.0.0
    • changedInput schema / properties / class_name / description
      Previous value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name."
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "terse",
      +  "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).",
      +  "enum": [
      +    "terse",
      +    "full",
      +    "raw"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / transport_request / description
      Previous value: -"Transport request number (required for transportable objects)."New value: +"Transport request number (required for transportable objects), not a task."
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful traits: the include is written 'under the class lock' (concurrency behavior) and activate_on_update triggers activation of the parent class. It stops short of covering permissions, transport requirements (the schema has transport_request), or whether the write replaces the entire include.

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?

Three short sentences, front-loaded with the action and resource; the lock/activation/batch facts each earn their place. The final fragment 'Runs outside batch mode' is slightly cryptic but not wasteful.

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 mutation tool with no annotations and no output schema, the description covers key behaviors (locking, optional activation, batch-mode restriction) but leaves the return value and transport handling unexplained. Adequate but with clear gaps an agent must infer.

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%, so the baseline is 3. The description adds meaning for activate_on_update and class_name, but says nothing about test_class_code semantics (full replacement vs merge), transport_request, or detail.

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 ('Writes') and a precise resource ('test_class_code as the local test classes include of the ABAP class named by class_name'), which clearly separates it from siblings like UpdateLocalTypes or UpdateClass. It never explicitly names an alternative, so it falls short of the 5 benchmark for sibling differentiation.

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?

Usage is implied by the purpose (update a class's local test-class include), and the note 'Runs outside batch mode' adds a real environmental constraint. However, it never states when to prefer this over UpdateClass/UpdateLocalTypes or what prerequisites exist, so guidance is implied rather than explicit.

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