@mcp-abap-adt/core 2.1.2 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/bin/help.d.ts +6 -0
- package/dist/bin/help.d.ts.map +1 -0
- package/dist/bin/help.js +59 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts +9 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts.map +1 -0
- package/dist/bin/mcp-abap-adt-v2.js +247 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +21 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +1 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +24 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js.map +1 -0
- package/dist/handlers/class/high/handleCreateLocalTestClass.d.ts.map +1 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js +6 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js.map +1 -1
- package/dist/handlers/class/high/handleGetUnitTest.d.ts +38 -0
- package/dist/handlers/class/high/handleGetUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleGetUnitTest.js +73 -0
- package/dist/handlers/class/high/handleGetUnitTest.js.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts +122 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.js +133 -0
- package/dist/handlers/class/high/handleRunUnitTest.js.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts +23 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.js +77 -0
- package/dist/handlers/class/readonly/handleGetClass.js.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +23 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js +79 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts +23 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js +79 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js.map +1 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +23 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js +77 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js.map +1 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts +23 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +1 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js +77 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts +22 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.js +108 -0
- package/dist/handlers/package/readonly/handleGetPackage.js.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts +23 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.js +77 -0
- package/dist/handlers/program/readonly/handleGetProgram.js.map +1 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +18 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +1 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +109 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts +23 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js +77 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js.map +1 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts +23 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts.map +1 -0
- package/dist/handlers/table/readonly/handleGetTable.js +77 -0
- package/dist/handlers/table/readonly/handleGetTable.js.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts +33 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.js +90 -0
- package/dist/handlers/view/readonly/handleGetView.js.map +1 -0
- package/dist/index.d.ts +126 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2979 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ServerConfigManager.d.ts +90 -0
- package/dist/lib/ServerConfigManager.d.ts.map +1 -0
- package/dist/lib/ServerConfigManager.js +237 -0
- package/dist/lib/ServerConfigManager.js.map +1 -0
- package/dist/lib/activationUtils.d.ts +59 -0
- package/dist/lib/activationUtils.d.ts.map +1 -0
- package/dist/lib/activationUtils.js +168 -0
- package/dist/lib/authBrokerFactory.d.ts +96 -0
- package/dist/lib/authBrokerFactory.d.ts.map +1 -0
- package/dist/lib/authBrokerFactory.js +531 -0
- package/dist/lib/authBrokerFactory.js.map +1 -0
- package/dist/lib/config/ServerConfig.d.ts +17 -0
- package/dist/lib/config/ServerConfig.d.ts.map +1 -0
- package/dist/lib/config/ServerConfig.js +7 -0
- package/dist/lib/config/ServerConfig.js.map +1 -0
- package/dist/lib/getFullCodeCache.d.ts +3 -0
- package/dist/lib/getFullCodeCache.d.ts.map +1 -0
- package/dist/lib/getFullCodeCache.js +56 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.js +21 -0
- package/dist/lib/handlers/handlers/groups/index.js.map +1 -0
- package/dist/lib/handlers/handlers/index.d.ts +14 -0
- package/dist/lib/handlers/handlers/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/index.js +37 -0
- package/dist/lib/handlers/handlers/index.js.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.js +3 -0
- package/dist/lib/handlers/handlers/interfaces.js.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/runtimeConfig.d.ts +20 -0
- package/dist/lib/runtimeConfig.d.ts.map +1 -0
- package/dist/lib/runtimeConfig.js +130 -0
- package/dist/lib/runtimeConfig.js.map +1 -0
- package/dist/lib/servers/BaseMcpServer.d.ts +56 -0
- package/dist/lib/servers/BaseMcpServer.d.ts.map +1 -0
- package/dist/lib/servers/BaseMcpServer.js +198 -0
- package/dist/lib/servers/BaseMcpServer.js.map +1 -0
- package/dist/lib/servers/ConnectionContext.d.ts +20 -0
- package/dist/lib/servers/ConnectionContext.d.ts.map +1 -0
- package/dist/lib/servers/ConnectionContext.js +3 -0
- package/dist/lib/servers/ConnectionContext.js.map +1 -0
- package/dist/lib/servers/SseServer.d.ts +32 -0
- package/dist/lib/servers/SseServer.d.ts.map +1 -0
- package/dist/lib/servers/SseServer.js +139 -0
- package/dist/lib/servers/SseServer.js.map +1 -0
- package/dist/lib/servers/StdioServer.d.ts +20 -0
- package/dist/lib/servers/StdioServer.d.ts.map +1 -0
- package/dist/lib/servers/StdioServer.js +32 -0
- package/dist/lib/servers/StdioServer.js.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts +30 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.js +83 -0
- package/dist/lib/servers/StreamableHttpServer.js.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/servers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/servers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/index.js +21 -0
- package/dist/lib/servers/handlers/groups/index.js.map +1 -0
- package/dist/lib/servers/handlers/index.d.ts +14 -0
- package/dist/lib/servers/handlers/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/index.js +37 -0
- package/dist/lib/servers/handlers/index.js.map +1 -0
- package/dist/lib/servers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/servers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/servers/handlers/interfaces.js +3 -0
- package/dist/lib/servers/handlers/interfaces.js.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/servers/index.d.ts +5 -0
- package/dist/lib/servers/index.d.ts.map +1 -0
- package/dist/lib/servers/index.js +21 -0
- package/dist/lib/servers/index.js.map +1 -0
- package/dist/lib/servers/launcher.d.ts +2 -0
- package/dist/lib/servers/launcher.d.ts.map +1 -0
- package/dist/lib/servers/launcher.js +123 -0
- package/dist/lib/servers/launcher.js.map +1 -0
- package/dist/lib/servers/mcp_handlers.d.ts +25 -0
- package/dist/lib/servers/mcp_handlers.d.ts.map +1 -0
- package/dist/lib/servers/mcp_handlers.js +822 -0
- package/dist/lib/servers/mcp_handlers.js.map +1 -0
- package/dist/lib/servers/mcp_server.d.ts +7 -0
- package/dist/lib/servers/mcp_server.d.ts.map +1 -0
- package/dist/lib/servers/mcp_server.js +12 -0
- package/dist/lib/servers/utils.d.ts +42 -0
- package/dist/lib/servers/utils.d.ts.map +1 -0
- package/dist/lib/servers/utils.js +620 -0
- package/dist/lib/servers/utils.js.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts +7 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.js +218 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts +20 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.js +70 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts +21 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.js +36 -0
- package/dist/lib/servers/v2/connection/index.d.ts +6 -0
- package/dist/lib/servers/v2/connection/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/index.js +10 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts +29 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.js +79 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts +38 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.js +38 -0
- package/dist/lib/servers/v2/factory/index.d.ts +6 -0
- package/dist/lib/servers/v2/factory/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/index.js +10 -0
- package/dist/lib/servers/v2/index.d.ts +9 -0
- package/dist/lib/servers/v2/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/index.js +27 -0
- package/dist/lib/servers/v2/index.js.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts +188 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.js +7 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts +10 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/index.js +25 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts +30 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/protocol.js +7 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts +98 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/session.js +7 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts +88 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/transport.js +7 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts +21 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.js +77 -0
- package/dist/lib/servers/v2/protocol/index.d.ts +5 -0
- package/dist/lib/servers/v2/protocol/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/index.js +8 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts +76 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/McpServer.js +243 -0
- package/dist/lib/servers/v2/server/index.d.ts +5 -0
- package/dist/lib/servers/v2/server/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/index.js +8 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts +40 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/SessionManager.js +136 -0
- package/dist/lib/servers/v2/session/index.d.ts +5 -0
- package/dist/lib/servers/v2/session/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/index.js +8 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts +49 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/SseTransport.js +89 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts +31 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StdioTransport.js +91 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts +51 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.js +147 -0
- package/dist/lib/servers/v2/transports/index.d.ts +7 -0
- package/dist/lib/servers/v2/transports/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/index.js +12 -0
- package/dist/lib/servers/v2/types/common.d.ts +17 -0
- package/dist/lib/servers/v2/types/common.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/common.js +6 -0
- package/dist/lib/servers/v2/types/common.js.map +1 -0
- package/dist/lib/servers/v2/types/index.d.ts +8 -0
- package/dist/lib/servers/v2/types/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/index.js +24 -0
- package/dist/lib/servers/v2/types/index.js.map +1 -0
- package/dist/lib/servers/v2/types/transport.d.ts +28 -0
- package/dist/lib/servers/v2/types/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/transport.js +8 -0
- package/dist/lib/servers/v2/types/transport.js.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts +17 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js +33 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileSessionStore.js +70 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileSessionStore.js +70 -0
- package/dist/lib/toolsRegistry.d.ts +13 -0
- package/dist/lib/toolsRegistry.d.ts.map +1 -0
- package/dist/lib/toolsRegistry.js +410 -0
- package/dist/lib/transportConfig.d.ts +27 -0
- package/dist/lib/transportConfig.d.ts.map +1 -0
- package/dist/lib/transportConfig.js +124 -0
- package/dist/lib/transports/stdio.d.ts +10 -0
- package/dist/lib/transports/stdio.d.ts.map +1 -0
- package/dist/lib/transports/stdio.js +73 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +0 -5
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/yamlConfig.d.ts +59 -0
- package/dist/lib/yamlConfig.d.ts.map +1 -0
- package/dist/lib/yamlConfig.js +349 -0
- package/dist/lib/yamlConfig.js.map +1 -0
- package/dist/server/v1/AuthBrokerConfig.d.ts +19 -0
- package/dist/server/v1/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v1/AuthBrokerConfig.js +44 -0
- package/dist/server/v1/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v1/IServerConfig.d.ts +17 -0
- package/dist/server/v1/IServerConfig.d.ts.map +1 -0
- package/dist/server/v1/IServerConfig.js +7 -0
- package/dist/server/v1/IServerConfig.js.map +1 -0
- package/dist/server/v1/ServerConfig.d.ts +16 -0
- package/dist/server/v1/ServerConfig.d.ts.map +1 -0
- package/dist/server/v1/ServerConfig.js +6 -0
- package/dist/server/v1/ServerConfig.js.map +1 -0
- package/dist/server/v1/embeddable-server.d.ts +89 -0
- package/dist/server/v1/embeddable-server.d.ts.map +1 -0
- package/dist/server/v1/embeddable-server.js +83 -0
- package/dist/server/v1/embeddable-server.js.map +1 -0
- package/dist/server/v1/index.d.ts +30 -0
- package/dist/server/v1/index.d.ts.map +1 -0
- package/dist/server/v1/index.js +65 -0
- package/dist/server/v1/index.js.map +1 -0
- package/dist/server/v1/legacy-server.d.ts +141 -0
- package/dist/server/v1/legacy-server.d.ts.map +1 -0
- package/dist/server/v1/legacy-server.js +2099 -0
- package/dist/server/v1/legacy-server.js.map +1 -0
- package/dist/server/v1/mcp_handlers.d.ts +19 -0
- package/dist/server/v1/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v1/mcp_handlers.js +85 -0
- package/dist/server/v1/mcp_handlers.js.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts +22 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.js +46 -0
- package/dist/server/v2/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v2/BaseMcpServer.d.ts +67 -0
- package/dist/server/v2/BaseMcpServer.d.ts.map +1 -0
- package/dist/server/v2/BaseMcpServer.js +273 -0
- package/dist/server/v2/BaseMcpServer.js.map +1 -0
- package/dist/server/v2/ConnectionContext.d.ts +20 -0
- package/dist/server/v2/ConnectionContext.d.ts.map +1 -0
- package/dist/server/v2/ConnectionContext.js +3 -0
- package/dist/server/v2/ConnectionContext.js.map +1 -0
- package/dist/server/v2/IHttpApplication.d.ts +42 -0
- package/dist/server/v2/IHttpApplication.d.ts.map +1 -0
- package/dist/server/v2/IHttpApplication.js +3 -0
- package/dist/server/v2/IHttpApplication.js.map +1 -0
- package/dist/server/v2/IServerConfig.d.ts +15 -0
- package/dist/server/v2/IServerConfig.d.ts.map +1 -0
- package/dist/server/v2/IServerConfig.js +7 -0
- package/dist/server/v2/IServerConfig.js.map +1 -0
- package/dist/server/v2/ServerConfig.d.ts +16 -0
- package/dist/server/v2/ServerConfig.d.ts.map +1 -0
- package/dist/server/v2/ServerConfig.js +6 -0
- package/dist/server/v2/ServerConfig.js.map +1 -0
- package/dist/server/v2/SseServer.d.ts +95 -0
- package/dist/server/v2/SseServer.d.ts.map +1 -0
- package/dist/server/v2/SseServer.js +217 -0
- package/dist/server/v2/SseServer.js.map +1 -0
- package/dist/server/v2/StdioServer.d.ts +20 -0
- package/dist/server/v2/StdioServer.d.ts.map +1 -0
- package/dist/server/v2/StdioServer.js +32 -0
- package/dist/server/v2/StdioServer.js.map +1 -0
- package/dist/server/v2/StreamableHttpServer.d.ts +94 -0
- package/dist/server/v2/StreamableHttpServer.d.ts.map +1 -0
- package/dist/server/v2/StreamableHttpServer.js +170 -0
- package/dist/server/v2/StreamableHttpServer.js.map +1 -0
- package/dist/server/v2/index.d.ts +6 -0
- package/dist/server/v2/index.d.ts.map +1 -0
- package/dist/server/v2/index.js +22 -0
- package/dist/server/v2/index.js.map +1 -0
- package/dist/server/v2/launcher.d.ts +2 -0
- package/dist/server/v2/launcher.d.ts.map +1 -0
- package/dist/server/v2/launcher.js +181 -0
- package/dist/server/v2/launcher.js.map +1 -0
- package/dist/server/v2/mcp_handlers.d.ts +25 -0
- package/dist/server/v2/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v2/mcp_handlers.js +828 -0
- package/dist/server/v2/mcp_handlers.js.map +1 -0
- package/dist/server/v2/utils.d.ts +42 -0
- package/dist/server/v2/utils.d.ts.map +1 -0
- package/dist/server/v2/utils.js +620 -0
- package/dist/server/v2/utils.js.map +1 -0
- package/dist/tools/test-v2-server-stdio-compiled.js +132 -0
- package/dist/utils/lockStateManager.d.ts +2 -12
- package/dist/utils/lockStateManager.d.ts.map +1 -1
- package/dist/utils/lockStateManager.js +4 -63
- package/dist/utils/lockStateManager.js.map +1 -1
- package/docs/README.md +1 -2
- package/docs/architecture/CONNECTION_ISOLATION.md +0 -1
- package/docs/architecture/README.md +1 -1
- package/docs/architecture/STATEFUL_SESSION_GUIDE.md +28 -717
- package/docs/deployment/DOCKER.md +1 -18
- package/docs/development/roadmaps/archive/test_locking_roadmap.md +0 -3
- package/docs/installation/CLINE_CONFIGURATION.md +1 -32
- package/docs/installation/platforms/INSTALL_LINUX.md +1 -1
- package/docs/installation/platforms/INSTALL_MACOS.md +1 -1
- package/docs/installation/platforms/INSTALL_WINDOWS.md +1 -1
- package/docs/user-guide/AVAILABLE_TOOLS.md +2 -2
- package/docs/user-guide/CLIENT_CONFIGURATION.md +1 -1
- package/docs/user-guide/HANDLERS_MANAGEMENT.md +2 -2
- package/docs/user-guide/README.md +0 -2
- package/package.json +1 -2
- package/bin/README.md +0 -125
- package/bin/lock-object.js +0 -240
- package/docs/user-guide/scenarios/COMMON_PATTERNS.md +0 -603
- package/docs/user-guide/scenarios/CREATING_CDS_VIEWS.md +0 -441
- package/docs/user-guide/scenarios/CREATING_CLASSES.md +0 -456
- package/docs/user-guide/scenarios/CREATING_FUNCTION_GROUPS.md +0 -582
- package/docs/user-guide/scenarios/README.md +0 -51
- package/docs/user-guide/scenarios/SESSION_MANAGEMENT.md +0 -335
- package/docs/user-guide/usage/README.md +0 -137
- package/docs/user-guide/usage/rap-business-objects/README.md +0 -28
- package/docs/user-guide/usage/rap-business-objects/creating-rap-bo.md +0 -189
- package/docs/user-guide/usage/rap-business-objects/deferred-activation.md +0 -82
- package/docs/user-guide/usage/simple-objects/README.md +0 -23
- package/docs/user-guide/usage/simple-objects/classes-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/classes-low.md +0 -165
- package/docs/user-guide/usage/simple-objects/data-elements-high.md +0 -48
- package/docs/user-guide/usage/simple-objects/data-elements-low.md +0 -144
- package/docs/user-guide/usage/simple-objects/domains-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/domains-low.md +0 -144
- package/docs/user-guide/usage/simple-objects/function-groups-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/function-groups-low.md +0 -144
- package/docs/user-guide/usage/simple-objects/function-modules-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/function-modules-low.md +0 -160
- package/docs/user-guide/usage/simple-objects/interfaces-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/interfaces-low.md +0 -160
- package/docs/user-guide/usage/simple-objects/programs-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/programs-low.md +0 -160
- package/docs/user-guide/usage/simple-objects/service-definitions-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/service-definitions-low.md +0 -160
- package/docs/user-guide/usage/simple-objects/structures-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/structures-low.md +0 -160
- package/docs/user-guide/usage/simple-objects/tables-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/tables-low.md +0 -165
- package/docs/user-guide/usage/simple-objects/views-high.md +0 -32
- package/docs/user-guide/usage/simple-objects/views-low.md +0 -160
|
@@ -1,582 +0,0 @@
|
|
|
1
|
-
# Creating Function Groups with Low-Level Handlers
|
|
2
|
-
|
|
3
|
-
This guide demonstrates how to create a function group and add function modules using low-level MCP handlers.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Function groups require a slightly different workflow than classes:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
GetSession → ValidateFunctionGroup → CreateFunctionGroup → LockFunctionGroup →
|
|
11
|
-
CreateFunctionModule → UpdateFunctionModule → UnlockFunctionGroup → ActivateFunctionGroup
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
**Note**: Function groups cannot be updated directly - you add function modules to them instead.
|
|
15
|
-
|
|
16
|
-
## Step-by-Step Workflow
|
|
17
|
-
|
|
18
|
-
### Step 1: Get Session
|
|
19
|
-
|
|
20
|
-
Obtain a session ID and session state.
|
|
21
|
-
|
|
22
|
-
**Tool**: `GetSession`
|
|
23
|
-
|
|
24
|
-
**Request**:
|
|
25
|
-
```json
|
|
26
|
-
{
|
|
27
|
-
"force_new": false
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Response**:
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"success": true,
|
|
35
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
36
|
-
"session_state": {
|
|
37
|
-
"cookies": "SAP_SESSIONID_E19_100=xyz...",
|
|
38
|
-
"csrf_token": "AbCdEf123456",
|
|
39
|
-
"cookie_store": {}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
### Step 2: Validate Function Group Name
|
|
47
|
-
|
|
48
|
-
Check if the function group name is valid and available.
|
|
49
|
-
|
|
50
|
-
**Tool**: `ValidateFunctionGroupLow`
|
|
51
|
-
|
|
52
|
-
**Request**:
|
|
53
|
-
```json
|
|
54
|
-
{
|
|
55
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
56
|
-
"package_name": "ZOK_LOCAL",
|
|
57
|
-
"description": "Test function group",
|
|
58
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
59
|
-
"session_state": {
|
|
60
|
-
"cookies": "...",
|
|
61
|
-
"csrf_token": "...",
|
|
62
|
-
"cookie_store": {}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
**Response** (Success):
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"success": true,
|
|
71
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
72
|
-
"validation_result": {
|
|
73
|
-
"valid": true
|
|
74
|
-
},
|
|
75
|
-
"session_state": {
|
|
76
|
-
"cookies": "...",
|
|
77
|
-
"csrf_token": "...",
|
|
78
|
-
"cookie_store": {}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
### Step 3: Create Function Group
|
|
86
|
-
|
|
87
|
-
Create the function group structure.
|
|
88
|
-
|
|
89
|
-
**Tool**: `CreateFunctionGroupLow`
|
|
90
|
-
|
|
91
|
-
**Request**:
|
|
92
|
-
```json
|
|
93
|
-
{
|
|
94
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
95
|
-
"description": "Test function group for demonstration",
|
|
96
|
-
"package_name": "ZOK_LOCAL",
|
|
97
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
98
|
-
"session_state": {
|
|
99
|
-
"cookies": "...",
|
|
100
|
-
"csrf_token": "...",
|
|
101
|
-
"cookie_store": {}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**Response**:
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"success": true,
|
|
110
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
111
|
-
"package_name": "ZOK_LOCAL",
|
|
112
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
113
|
-
"session_state": {
|
|
114
|
-
"cookies": "...",
|
|
115
|
-
"csrf_token": "...",
|
|
116
|
-
"cookie_store": {}
|
|
117
|
-
},
|
|
118
|
-
"message": "Function group ZFG_MY_GROUP created successfully..."
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**Note**: Function groups are created empty. You add function modules to them in the next steps.
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
### Step 4: Lock Function Group
|
|
127
|
-
|
|
128
|
-
Acquire an exclusive lock on the function group.
|
|
129
|
-
|
|
130
|
-
**Tool**: `LockFunctionGroupLow`
|
|
131
|
-
|
|
132
|
-
**Request**:
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
136
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
137
|
-
"session_state": {
|
|
138
|
-
"cookies": "...",
|
|
139
|
-
"csrf_token": "...",
|
|
140
|
-
"cookie_store": {}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Response**:
|
|
146
|
-
```json
|
|
147
|
-
{
|
|
148
|
-
"success": true,
|
|
149
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
150
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
151
|
-
"lock_handle": "BD53F3688D0F164CA3ADF06FD43C39E1CC1C3B32",
|
|
152
|
-
"session_state": {
|
|
153
|
-
"cookies": "...",
|
|
154
|
-
"csrf_token": "...",
|
|
155
|
-
"cookie_store": {}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**CRITICAL**:
|
|
161
|
-
- Save `lock_handle` - it's required for Unlock operation
|
|
162
|
-
- **Save `session_id` and `session_state` from this response** - they MUST be used in Unlock operation
|
|
163
|
-
- **Lock and Unlock MUST use the same session** - use the `session_id` and `session_state` from this Lock response
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
### Step 5: Create Function Module
|
|
168
|
-
|
|
169
|
-
Create a function module within the locked function group.
|
|
170
|
-
|
|
171
|
-
**Tool**: `CreateFunctionModuleLow`
|
|
172
|
-
|
|
173
|
-
**Request**:
|
|
174
|
-
```json
|
|
175
|
-
{
|
|
176
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
177
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
178
|
-
"description": "Test function module",
|
|
179
|
-
"package_name": "ZOK_LOCAL",
|
|
180
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
181
|
-
"session_state": {
|
|
182
|
-
"cookies": "...",
|
|
183
|
-
"csrf_token": "...",
|
|
184
|
-
"cookie_store": {}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Response**:
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"success": true,
|
|
193
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
194
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
195
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
196
|
-
"session_state": {
|
|
197
|
-
"cookies": "...",
|
|
198
|
-
"csrf_token": "...",
|
|
199
|
-
"cookie_store": {}
|
|
200
|
-
},
|
|
201
|
-
"message": "Function module ZFM_TEST_FUNCTION created successfully..."
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
### Step 6: Lock Function Module
|
|
208
|
-
|
|
209
|
-
Lock the function module to add source code.
|
|
210
|
-
|
|
211
|
-
**Tool**: `LockFunctionModuleLow`
|
|
212
|
-
|
|
213
|
-
**Request**:
|
|
214
|
-
```json
|
|
215
|
-
{
|
|
216
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
217
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
218
|
-
"session_state": {
|
|
219
|
-
"cookies": "...",
|
|
220
|
-
"csrf_token": "...",
|
|
221
|
-
"cookie_store": {}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
**Response**:
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"success": true,
|
|
230
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
231
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
232
|
-
"lock_handle": "A1B2C3D4E5F6789012345678901234567890ABCD",
|
|
233
|
-
"session_state": {
|
|
234
|
-
"cookies": "...",
|
|
235
|
-
"csrf_token": "...",
|
|
236
|
-
"cookie_store": {}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**CRITICAL**:
|
|
242
|
-
- Function modules have their own lock handle, separate from the function group lock
|
|
243
|
-
- **Save `session_id` and `session_state` from this response** - they MUST be used in Update and Unlock operations for this function module
|
|
244
|
-
- **Lock, Update, and Unlock for function module MUST use the same session** - use the `session_id` and `session_state` from this Lock response
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
### Step 7: Update Function Module
|
|
249
|
-
|
|
250
|
-
Add source code to the function module.
|
|
251
|
-
|
|
252
|
-
**Tool**: `UpdateFunctionModuleLow`
|
|
253
|
-
|
|
254
|
-
**Request**:
|
|
255
|
-
```json
|
|
256
|
-
{
|
|
257
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
258
|
-
"source_code": "FUNCTION zfm_test_function.\n*\"----------------------------------------------------------------------\n*\"*\"Local Interface:\n*\" IMPORTING\n*\" VALUE(IV_INPUT) TYPE STRING\n*\" EXPORTING\n*\" VALUE(EV_OUTPUT) TYPE STRING\n*\"----------------------------------------------------------------------\n\n ev_output = |Hello from { iv_input }|.\n\nENDFUNCTION.",
|
|
259
|
-
"lock_handle": "A1B2C3D4E5F6789012345678901234567890ABCD",
|
|
260
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
261
|
-
"session_state": {
|
|
262
|
-
"cookies": "...",
|
|
263
|
-
"csrf_token": "...",
|
|
264
|
-
"cookie_store": {}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
**Response**:
|
|
270
|
-
```json
|
|
271
|
-
{
|
|
272
|
-
"success": true,
|
|
273
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
274
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
275
|
-
"session_state": {
|
|
276
|
-
"cookies": "...",
|
|
277
|
-
"csrf_token": "...",
|
|
278
|
-
"cookie_store": {}
|
|
279
|
-
},
|
|
280
|
-
"message": "Function module ZFM_TEST_FUNCTION updated successfully..."
|
|
281
|
-
}
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
### Step 8: Unlock Function Module
|
|
287
|
-
|
|
288
|
-
Release the lock on the function module.
|
|
289
|
-
|
|
290
|
-
**Tool**: `UnlockFunctionModuleLow`
|
|
291
|
-
|
|
292
|
-
**Request**:
|
|
293
|
-
```json
|
|
294
|
-
{
|
|
295
|
-
"function_module_name": "ZFM_TEST_FUNCTION",
|
|
296
|
-
"lock_handle": "A1B2C3D4E5F6789012345678901234567890ABCD",
|
|
297
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
298
|
-
"session_state": {
|
|
299
|
-
"cookies": "...",
|
|
300
|
-
"csrf_token": "...",
|
|
301
|
-
"cookie_store": {}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
---
|
|
307
|
-
|
|
308
|
-
### Step 9: Unlock Function Group
|
|
309
|
-
|
|
310
|
-
Release the lock on the function group.
|
|
311
|
-
|
|
312
|
-
**Tool**: `UnlockFunctionGroupLow`
|
|
313
|
-
|
|
314
|
-
**Request**:
|
|
315
|
-
```json
|
|
316
|
-
{
|
|
317
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
318
|
-
"lock_handle": "BD53F3688D0F164CA3ADF06FD43C39E1CC1C3B32",
|
|
319
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
320
|
-
"session_state": {
|
|
321
|
-
"cookies": "...",
|
|
322
|
-
"csrf_token": "...",
|
|
323
|
-
"cookie_store": {}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
---
|
|
329
|
-
|
|
330
|
-
### Step 10: Activate Function Group
|
|
331
|
-
|
|
332
|
-
Activate the function group (this also activates all function modules within it).
|
|
333
|
-
|
|
334
|
-
**Tool**: `ActivateFunctionGroupLow`
|
|
335
|
-
|
|
336
|
-
**Request**:
|
|
337
|
-
```json
|
|
338
|
-
{
|
|
339
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
340
|
-
"session_id": "a1b2c3d4e5f6789012345678901234567890abcd",
|
|
341
|
-
"session_state": {
|
|
342
|
-
"cookies": "...",
|
|
343
|
-
"csrf_token": "...",
|
|
344
|
-
"cookie_store": {}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
**Response**:
|
|
350
|
-
```json
|
|
351
|
-
{
|
|
352
|
-
"success": true,
|
|
353
|
-
"function_group_name": "ZFG_MY_GROUP",
|
|
354
|
-
"activation_result": {
|
|
355
|
-
"status": "success",
|
|
356
|
-
"warnings": [],
|
|
357
|
-
"errors": []
|
|
358
|
-
},
|
|
359
|
-
"message": "Function group ZFG_MY_GROUP activated successfully"
|
|
360
|
-
}
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
---
|
|
364
|
-
|
|
365
|
-
## Complete Example
|
|
366
|
-
|
|
367
|
-
```python
|
|
368
|
-
# Step 1: Get Session
|
|
369
|
-
session = get_session()
|
|
370
|
-
session_id = session["session_id"]
|
|
371
|
-
session_state = session["session_state"]
|
|
372
|
-
|
|
373
|
-
try:
|
|
374
|
-
# Step 2: Validate Function Group
|
|
375
|
-
validation = validate_function_group(
|
|
376
|
-
function_group_name="ZFG_MY_GROUP",
|
|
377
|
-
package_name="ZOK_LOCAL",
|
|
378
|
-
session_id=session_id,
|
|
379
|
-
session_state=session_state
|
|
380
|
-
)
|
|
381
|
-
if not validation["validation_result"]["valid"]:
|
|
382
|
-
raise Error(f"Validation failed: {validation['validation_result']['message']}")
|
|
383
|
-
session_state = validation["session_state"]
|
|
384
|
-
|
|
385
|
-
# Step 3: Create Function Group
|
|
386
|
-
create_result = create_function_group(
|
|
387
|
-
function_group_name="ZFG_MY_GROUP",
|
|
388
|
-
description="Test function group",
|
|
389
|
-
package_name="ZOK_LOCAL",
|
|
390
|
-
session_id=session_id,
|
|
391
|
-
session_state=session_state
|
|
392
|
-
)
|
|
393
|
-
session_state = create_result["session_state"]
|
|
394
|
-
|
|
395
|
-
# Step 4: Lock Function Group
|
|
396
|
-
lock_result = lock_function_group(
|
|
397
|
-
function_group_name="ZFG_MY_GROUP",
|
|
398
|
-
session_id=session_id,
|
|
399
|
-
session_state=session_state
|
|
400
|
-
)
|
|
401
|
-
fg_lock_handle = lock_result["lock_handle"]
|
|
402
|
-
# CRITICAL: Save session_id and session_state from Lock response
|
|
403
|
-
# These MUST be used in Unlock operation
|
|
404
|
-
fg_lock_session_id = lock_result["session_id"]
|
|
405
|
-
fg_lock_session_state = lock_result["session_state"]
|
|
406
|
-
|
|
407
|
-
try:
|
|
408
|
-
# Step 5: Create Function Module
|
|
409
|
-
fm_create_result = create_function_module(
|
|
410
|
-
function_module_name="ZFM_TEST_FUNCTION",
|
|
411
|
-
function_group_name="ZFG_MY_GROUP",
|
|
412
|
-
description="Test function module",
|
|
413
|
-
package_name="ZOK_LOCAL",
|
|
414
|
-
session_id=session_id,
|
|
415
|
-
session_state=session_state
|
|
416
|
-
)
|
|
417
|
-
session_state = fm_create_result["session_state"]
|
|
418
|
-
|
|
419
|
-
# Step 6: Lock Function Module
|
|
420
|
-
fm_lock_result = lock_function_module(
|
|
421
|
-
function_module_name="ZFM_TEST_FUNCTION",
|
|
422
|
-
session_id=session_id,
|
|
423
|
-
session_state=session_state
|
|
424
|
-
)
|
|
425
|
-
fm_lock_handle = fm_lock_result["lock_handle"]
|
|
426
|
-
# CRITICAL: Save session_id and session_state from Lock response
|
|
427
|
-
# These MUST be used in Update and Unlock operations
|
|
428
|
-
fm_lock_session_id = fm_lock_result["session_id"]
|
|
429
|
-
fm_lock_session_state = fm_lock_result["session_state"]
|
|
430
|
-
|
|
431
|
-
try:
|
|
432
|
-
# Step 7: Update Function Module
|
|
433
|
-
fm_source = """FUNCTION zfm_test_function.
|
|
434
|
-
*"----------------------------------------------------------------------
|
|
435
|
-
*"*"Local Interface:
|
|
436
|
-
*" IMPORTING
|
|
437
|
-
*" VALUE(IV_INPUT) TYPE STRING
|
|
438
|
-
*" EXPORTING
|
|
439
|
-
*" VALUE(EV_OUTPUT) TYPE STRING
|
|
440
|
-
*"----------------------------------------------------------------------
|
|
441
|
-
|
|
442
|
-
ev_output = |Hello from { iv_input }|.
|
|
443
|
-
|
|
444
|
-
ENDFUNCTION."""
|
|
445
|
-
|
|
446
|
-
# CRITICAL: Use session_id and session_state from Lock response
|
|
447
|
-
fm_update_result = update_function_module(
|
|
448
|
-
function_module_name="ZFM_TEST_FUNCTION",
|
|
449
|
-
source_code=fm_source,
|
|
450
|
-
lock_handle=fm_lock_handle,
|
|
451
|
-
session_id=fm_lock_session_id, # ← From Lock response
|
|
452
|
-
session_state=fm_lock_session_state # ← From Lock response
|
|
453
|
-
)
|
|
454
|
-
session_state = fm_update_result["session_state"]
|
|
455
|
-
|
|
456
|
-
finally:
|
|
457
|
-
# Step 8: Unlock Function Module
|
|
458
|
-
# CRITICAL: Use session_id and session_state from Lock response
|
|
459
|
-
unlock_function_module(
|
|
460
|
-
function_module_name="ZFM_TEST_FUNCTION",
|
|
461
|
-
lock_handle=fm_lock_handle,
|
|
462
|
-
session_id=fm_lock_session_id, # ← From Lock response
|
|
463
|
-
session_state=fm_lock_session_state # ← From Lock response
|
|
464
|
-
)
|
|
465
|
-
session_state = unlock_result["session_state"]
|
|
466
|
-
|
|
467
|
-
finally:
|
|
468
|
-
# Step 9: Unlock Function Group
|
|
469
|
-
# CRITICAL: Use session_id and session_state from Lock response
|
|
470
|
-
unlock_result = unlock_function_group(
|
|
471
|
-
function_group_name="ZFG_MY_GROUP",
|
|
472
|
-
lock_handle=fg_lock_handle,
|
|
473
|
-
session_id=fg_lock_session_id, # ← From Lock response
|
|
474
|
-
session_state=fg_lock_session_state # ← From Lock response
|
|
475
|
-
)
|
|
476
|
-
session_state = unlock_result["session_state"]
|
|
477
|
-
|
|
478
|
-
# Step 10: Activate Function Group
|
|
479
|
-
activate_result = activate_function_group(
|
|
480
|
-
function_group_name="ZFG_MY_GROUP",
|
|
481
|
-
session_id=session_id,
|
|
482
|
-
session_state=session_state
|
|
483
|
-
)
|
|
484
|
-
|
|
485
|
-
print("✅ Function group and function module created and activated successfully!")
|
|
486
|
-
|
|
487
|
-
except Error as e:
|
|
488
|
-
print(f"❌ Error: {e}")
|
|
489
|
-
# Unlock both function module and function group if locked
|
|
490
|
-
if 'fm_lock_handle' in locals():
|
|
491
|
-
try:
|
|
492
|
-
unlock_function_module(
|
|
493
|
-
function_module_name="ZFM_TEST_FUNCTION",
|
|
494
|
-
lock_handle=fm_lock_handle,
|
|
495
|
-
session_id=session_id,
|
|
496
|
-
session_state=session_state
|
|
497
|
-
)
|
|
498
|
-
except:
|
|
499
|
-
pass
|
|
500
|
-
if 'fg_lock_handle' in locals():
|
|
501
|
-
try:
|
|
502
|
-
unlock_function_group(
|
|
503
|
-
function_group_name="ZFG_MY_GROUP",
|
|
504
|
-
lock_handle=fg_lock_handle,
|
|
505
|
-
session_id=session_id,
|
|
506
|
-
session_state=session_state
|
|
507
|
-
)
|
|
508
|
-
except:
|
|
509
|
-
pass
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
## Function Module Source Code Format
|
|
513
|
-
|
|
514
|
-
Function modules use standard ABAP function syntax:
|
|
515
|
-
|
|
516
|
-
```abap
|
|
517
|
-
FUNCTION zfm_test_function.
|
|
518
|
-
*"----------------------------------------------------------------------
|
|
519
|
-
*"*"Local Interface:
|
|
520
|
-
*" IMPORTING
|
|
521
|
-
*" VALUE(IV_INPUT) TYPE STRING
|
|
522
|
-
*" EXPORTING
|
|
523
|
-
*" VALUE(EV_OUTPUT) TYPE STRING
|
|
524
|
-
*" CHANGING
|
|
525
|
-
*" VALUE(CV_VALUE) TYPE STRING OPTIONAL
|
|
526
|
-
*" TABLES
|
|
527
|
-
*" IT_TABLE TYPE TABLE_TYPE OPTIONAL
|
|
528
|
-
*"----------------------------------------------------------------------
|
|
529
|
-
|
|
530
|
-
ev_output = |Hello from { iv_input }|.
|
|
531
|
-
|
|
532
|
-
ENDFUNCTION.
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
## Important Notes
|
|
536
|
-
|
|
537
|
-
1. **Function groups cannot be updated directly** - You add function modules to them
|
|
538
|
-
2. **Two-level locking** - Function group and function module have separate locks
|
|
539
|
-
3. **Activation** - Activating the function group activates all function modules within it
|
|
540
|
-
4. **Lock order** - Lock function group first, then create/lock/update/unlock function modules, then unlock function group
|
|
541
|
-
|
|
542
|
-
## Common Errors
|
|
543
|
-
|
|
544
|
-
### Error: "Function group already exists"
|
|
545
|
-
- **Solution**: Delete the existing function group or choose a different name
|
|
546
|
-
|
|
547
|
-
### Error: "Function module must belong to a function group"
|
|
548
|
-
- **Solution**: Ensure the function group is created and locked before creating function modules
|
|
549
|
-
|
|
550
|
-
### Error: "Invalid lock handle"
|
|
551
|
-
- **Solution**:
|
|
552
|
-
- **CRITICAL**: You MUST use the `session_id` and `session_state` from the Lock response in Update and Unlock operations
|
|
553
|
-
- Lock, Update, and Unlock MUST be in the same session
|
|
554
|
-
- Always save `session_id` and `session_state` from Lock response and pass them to Update and Unlock
|
|
555
|
-
- Use the correct lock handle for each operation (function group vs function module)
|
|
556
|
-
|
|
557
|
-
## Best Practices
|
|
558
|
-
|
|
559
|
-
1. **Lock function group first** - Lock the function group before creating function modules
|
|
560
|
-
2. **Unlock in reverse order** - Unlock function modules before unlocking the function group
|
|
561
|
-
3. **Handle errors carefully** - Unlock both function module and function group in error handlers
|
|
562
|
-
4. **Activate after unlock** - Activate the function group after all unlocks are complete
|
|
563
|
-
|
|
564
|
-
## Related Tools
|
|
565
|
-
|
|
566
|
-
- `GetSession` - Get session ID and state
|
|
567
|
-
- `ValidateFunctionGroupLow` - Validate function group name
|
|
568
|
-
- `CreateFunctionGroupLow` - Create function group
|
|
569
|
-
- `LockFunctionGroupLow` - Lock function group
|
|
570
|
-
- `CreateFunctionModuleLow` - Create function module
|
|
571
|
-
- `LockFunctionModuleLow` - Lock function module
|
|
572
|
-
- `UpdateFunctionModuleLow` - Update function module source
|
|
573
|
-
- `UnlockFunctionModuleLow` - Unlock function module
|
|
574
|
-
- `UnlockFunctionGroupLow` - Unlock function group
|
|
575
|
-
- `ActivateFunctionGroupLow` - Activate function group
|
|
576
|
-
|
|
577
|
-
## See Also
|
|
578
|
-
|
|
579
|
-
- [Creating Classes](./CREATING_CLASSES.md) - Similar workflow for classes
|
|
580
|
-
- [Session Management](./SESSION_MANAGEMENT.md) - Understanding sessions
|
|
581
|
-
- [Common Patterns](./COMMON_PATTERNS.md) - Reusable patterns
|
|
582
|
-
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Low-Level Handler Usage Scenarios
|
|
2
|
-
|
|
3
|
-
This directory contains practical examples and scenarios for using low-level MCP handlers to create and modify ABAP objects.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Low-level handlers provide fine-grained control over ABAP object operations. They require explicit session management and follow a specific workflow pattern:
|
|
8
|
-
|
|
9
|
-
1. **GetSession** - Obtain session ID and state
|
|
10
|
-
2. **Validate** - Check if object name is valid and available
|
|
11
|
-
3. **Create** - Create the object
|
|
12
|
-
4. **Lock** - Acquire lock for modification
|
|
13
|
-
5. **Update** - Modify the object (source code, metadata, etc.)
|
|
14
|
-
6. **Unlock** - Release the lock
|
|
15
|
-
7. **Activate** - Activate the object
|
|
16
|
-
|
|
17
|
-
## Available Scenarios
|
|
18
|
-
|
|
19
|
-
| Document | Description |
|
|
20
|
-
|----------|-------------|
|
|
21
|
-
| [Creating Classes](./CREATING_CLASSES.md) | Complete workflow for creating ABAP classes with source code |
|
|
22
|
-
| [Creating CDS Views](./CREATING_CDS_VIEWS.md) | Workflow for creating CDS views (DDL source) |
|
|
23
|
-
| [Creating Function Groups](./CREATING_FUNCTION_GROUPS.md) | Workflow for creating function groups and function modules |
|
|
24
|
-
| [Session Management](./SESSION_MANAGEMENT.md) | Understanding and managing stateful sessions |
|
|
25
|
-
| [Common Patterns](./COMMON_PATTERNS.md) | Reusable patterns for different object types |
|
|
26
|
-
|
|
27
|
-
## When to Use Low-Level vs High-Level Handlers
|
|
28
|
-
|
|
29
|
-
### Use Low-Level Handlers When:
|
|
30
|
-
- You need fine-grained control over each step
|
|
31
|
-
- You want to reuse the same session across multiple operations
|
|
32
|
-
- You need to handle errors at each step individually
|
|
33
|
-
- You're building custom workflows or automation scripts
|
|
34
|
-
- You're integrating with external systems that need explicit control
|
|
35
|
-
|
|
36
|
-
### Use High-Level Handlers When:
|
|
37
|
-
- You want a simple, all-in-one operation
|
|
38
|
-
- You don't need to customize the workflow
|
|
39
|
-
- You're doing quick, one-off operations
|
|
40
|
-
- You prefer automatic error handling and session management
|
|
41
|
-
|
|
42
|
-
## Quick Start
|
|
43
|
-
|
|
44
|
-
For a quick example, see [Creating Classes](./CREATING_CLASSES.md) which demonstrates the complete workflow.
|
|
45
|
-
|
|
46
|
-
## Related Documentation
|
|
47
|
-
|
|
48
|
-
- [Stateful Session Guide](../../architecture/STATEFUL_SESSION_GUIDE.md) - Technical details on session management
|
|
49
|
-
- [Available Tools](../AVAILABLE_TOOLS.md) - Complete list of all MCP tools
|
|
50
|
-
- [Client Configuration](../CLIENT_CONFIGURATION.md) - How to configure MCP clients
|
|
51
|
-
|