ABAP技术规范生成器

一款通过SAP传输请求自动生成结构化ABAP技术规范文档的工具,支持多种WRICEF对象类型。

  • by SaurabhVC
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SaurabhVC/ABAPDocMCP

使用说明

ABAPDocMCP——WRICEF技术规范生成器

从SAP传输请求生成结构化ABAP技术规范文档的MCP工具。 通过ADT REST API连接到任何SAP系统,并生成涵盖所有WRICEF对象类型的现成Markdown规范。


它的作用

GenerateWricefTechSpec 是一个MCP(模型上下文协议)工具,它:

  1. 读取一个或多个 运输请求编号 从您的SAP系统
  2. 获取运输对象及其 源代码 通过ADT
  3. 分析数据库表、功能模块调用、授权对象、错误处理模式和性能反模式的来源
  4. 生成一个完全结构化的 Markdown技术规范 最多可配置32个部分
  5. 包括a 美人鱼对象关系图 按运输方式分组的颜色编码对象

支持的WRICEF类型

类型 代码 专用章节
报告 REPORT 选择屏幕/输入参数、输出/ALV布局
接口 INTERFACE 接口详细信息(方向、协议、频率)、消息结构/字段映射
转换 CONVERSION 伪代码、数据库对象、错误处理
增强功能 ENHANCEMENT 增强点详细信息(BAdI/用户退出/隐式)
表格 FORM 表单详细信息(SmartForms/Adobe/SAPscript),输出类型
工作流程 WORKFLOW 工作流程步骤
OData/RAP 任何类型 OData/RAP详细信息(服务绑定、服务定义)

一个WRICEF可以跨越 多个传输请求 并包含 混合对象类型 --所有这些都在一个规范中处理。


快速开始

1.先决条件

  • 转到1.21+(从源代码构建) 或 使用预构建的二进制文件
  • 启用ADT的SAP系统(/sap/bc/adt/ ICF服务处于活动状态)

2.建造

git clone https://github.com/SaurabhVC/ABAPDocMCP.git
cd ABAPDocMCP
go build -o abapdocmcp ./cmd/vsp/main.go

3.配置克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "abapdocmcp": {
      "command": "/path/to/abapdocmcp",
      "env": {
        "SAP_URL": "https://your-sap-host:44300",
        "SAP_USER": "your-username",
        "SAP_PASSWORD": "your-password",
        "SAP_CLIENT": "100"
      }
    }
  }
}

自签名证书: 添加 "SAP_INSECURE": "true" 转到env块。

4.配置克劳德代码

添加 .mcp.json 到您的项目根目录:

{
  "mcpServers": {
    "abapdocmcp": {
      "command": "/path/to/abapdocmcp",
      "env": {
        "SAP_URL": "https://your-sap-host:44300",
        "SAP_USER": "your-username",
        "SAP_PASSWORD": "your-password",
        "SAP_CLIENT": "100"
      }
    }
  }
}

工具参考-- GenerateWricefTechSpec

必填参数

参数 类型 说明
transport_numbers string 逗号分隔的TR数字,例如。 DEVK900123,DEVK900124

WRICEF元数据(可选)

参数 类型 说明
wricef_type 字符串 REPORT
wricef_id string WRICEF标识符,例如。 ZSD-R-001
complexity 字符串 S
cr_number string 更改请求/票号
module string SAP模块: SD, FI, MM, HR, …

人们

参数 类型 说明
developer_name string 开发人员全名
developer_user_id string 开发人员SAP用户ID
reviewer_name string 审阅者全名
approver_name string 审批人全名

系统

参数 类型 说明
system_id string SAP系统ID(默认值: DEV)
client string SAP客户端(默认值: 100)
version string 文档版本(默认值: 1.0)

源代码丰富

参数 类型 默认值 说明
fetch_source_code 布尔值 true 获取并分析数据库表、FM调用、身份验证对象、错误处理、性能模式的源代码

接口特定

参数 说明
interface_direction Inbound
interface_protocol RFC
interface_frequency Real-time

特定增强功能

