Startrfc Skill
说明
通过 RFC 协议直接调用 SAP 系统的函数模块。需要配置 SAPNWRFC_HOME 环境变量。
前置要求
- 安装 PyRFC:
pip install pynwrfc - 设置环境变量:
SAPNWRFC_HOME=E:\code\sapcli-skill\tools\sapSdk\nwrfcsdk\nwrfcsdk - 将
%SAPNWRFC_HOME%\lib添加到系统 PATH
使用场景
场景1: 测试连接
用户需求: "测试 SAP 连接"
Skill 调用:
{
"tool": "startrfc_execute",
"parameters": {
"function_name": "STFC_CONNECTION",
"parameters": {
"REQUTEXT": "Hello SAP"
}
}
}
场景2: 读取表数据
用户需求: "读取 T001 公司代码表的前10条"
Skill 调用:
{
"tool": "startrfc_execute",
"parameters": {
"function_name": "RFC_READ_TABLE",
"parameters": {
"QUERY_TABLE": "T001",
"FIELDS": ["BUKRS", "BUTXT"],
"ROWCOUNT": 10
},
"output_format": "json"
}
}
场景3: 执行 BAPI
用户需求: "获取用户 DEVELOPER 的详细信息"
Skill 调用:
{
"tool": "startrfc_execute",
"parameters": {
"function_name": "BAPI_USER_GET_DETAIL",
"parameters": {
"USERNAME": "DEVELOPER"
},
"result_checker": "bapi"
}
}
参数传递
简单参数
{
"function_name": "STFC_CONNECTION",
"parameters": {
"REQUTEXT": "Hello"
}
}
结构参数
{
"parameters": {
"COMPANYCODE": {
"BUKRS": "1000",
"BUTXT": "Company 1000"
}
}
}
表参数
{
"parameters": {
"IT_DATA": [
{"FIELD1": "value1", "FIELD2": "value2"},
{"FIELD1": "value3", "FIELD2": "value4"}
]
}
}
CLI 命令对照
| Skill 调用 | CLI 命令 |
|---|---|
| startrfc_execute (STFC_CONNECTION) | sapcli startrfc STFC_CONNECTION '{"REQUTEXT":"Hello"}' |
| startrfc_execute (JSON output) | sapcli startrfc --output=json RFC_READ_TABLE '{...}' |
| startrfc_execute (BAPI checker) | sapcli startrfc --result-checker=bapi BAPI_USER_GET_DETAIL '{...}' |
常用 RFC 函数
| 函数名 | 用途 |
|---|---|
| STFC_CONNECTION | 测试连接 |
| RFC_READ_TABLE | 读取透明表 |
| RFC_GET_FUNCTION_INTERFACE | 获取函数接口 |
| BAPI_USER_GET_DETAIL | 获取用户详情 |
| BAPI_USER_CREATE | 创建用户 |
| BAPI_TRANSACTION_COMMIT | 提交事务 |