Skip to main content
Glama
test-config.yaml.templateâ€ĸ31.8 kB
# Template for MCP ABAP ADT test configuration # Copy this file to test-config.yaml and fill in real values before running tests # # Tests are organized in groups with dependencies: # 1. Transport -> 2. Package -> 3. Create -> 4. Update -> 5. Get -> 6. Delete # Each object type uses the same object name across all operations # ============================================================================ # TEST SETTINGS # ============================================================================ test_settings: fail_fast: false verbose: true retry_on_failure: false max_retries: 1 cleanup_after_test: false # Timeout configuration (in milliseconds) # Can be overridden per operation type or per specific handler timeouts: default: 10000 # Default timeout for all operations (10 seconds) # Operation-specific timeouts (low-level atomic operations) create: 10000 # Create empty object (fast) read: 10000 # Read object metadata/source (fast) check: 10000 # Syntax check (fast) lock: 10000 # Lock object (fast) unlock: 10000 # Unlock object (fast) update: 15000 # Update object content (medium - can be slower) activate: 15000 # Activate object (medium - can be slower) delete: 10000 # Delete object (fast) # Handler-specific timeout overrides (optional) # Uncomment and adjust if specific handlers need different timeouts # create_class: 12000 # update_domain: 20000 # ============================================================================ # GROUP 1: TRANSPORT MANAGEMENT # ============================================================================ # Step 1: Create transport request (used by all subsequent tests) create_transport: test_cases: - name: "workbench_transport" enabled: true description: "Create a workbench transport request (required for package and transportable objects)" params: transport_type: "workbench" description: "Test transport created via MCP for test suite" owner: "<YOUR_RESPONSIBLE_USER>" # âš ī¸ UPDATE WITH YOUR USERNAME (e.g., CB9980002377) # target_system: "<YOUR_TARGET>" # Optional: if not provided or empty, uses "LOCAL" # Step 2: Get transport (read created transport) get_transport: test_cases: - name: "created_transport" enabled: true description: "Retrieve transport created by create_transport test" params: transport_number: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport include_objects: true include_tasks: true # ============================================================================ # GROUP 2: PACKAGE MANAGEMENT # ============================================================================ # Step 1: Create package (uses transport from GROUP 1) create_package: test_cases: - name: "test_package" enabled: true description: "Create test package (used by all object creation tests)" params: package_name: "<YOUR_PACKAGE_NAME>" description: "Test package created via MCP for test suite" super_package: "<YOUR_SUPER_PACKAGE>" # Use ZLOCAL OR $TMP for local packages package_type: "development" responsible: "<YOUR_RESPONSIBLE_USER>" # âš ī¸ UPDATE WITH YOUR USER ID (e.g., CB9980002377) # software_component: "<YOUR_SOFTWARE_COMPONENT>" # Optional - omit for local packages # transport_layer: "<YOUR_TRANSPORT_LAYER>" # Optional - omit for local packages # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Optional - omit for local packages application_component: "" # Step 2: Get package (read created package) get_package: test_cases: - name: "test_package" enabled: true params: package_name: "<YOUR_PACKAGE_NAME>" # ============================================================================ # GROUP 3: DOMAIN - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_DOMAIN_NAME> (used in all domain tests) # Uses: package "<YOUR_PACKAGE_NAME>" + transport from GROUP 1 # Step 1: Create domain create_domain: test_cases: - name: "test_domain" enabled: true description: "Create test domain (used in subsequent domain tests)" params: domain_name: "<YOUR_DOMAIN_NAME>" description: "Test domain created via MCP" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport datatype: "CHAR" length: 50 decimals: 0 lowercase: false sign_exists: false # Step 2: Update domain update_domain: test_cases: - name: "test_domain" enabled: true description: "Update test domain created in create_domain" params: domain_name: "<YOUR_DOMAIN_NAME>" description: "Updated test domain description" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport datatype: "CHAR" length: 60 decimals: 0 lowercase: false sign_exists: false # Step 3: Get domain get_domain: test_cases: - name: "test_domain" enabled: true params: domain_name: "<YOUR_DOMAIN_NAME>" # Step 4: Delete domain (will be added to delete_object group) # ============================================================================ # GROUP 4: DATA ELEMENT - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_DATA_ELEMENT_NAME> (used in all data element tests) # Uses: domain "<YOUR_DOMAIN_NAME>" + package "<YOUR_PACKAGE_NAME>" + transport # Step 1: Create data element create_dataElement: test_cases: - name: "test_data_element" enabled: true description: "Create test data element (uses domain from GROUP 3)" params: data_element_name: "<YOUR_DATA_ELEMENT_NAME>" description: "Test data element created via MCP" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport domain_name: "<YOUR_DOMAIN_NAME>" # Uses domain from GROUP 3 data_type: "CHAR" length: 50 decimals: 0 short_label: "TestLbl" medium_label: "Test Field" field_label_long: "Test Field Long Label" field_label_heading: "Test Heading" # Step 2: Update data element update_dataElement: test_cases: - name: "test_data_element" enabled: true description: "Update test data element created in create_data_element" params: data_element_name: "<YOUR_DATA_ELEMENT_NAME>" description: "Updated MCP data element" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport type_kind: "domain" type_name: "<YOUR_DOMAIN_NAME>" field_label_short: "Upd Test" field_label_medium: "Updated Test Field" field_label_long: "Updated Test Field Long Label" field_label_heading: "Updated Test Heading" # Step 3: Get data element get_data_element: test_cases: - name: "test_data_element" enabled: true params: data_element_name: "<YOUR_DATA_ELEMENT_NAME>" # Step 4: Delete data element (will be added to delete_object group) # ============================================================================ # GROUP 5: CLASS - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_CLASS_NAME> (used in all class tests) # Uses: package "<YOUR_PACKAGE_NAME>" + transport # Step 1: Create class create_class: test_cases: - name: "test_class" enabled: true description: "Create test class (used in subsequent class tests)" params: class_name: "<YOUR_CLASS_NAME>" description: "Test ABAP Class created via MCP ABAP ADT" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport superclass: "" final: false abstract: false create_protected: false source_code: | CLASS <YOUR_CLASS_NAME> DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS: constructor. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS <YOUR_CLASS_NAME> IMPLEMENTATION. METHOD constructor. " Initialization logic here WRITE: / 'Class instance created'. ENDMETHOD. ENDCLASS. # Step 2: Update class source update_class: test_cases: - name: "test_class" enabled: true description: "Update test class created in create_class" params: class_name: "<YOUR_CLASS_NAME>" activate: true source_code: | CLASS <YOUR_CLASS_NAME> DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS: constructor, get_message RETURNING VALUE(rv_message) TYPE string. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS <YOUR_CLASS_NAME> IMPLEMENTATION. METHOD constructor. " Updated initialization logic WRITE: / 'Class instance created - UPDATED'. ENDMETHOD. METHOD get_message. rv_message = 'Updated message from MCP test'. ENDMETHOD. ENDCLASS. # Step 3: Lock/unlock class lock_class: test_cases: - name: "test_class" enabled: true description: "Lock and unlock test class" params: class_name: "<YOUR_CLASS_NAME>" # Step 4: Get class get_class: test_cases: - name: "test_class" enabled: true params: class_name: "<YOUR_CLASS_NAME>" # Step 4: Delete class delete_class: test_cases: - name: "test_class" enabled: true description: "Delete test class (cleanup)" params: object_name: "<YOUR_CLASS_NAME>" object_type: "CLAS/OC" package_name: "<YOUR_PACKAGE_NAME>" # Step 5: Run class (for classes that implement if_oo_adt_classrun) run_class: test_cases: - name: "runnable_class" enabled: true description: "Create and run a class that implements if_oo_adt_classrun interface" params: class_name: "<YOUR_RUNNABLE_CLASS_NAME>" description: "Test runnable ABAP Class via MCP ABAP ADT" package_name: "<YOUR_PACKAGE_NAME>" runnable: true source_code: | CLASS <YOUR_RUNNABLE_CLASS_NAME> DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS <YOUR_RUNNABLE_CLASS_NAME> IMPLEMENTATION. METHOD if_oo_adt_classrun~main. out->write( 'Hello from ADT Class Run!' ). out->write( |System time: { cl_abap_context_info=>get_system_time( ) }| ). out->write( 'Test runnable class executed successfully' ). ENDMETHOD. ENDCLASS. # ============================================================================ # GROUP 6: PROGRAM - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_PROGRAM_NAME> (used in all program tests) # Uses: package "<YOUR_PACKAGE_NAME>" + transport # Step 1: Create program create_program: test_cases: - name: "test_program" enabled: true description: "Create test program (used in subsequent program tests)" params: program_name: "<YOUR_PROGRAM_NAME>" description: "Test ABAP Program created via MCP ABAP ADT" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport program_type: "1" application: "*" source_code: | *&---------------------------------------------------------------------* *& Report <YOUR_PROGRAM_NAME> *& Test ABAP Program created via MCP ABAP ADT *&---------------------------------------------------------------------* REPORT <YOUR_PROGRAM_NAME>. START-OF-SELECTION. WRITE: / 'Program <YOUR_PROGRAM_NAME> executed successfully.'. WRITE: / 'Created via MCP ABAP ADT API.'. # Step 2: Update program source update_program_source: test_cases: - name: "test_program" enabled: true description: "Update test program created in create_program" params: program_name: "<YOUR_PROGRAM_NAME>" activate: true source_code: | *&---------------------------------------------------------------------* *& Report <YOUR_PROGRAM_NAME> *& UPDATED Test ABAP Program via MCP ABAP ADT *&---------------------------------------------------------------------* REPORT <YOUR_PROGRAM_NAME>. START-OF-SELECTION. WRITE: / 'Program <YOUR_PROGRAM_NAME> executed successfully - UPDATED'. WRITE: / 'Updated via MCP ABAP ADT API.'. WRITE: / 'Modification date:', sy-datum. # Step 3: Get program get_program: test_cases: - name: "test_program" enabled: true params: program_name: "<YOUR_PROGRAM_NAME>" # Step 4: Delete program (will be added to delete_object group) # ============================================================================ # GROUP 7: INTERFACE - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_INTERFACE_NAME> (used in all interface tests) # Uses: package "<YOUR_PACKAGE_NAME>" + transport # Step 1: Create interface create_interface: test_cases: - name: "test_interface" enabled: true description: "Create test interface (used in subsequent interface tests)" params: interface_name: "<YOUR_INTERFACE_NAME>" description: "Test interface created via MCP" package_name: "<YOUR_PACKAGE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport source_code: | INTERFACE <YOUR_INTERFACE_NAME> PUBLIC. METHODS test_method IMPORTING iv_param TYPE string RETURNING VALUE(rv_result) TYPE string. ENDINTERFACE. # Step 2: Update interface source update_interface_source: test_cases: - name: "test_interface" enabled: true description: "Update test interface created in create_interface" params: interface_name: "<YOUR_INTERFACE_NAME>" activate: true source_code: | INTERFACE <YOUR_INTERFACE_NAME> PUBLIC. METHODS: test_method IMPORTING iv_param TYPE string RETURNING VALUE(rv_result) TYPE string, get_status RETURNING VALUE(rv_status) TYPE string. ENDINTERFACE. # Step 3: Get interface get_interface: test_cases: - name: "test_interface" enabled: true params: interface_name: "<YOUR_INTERFACE_NAME>" # Step 4: Delete interface (will be added to delete_object group) # ============================================================================ # GROUP 8: TABLE - Create Operation # ============================================================================ # Step 1: Create table create_table: test_cases: - name: "test_table" enabled: false description: "Create test table (DDL-based)" params: table_name: "<YOUR_TABLE_NAME>" package_name: "<YOUR_PACKAGE_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) ddl_code: | @EndUserText.label : 'Test Table' @AbapCatalog.tableCategory : #TRANSPARENT define table <YOUR_TABLE_NAME_LOWER> { key client : abap.clnt not null; key id : abap.char(10); name : abap.char(255); created_at : abap.dats; } # ============================================================================ # GROUP 9: STRUCTURE - Create Operation # ============================================================================ # Step 1: Create structure create_structure: test_cases: - name: "test_structure" enabled: false description: "Create test structure" params: structure_name: "<YOUR_STRUCTURE_NAME>" description: "Test structure created via MCP" package_name: "<YOUR_PACKAGE_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) fields: - name: "FIELD1" description: "First field" data_type: "CHAR" length: 10 - name: "FIELD2" description: "Second field" data_type: "CHAR" length: 20 # ============================================================================ # GROUP 10: VIEW - Create and Update Operations # ============================================================================ # Step 1: Create view create_view: test_cases: - name: "test_view" enabled: false description: "Create test CDS view" params: view_name: "<YOUR_VIEW_NAME>" description: "Test CDS view created via MCP" package_name: "<YOUR_PACKAGE_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) ddl_source: | @AbapCatalog.sqlViewName: '<YOUR_VIEW_NAME>' @EndUserText.label: 'Test CDS View' define view <YOUR_VIEW_NAME> as select from mara { matnr, mbrsh, mtart } # Step 2: Update view source update_view_source: test_cases: - name: "test_view" enabled: false description: "Update test view created in create_view" params: view_name: "<YOUR_VIEW_NAME>" activate: true ddl_source: | @AbapCatalog.sqlViewName: '<YOUR_VIEW_NAME>' @EndUserText.label: 'Test CDS View Updated' define view <YOUR_VIEW_NAME> as select from mara { matnr, mbrsh, mtart, meins } # ============================================================================ # GROUP 11: DELETE OBJECTS (Cleanup) # ============================================================================ # Delete all objects created in previous groups (in reverse order) delete_object: test_cases: - name: "delete_interface" enabled: true description: "Delete test interface from GROUP 7" params: test_interface_name: "<YOUR_INTERFACE_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_program" enabled: true description: "Delete test program from GROUP 6" params: test_program_name: "<YOUR_PROGRAM_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_class" enabled: true description: "Delete test class from GROUP 5" params: test_class_name: "<YOUR_CLASS_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_data_element" enabled: true description: "Delete test data element from GROUP 4" params: test_data_element_name: "<YOUR_DATA_ELEMENT_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_domain" enabled: true description: "Delete test domain from GROUP 3" params: test_domain_name: "<YOUR_DOMAIN_NAME>" transport_request: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_function_module" enabled: true description: "Delete test function module from GROUP 10 (MUST be before function_group)" params: test_function_module_name: "<YOUR_FUNCTION_MODULE_NAME>" test_function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) package_name: "<YOUR_PACKAGE_NAME>" - name: "delete_function_group" enabled: true description: "Delete test function group from GROUP 9 (deletes all FMs inside)" params: test_function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) package_name: "<YOUR_PACKAGE_NAME>" # ============================================================================ # ADDITIONAL GET TESTS (Read-only, no dependencies) # ============================================================================ # These tests read standard SAP objects (no creation required) get_table: test_cases: - name: "standard_table" enabled: true params: table_name: "MARA" get_table_contents: test_cases: - name: "limited_rows" enabled: true params: table_name: "T000" max_rows: 10 # ============================================================================ # GROUP 12: FUNCTION GROUP - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_FUNCTION_GROUP_NAME> (used in all function group tests) # Uses: package "<YOUR_PACKAGE_NAME>" # Step 1: Create function group create_function_group: test_cases: - name: "test_function_group" enabled: true description: "Create test function group (used in subsequent function group tests)" params: function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" description: "Test function group created via MCP" package_name: "<YOUR_PACKAGE_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) # Step 2: Get function group (read created function group) get_function_group: test_cases: - name: "test_function_group" enabled: true params: function_group: "<YOUR_FUNCTION_GROUP_NAME>" - name: "standard_function_group" enabled: false params: function_group: "SRFC" # ============================================================================ # GROUP 10: FUNCTION MODULE - Full CRUD Cycle # ============================================================================ # Object name: <YOUR_FUNCTION_MODULE_NAME> (used in all function module tests) # Uses: function group "<YOUR_FUNCTION_GROUP_NAME>" from GROUP 9 # Step 1: Create function module create_function_module: test_cases: - name: "test_function_module" enabled: true description: "Create test function module (uses function group from GROUP 9)" params: function_module_name: "<YOUR_FUNCTION_MODULE_NAME>" function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" description: "Test function module created via MCP" package_name: "<YOUR_PACKAGE_NAME>" # transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL) source_code: | FUNCTION <YOUR_FUNCTION_MODULE_NAME_LOWERCASE> IMPORTING VALUE(IV_PARAM) TYPE STRING EXPORTING VALUE(EV_RESULT) TYPE STRING. ev_result = |Result: { iv_param }|. ENDFUNCTION. # Step 2: Update function module source update_function_module_source: test_cases: - name: "test_function_module" enabled: true description: "Update test function module created in create_function_module" params: function_module_name: "<YOUR_FUNCTION_MODULE_NAME>" function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" activate: true source_code: | FUNCTION <YOUR_FUNCTION_MODULE_NAME_LOWERCASE> IMPORTING VALUE(IV_PARAM) TYPE STRING EXPORTING VALUE(EV_RESULT) TYPE STRING. ev_result = |Updated Result: { iv_param }|. ENDFUNCTION. # Step 3: Get function module (read created function module) get_function_test: test_cases: - name: "test_function_module" enabled: true params: function_module_name: "<YOUR_FUNCTION_MODULE_NAME>" function_group_name: "<YOUR_FUNCTION_GROUP_NAME>" # Step 4: Get function (standard function for comparison) get_function: test_cases: - name: "standard_function" enabled: false params: function_name: "RFC_READ_TABLE" function_group: "SRFC" get_structure: test_cases: - name: "standard_structure" enabled: true params: structure_name: "MARA" # Using table as structure example get_include: test_cases: - name: "standard_include" enabled: false description: "Get include for program (S4HANA only, not available in Cloud)" params: include_name: "SAPMV45A" # Standard program include program_name: "SAPMV45A" get_type_info: test_cases: - name: "standard_type" enabled: true params: type_name: "MARA" type_kind: "TABL" get_prog_full_code: test_cases: - name: "standard_function_group" enabled: true description: "Get full code for function group (Cloud compatible)" params: name: "SRFC" type: "FUGR" - name: "standard_program" enabled: false description: "Get full code for program (S4HANA only, not available in Cloud)" params: name: "SAPMV45A" type: "PROG/P" get_includes_list: test_cases: - name: "standard_function_group" enabled: true description: "Get includes list for function group (Cloud compatible)" params: object_name: "SRFC" object_type: "FUGR" detailed: false - name: "standard_program" enabled: false description: "Get includes list for program (S4HANA only, not available in Cloud)" params: object_name: "SAPMV45A" object_type: "PROG/P" detailed: false get_objects_list: test_cases: - name: "standard_function_group" enabled: true description: "Get objects list for function group (Cloud compatible)" params: parent_name: "SRFC" parent_tech_name: "SRFC" parent_type: "FUGR" with_short_descriptions: true - name: "standard_program" enabled: false description: "Get objects list for program (S4HANA only, not available in Cloud)" params: parent_name: "/CBY/PURBOOK_EN" parent_tech_name: "/CBY/PURBOOK_EN" parent_type: "PROG/P" with_short_descriptions: true get_object_structure: test_cases: - name: "standard_view" enabled: true params: objecttype: "DDLS/DF" objectname: "/CBY/ACQ_DDL" get_transaction: test_cases: - name: "standard_transaction" enabled: true params: transaction_code: "SE11" get_enhancements: test_cases: - name: "class_enhancements" enabled: true description: "Get enhancements for class (Cloud compatible)" params: object_name: "CL_ABAP_TYPEDESCR" object_type: "CLAS/OC" - name: "program_enhancements" enabled: false description: "Get enhancements for program (S4HANA only, not available in Cloud)" params: object_name: "SAPMV45A" object_type: "PROG/P" get_sql_query: test_cases: - name: "simple_select" enabled: true params: sql_query: "SELECT MANDT, MTEXT FROM T000 WHERE MANDT < '100'" row_number: 10 # ============================================================================ # SEARCH AND UTILITY TESTS # ============================================================================ search_object: test_cases: - name: "search_tables" enabled: true params: object_name: "MARA*" object_type: "TABL" maxResults: 10 get_where_used: test_cases: - name: "table_usage" enabled: true params: object_name: "MARA" object_type: "TABL/DT" detailed: false get_object_info: test_cases: - name: "class_structure" enabled: true params: parent_type: "CLAS/OC" parent_name: "CL_ABAP_TYPEDESCR" maxDepth: 2 enrich: true get_abap_ast: test_cases: - name: "simple_code" enabled: true params: code: | REPORT test. DATA: lv_text TYPE string. lv_text = 'Hello World'. WRITE: / lv_text. get_abap_semantic_analysis: test_cases: - name: "with_symbols" enabled: true params: code: | REPORT test. DATA: lv_count TYPE i, lv_name TYPE string. lv_count = 42. lv_name = 'Test'. # ============================================================================ # ACTIVATION AND CHECK TESTS # ============================================================================ activate_object: test_cases: - name: "test_objects" enabled: true description: "Activate test class and program from GROUPS 5 and 6" params: objects: - object_name: "<YOUR_CLASS_NAME>" object_type: "CLAS/OC" - object_name: "<YOUR_PROGRAM_NAME>" object_type: "PROG/P" preaudit: false check_object: test_cases: - name: "check_test_objects" enabled: true description: "Check syntax of test objects" params: objects: - object_name: "<YOUR_CLASS_NAME>" object_type: "class" version: "active" - object_name: "<YOUR_PROGRAM_NAME>" object_type: "program" version: "active" # ============================================================================ # ENVIRONMENT CONFIGURATION # ============================================================================ environment: default_package: "<YOUR_PACKAGE_NAME>" # Test package from GROUP 2 default_transport: "<YOUR_TRANSPORT_REQUEST>" # âš ī¸ UPDATE WITH TRANSPORT FROM create_transport default_system: "<YOUR_SYSTEM>" # âš ī¸ UPDATE WITH YOUR SYSTEM (e.g., E19) default_client: "<YOUR_CLIENT>" # âš ī¸ UPDATE WITH YOUR CLIENT (e.g., 100) # ============================================================================ # TEST EXECUTION SETTINGS # ============================================================================ test_settings: fail_fast: false verbose: true timeout: 30000 retry_on_failure: false max_retries: 1 cleanup_after_test: false # Set to true to auto-delete objects after tests

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fr0ster/mcp-abap-adt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server