参数 说明
enhancement_type BAdI
enhancement_name BAdI/增强退出名称
original_program 正在增强的程序或对象

表格特定

参数 说明
form_technology SmartForms
form_output_type Spool

工作流特定

参数 说明
workflow_steps 工作流步骤说明

OData/RAP特定

参数 说明
service_binding OData/RAP服务绑定名称
service_definition OData/RAP服务定义名称

其他

参数 说明
notes 规范中应包含的其他注释

示例用法(克劳德语)

最小值——只是一个运输编号:

GenerateWricefTechSpec(
  transport_numbers = "DEVK900123"
)

完整报告规范:

GenerateWricefTechSpec(
  transport_numbers  = "DEVK900123,DEVK900124",
  wricef_type        = "REPORT",
  wricef_id          = "ZSD-R-001",
  complexity         = "M",
  cr_number          = "CHG0012345",
  module             = "SD",
  developer_name     = "John Smith",
  developer_user_id  = "JSMITH",
  reviewer_name      = "Mary Johnson",
  system_id          = "DEV",
  client             = "100"
)

增强规格:

GenerateWricefTechSpec(
  transport_numbers  = "DEVK900145",
  wricef_type        = "ENHANCEMENT",
  wricef_id          = "ZFI-E-001",
  complexity         = "S",
  module             = "FI",
  enhancement_type   = "BAdI",
  enhancement_name   = "BADI_ACC_DOCUMENT",
  original_program   = "SAPLGL_ACCOUNT_ASSIGNMENT"
)

接口规格:

GenerateWricefTechSpec(
  transport_numbers      = "DEVK900130",
  wricef_type            = "INTERFACE",
  wricef_id              = "ZMM-I-001",
  complexity             = "L",
  module                 = "MM",
  interface_direction    = "Outbound",
  interface_protocol     = "IDoc",
  interface_frequency    = "Event-driven"
)

生成的部分

所有部分均由以下人员控制 tech-spec-config.json默认设置(按顺序):

# 章节 描述
1 文件信息 标题、WRICEF ID、类型、复杂性、系统、运输编号
2 开发者信息 开发者、审阅者、批准者
3 变更请求参考 CR/票号、业务理由
4 WRICEF分类 类别、复杂性、估计工作量、模块
5 传输请求详细信息 每个TR一个元数据块(所有者、状态、目标)
6 运输内容 带类型和TR参考的完整对象列表
7 业务需求 功能描述的可编辑占位符
8 范围和假设 范围内/范围外/假设/依赖关系
9 技术设计概述 对象列表、类型、方法总结
10 对象结构 ADT中的对象树(如果可用)
11 类型层次结构 类层次结构(如果可用)
12 对象关系图 美人鱼图——仅对对象进行编码,按类型进行颜色编码
13 报告详情 选择屏幕参数+ALV输出布局
14 接口详细信息 方向、协议、频率、源/目标系统
15 消息结构/字段映射 来源→ 目标字段映射表
16 增强点详细信息 增强类型、名称、原始对象、激活
17 表单详细信息 技术、输出类型、表单/接口名称
18 工作流详细信息 工作流步骤
19 OData/RAP详细信息 服务绑定和定义名称
20 处理逻辑(伪代码) 每个源对象提取的伪代码
21 调用图 ADT的调用图(如果可用)
22 使用的数据库对象 从源检测到的表/视图
23 调用功能模块/BAPI/方法 从源检测到FM调用
24 授权对象 从源检测到的身份验证对象
25 ATC发现 ATC检查结果(如有)
26 单元测试结果 单元测试的结果(如有)
27 错误处理 从源检测到的错误模式
28 性能考虑 检测到反模式(SELECT*,LOOP中的SELECT)
29 测试场景 5行可编辑测试用例表
30 附加注释 来自的自由文本注释 notes 参数
31 变更历史 版本表(初始行已预填)
32 签核 开发/审核/批准人签核表

美人鱼对象关系图

该图是从传输对象自动生成的,并且在获取源代码时,它丰富了以下内容的边:

  • INCLUDE 声明→ includes 边缘
  • CALL FUNCTION / CALL METHOD → calls FM / calls method 边缘
  • CREATE OBJECT / NEW → instantiates 边缘

