abap_enh
Manage SAP enhancement objects via ADT: write descriptions, create BAdI definitions, implementations, and hooks, set filter values, activate, and delete enhancements.
Instructions
Default op writes the root adtcore:description of an existing ENHO/XH, ENHO/XHH or ENHS/XS, optionally activating it. ENHO/XHH plug-in source body: use abap_write, not this tool. See operation for the other ops.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | write_description/delete/set_impl_active: container name (never the nested badiImplementation entry - use spec.implName). create_spot/add_badi_def/add_filter_def: spotName. create_impl/set_filter_values: enhName. exercise: badiName. create_hook: new name. discover_hook_anchors: unused. | |
| spec | No | Fields per op (?=optional; IDs max 30 chars; lengths and value rules in doc/TOOLS/enhancements.md). create_spot: description. add_badi_def: badiName, interfaceName, singleUse, shortText. add_filter_def: badiName, filterName, filterType, filterText?. create_impl: spotName, badiName, implName, implClass, active, description. set_filter_values: spotName, implName, filterName, filterType, compare, value. exercise: methodName, filterName?, filterValue?, params?[{name, kind?, value?, type?}] (params[].type: required for changing/exporting/receiving, forbidden otherwise; a namespaced type ref is allowed). discover_hook_anchors: hostType, hostName, hostUri. create_hook: hostType(PROG/P only), hostName, hostUri, anchorFullName, anchorFullDescription, responsible?, activate?. set_impl_active: active, implName?(omit only if exactly one entry), description?. | |
| type | No | Required for write_description/delete; unused otherwise. | |
| affects | No | Object affected. create_spot: optional, defaults to the spot itself. add_badi_def/add_filter_def: optional, defaults to the spot itself. create_hook: optional, derived from spec.hostName when omitted (one GET; NOT_FOUND if the host does not exist). REQUIRED (BAD_INPUT if omitted): create_impl, set_filter_values, exercise, write_description, delete, set_impl_active. discover_hook_anchors: never used. | |
| corr_nr | No | write_description/delete/set_impl_active: transport request, unchanged. Five fluid ops: the transport for a transportable (non-$) package; with a local package this is BAD_INPUT. Omitted with a transportable package is resolved by the session resolver under ABAP_ALLOW_TRANSPORTS=auto. | |
| package | No | Target package for the five fluid ops only (create_spot, add_badi_def, add_filter_def, create_impl, set_filter_values). Default $TMP; trimmed and uppercased. Given on any other operation: BAD_INPUT. | |
| activate | No | write_description: activate after a changed write (input.activate === true). Five fluid ops: default true; false saves without activating, leaving the object inactive. create_hook uses spec.activate (default false); set_impl_active always activates. | |
| operation | No | Default "write_description". The five fluid ops (create_spot, add_badi_def, add_filter_def, create_impl, set_filter_values) take package (default $TMP), corr_nr and activate (default true). exercise creates nothing of the caller's own (its bridge class lives in $ABAPSMITH_FLUID_API). create_hook lands in $TMP. discover_hook_anchors: read-only. delete needs ABAP_ALLOW_ENHANCEMENT_DELETE=true, irreversible; set_impl_active: reversible. | |
| description | No | Required for write_description/create_hook (new adtcore:description, max 60). Unused otherwise. | |
| expect_etag | No | Refuse if etag differs (write_description/delete/set_impl_active only). |