# Startrfc

> 执行任意 RFC 函数模块，支持 JSON 参数传递、文件参数和 BAPI 返回结果检查

- Skill: `williamcorrea23/startrfc` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add williamcorrea23/startrfc`
- Raw SKILL.md: https://api.skillmd.com/api/skills/williamcorrea23/startrfc/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: williamcorrea23 (https://skillmd.com/u/williamcorrea23)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/williamcorrea23/startrfc

---


# Startrfc Skill

## 说明

通过 RFC 协议直接调用 SAP 系统的函数模块。需要配置 SAPNWRFC_HOME 环境变量。

## 前置要求

1. 安装 PyRFC: `pip install pynwrfc`
2. 设置环境变量: `SAPNWRFC_HOME=E:\code\sapcli-skill\tools\sapSdk\nwrfcsdk\nwrfcsdk`
3. 将 `%SAPNWRFC_HOME%\lib` 添加到系统 PATH

## 使用场景

### 场景1: 测试连接

**用户需求**: "测试 SAP 连接"

**Skill 调用**:
```json
{
  "tool": "startrfc_execute",
  "parameters": {
    "function_name": "STFC_CONNECTION",
    "parameters": {
      "REQUTEXT": "Hello SAP"
    }
  }
}
```

### 场景2: 读取表数据

**用户需求**: "读取 T001 公司代码表的前10条"

**Skill 调用**:
```json
{
  "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 调用**:
```json
{
  "tool": "startrfc_execute",
  "parameters": {
    "function_name": "BAPI_USER_GET_DETAIL",
    "parameters": {
      "USERNAME": "DEVELOPER"
    },
    "result_checker": "bapi"
  }
}
```

## 参数传递

### 简单参数
```json
{
  "function_name": "STFC_CONNECTION",
  "parameters": {
    "REQUTEXT": "Hello"
  }
}
```

### 结构参数
```json
{
  "parameters": {
    "COMPANYCODE": {
      "BUKRS": "1000",
      "BUTXT": "Company 1000"
    }
  }
}
```

### 表参数
```json
{
  "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 | 提交事务 |