显示的代码对象类型 (表、结构、域等除外):

类型 颜色 代表
PROG 蓝色 报告/计划
INCL 浅蓝色 包括
CLAS 绿色 类
INTF 浅绿色 界面
FUNC 橙色 功能模块
FUGR 浅橙色 功能组
ENHO 红色 增强实施
ENHS 浅红色 增强点
BADI 红橙色 BAdI定义
SFPF 紫色 SmartForms表单
SSFO 紫罗兰色 Adobe表格
SRVB Dark Teal OData服务绑定
SRVD Teal 服务定义
BDEF 淡青色 行为定义
DDLS CDS标题 CDS视图(DDL源代码)
WDYN Indigo Web Dynpro应用程序

当WRICEF跨越 多个传输请求,每个TR显示为带标签的子图。


配置节-- tech-spec-config.json

地方 tech-spec-config.json 在与二进制文件(或工作目录)相同的目录中,自定义显示哪些部分以及显示顺序:

{
  "sections": [
    "documentInfo",
    "developerInfo",
    "changeRequest",
    "wricefClassification",
    "transportDetails",
    "transportContents",
    "businessRequirement",
    "scopeAssumptions",
    "technicalDesign",
    "objectRelationDiagram",
    "reportDetails",
    "interfaceDetails",
    "messageMapping",
    "enhancementDetails",
    "formDetails",
    "workflowDetails",
    "odataDetails",
    "pseudocode",
    "databaseObjects",
    "calledFunctions",
    "authorizationObjects",
    "errorHandling",
    "performanceConsiderations",
    "testScenarios",
    "additionalNotes",
    "changeHistory",
    "signOff"
  ],
  "sectionTitles": {
    "documentInfo": "Document Information",
    "objectRelationDiagram": "Object Relationship Diagram",
    "reportDetails": "Selection Screen / Input Parameters"
  }
}
  • sections --要包括的部分ID的有序列表;省略任何ID以抑制该部分
  • sectionTitles --覆盖任何标题文本;仅指定要更改其标题的部分

32个节ID及其默认标题的完整列表位于 技术规范配置json 项目根目录下的文件。


示例输出

看 示例_价格_技术_规格.md 完整示例显示:

  • R——报告 规范(ZSD-R-001),带选择屏幕、ALV布局、伪代码、DB表、FM调用、ATC、认证对象
  • I——接口 带字段映射表的规范(ZMM-I-001)
  • E--增强 规范(ZFI-E-001),含BAdI详细信息和伪代码

配置参考

环境变量 CLI标志 描述
SAP_URL --url SAP系统URL(例如。 https://host:44300)
SAP_USER --user SAP用户名
SAP_PASSWORD --password SAP密码
SAP_CLIENT --client SAP客户端(默认值: 001)
SAP_INSECURE --insecure 跳过TLS验证(对于自签名证书)
SAP_MODE --mode focused (默认)或 expert (所有工具)

源代码结构

ABAPDocMCP/
├── cmd/vsp/main.go                   # Entry point (CLI + MCP server)
├── internal/
│   ├── mcp/
│   │   ├── server.go                 # Tool registration
│   │   └── handlers_techspec.go      # GenerateWricefTechSpec handler
│   └── techspec/
│       ├── config.go                 # Section config loader (tech-spec-config.json)
│       ├── mermaid.go                # Mermaid diagram generator
│       └── generator.go             # 32-section spec renderer
├── pkg/adt/                          # SAP ADT REST API client
│   ├── client.go
│   ├── transport.go                  # GetTransport, ListTransports
│   └── workflows.go                  # GetSource (PROG, CLAS, FUNC, INCL …)
├── tech-spec-config.json             # Default section order & titles
└── SAMPLE_WRICEF_TECH_SPEC.md        # Sample generated output

建筑

# Current platform
go build -o abapdocmcp ./cmd/vsp/main.go

# All platforms (requires make)
make build-all

许可证

麻省理工学院