sap connect:在 Agent 中跑通明辉集团 SAP 数据查询

前言

在 SAP 环境里查表、调 BAPI,往往要凑齐认证票据、参数补零和分页规则,再在脚本和对话里来回切换。把这套流程写进通用 SKILL.md,交给 Cursor、Claude Code 等 Agent 按步骤执行,可以减少重复搭环境和口述规范的成本。下面介绍 SkillHub 上的 sap connect(坐标 @user_ee21d0b2/mf-sap-data,v1.0.0),它把明辉集团内部的 SAP 查询能力封装成可安装技能。

这是什么

sap connect 在 SkillHub 上的展示名是 sap connect,包内文档标题为「SAP 数据查询 Skill」,定位为专供明辉集团 SAP 数据查询的社区 Skill(source: community)。发布者坐标为 user_ee21d0b2,分类为 it-ops-security;页面标签标明 requires_api_key=false,指安装 Skill 本身不需要 SkillHub API Key,与访问 SAP 网关时的企业认证是两件事。

Skill 通过 HTTP 调用集团门户侧接口(认证取 Ticket、BAPI 调用、表列元数据与表数据查询),并在说明文档中约定输出 JSON 结构、物料号 18 位与生产订单号 12 位补零、分页与字段上限等规则。包内 PACKAGE_INFO.json 记录版本 1.0.0,描述为「SAP数据查询Skill - 明辉集团专用」。

核心功能

依据包内 SKILL.md 与代码目录,已核实能力包括:

  1. 企业微信相关认证:收集身份证后六位等信息,获取 SAP 访问票据(Ticket),并管理票据生命周期(文档写明 Ticket 有效期 24 小时)。
  2. BAPI 调用:按 RFC 名称与参数调用,文档示例包含 BAPI_MATERIAL_GET_DETAIL,并对物料条码、生产订单号做左侧补零。
  3. 表与视图查询:指定表名、字段、过滤与排序,支持分页;过滤条件使用 FieldName、Calculation、Lower 等字段(与 references/api_spec.md 一致)。
  4. 智能查询:根据自然语言意图在指定表上构建查询(intelligent_query)。
  5. 结果处理:标准化 JSON 输出,支持导出 JSON / Excel / CSV,并提供查询历史与状态查询接口说明。

核心模块位于 core/(auth.py、bapi_client.py、table_client.py、query_builder.py),查询模板在 assets/query_templates.json。

安装与启用

通过 SkillHub CLI 安装到 Agent

官方 SkillHub 页面给出的安装指引是:先阅读 SkillHub 安装文档,再安装坐标 @user_ee21d0b2/mf-sap-data。

1、确认本机已有 skillhub CLI(未安装时可按安装文档执行 curl 安装脚本)。

2、安装时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/ 可能不会被识别。示例:

skillhub install mf-sap-data --namespace user_ee21d0b2 --dir ~/.cursor/skills/

Claude Code 常用目录为 ~/.claude/skills/;Codex 为 ~/.codex/skills/ 或项目下 .agents/skills/。安装后按所用客户端要求重启或刷新技能列表。

搜索时也可使用:

skillhub search mf-sap-data

Python 依赖与环境变量

技能包内含 Python 实现。在技能目录下安装依赖:

pip install -r requirements.txt

README.md 说明通过 .env 配置 SAP 网关端点与应用信息,典型变量如下(端点域名以文档为准,需在内网可达环境使用):

SAP_AUTH_ENDPOINT=https://info02.mingfaigroup.com/api/account/agent/getticket
SAP_BAPI_ENDPOINT=https://info02.mingfaigroup.com/api/sap/sapinvoke/invoke
SAP_TABLE_COLUMNS_ENDPOINT=https://info02.mingfaigroup.com/api/sap/sapinvoke/gettablecolumns
SAP_TABLE_DATA_ENDPOINT=https://info02.mingfaigroup.com/api/sap/sapinvoke/gettabledata
SAP_APP_NAME=mf.portal.agent
SAP_APP_VERSION=1.0
SAP_TIMEOUT=60
SAP_MAX_PAGE_SIZE=10000
SAP_DEFAULT_PAGE_SIZE=1000
SAP_MAX_PAGES=100

包内还提供 scripts/test_connection.py 用于连接测试;install.py 与 scripts/setup.py 用于环境初始化,可按 README 在技能根目录执行。

典型用法

下列示例来自包内 SKILL.md / README.md,类名 SAPDataQuerySkill 与导入路径以你安装后的包结构为准(Agent 会话中通常按 SKILL.md 的步骤引导执行)。

认证

from sap_data_query_skill import SAPDataQuerySkill

skill = SAPDataQuerySkill()
auth_result = skill.authenticate(
    work_code="MS00051286",
    identity="123456"  # 身份证后六位
)

表查询(MARA 原材料示例)

result = skill.query_table(
    table_name="MARA",
    fields=["MATNR", "MAKTX", "MEINS", "MATKL"],
    filters=[
        {
            "FieldName": "MATKL",
            "Calculation": "Equal",
            "Lower": "ROH"
        }
    ],
    orders=[{"FieldName": "MATNR", "Direction": "Ascend"}],
    page_size=1000
)

BAPI 与格式化

bapi_result = skill.query_bapi(
    rfc_name="BAPI_MATERIAL_GET_DETAIL",
    params={"MATERIAL": skill.format_material_code("123456")}
)

导出

export_result = skill.export_results(
    result=result,
    format="excel",
    file_path="物料查询结果.xlsx"
)

文档还约定查询限制:默认每页 1000 行、最大单页 10000 行、最多 100 页、返回字段建议不超过 20 个(硬上限 50),查询超时 60 秒。

适用场景与注意

适合谁

  • 已在明辉集团内网、具备 SAP 查询权限的运维或业务分析人员,希望在 AI Agent 对话中按统一规范查表、调 BAPI、导出结果。
  • 需要在团队内复用同一套认证流程、参数补零与 JSON 输出格式的场景。

限制与风险

  • 文档明确写明:仅限明辉集团内部使用,未经授权不得外传;接口主机为 info02.mingfaigroup.com,通常要求内网或白名单环境,外网无法直接复现示例。
  • SkillHub 元数据下载量约 1124 次(以页面统计为准),评分字段为 100000;安装前应在 SkillHub 查看安全扫描与权限说明,并对包内脚本与网络访问范围做企业内审。
  • requires_api_key=false 只表示 SkillHub 安装侧无需 API Key;实际查询仍依赖工号、身份证后六位等认证信息,敏感数据需遵守集团数据保护要求(文档提到脱敏与日志加密等要求)。
  • 技术支持邮箱在文档中为 it-support@minghuigroup.com;非明辉集团用户一般无法使用该 Skill 的后端端点。

结尾

sap connect 把明辉集团 SAP 的 Ticket 认证、BAPI、表查询与导出流程写进标准 Skill 包,便于在 SkillHub 一键装进 Cursor 等 Agent,并在对话中按 SKILL.md 执行。官方入口:

  • SkillHub 页面:https://www.skillhub.cn/skills/user_ee21d0b2/mf-sap-data
  • API 坐标页:https://api.skillhub.cn/user_ee21d0b2/mf-sap-data

安装命令坐标:@user_ee21d0b2/mf-sap-data,版本 1.0.0。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye