用途
该技能用于通过 SAP Automation Pilot 的 Content API 管理其内容,涵盖目录(catalogs)、命令(commands)和输入(inputs)的创建、查询、更新、删除、发布、弃用与恢复等操作。适用于导入或导出命令、列出目录、管理输入等场景。
主要能力
目录管理
- 列出目录:支持按 own、provided、tag 过滤。
- 按 ID 获取目录。
- 创建目录:指定 name、description、tags。
- 更新目录:更新 description、tags。
- 删除目录:目录必须为空(无命令或输入)才能删除。
命令管理
- 列出命令:支持按 catalog、tag 过滤,可包含设计时问题(includeIssues=true),也可仅列出命令 ID。
- 按 ID 获取命令:命令 ID 格式为 catalog:name:version。
- 创建/上传命令:可从 .command.json 文件上传,也可内联创建。
- 更新命令。
- 删除命令。
- 发布命令:仅当用户明确要求时使用。
- 弃用命令。
- 恢复命令。
- 批量创建命令。
输入管理
- 列出输入:支持按 catalog、tag 过滤。
- 按 ID 获取输入:输入 ID 格式为 catalog:name:version。
- 创建输入:定义 keys(类型与敏感性)和 values。
- 更新输入(全量)。
- 更新输入(部分,仅值):使用 application/merge-patch+json。
- 删除输入。
- 发布输入:仅当用户明确要求时使用。
- 弃用输入。
- 恢复输入。
- 批量创建输入。
实用模式
- 导出命令到文件。
- 从目录批量上传所有命令。
- 检查命令是否存在。
- 创建或更新命令(Upsert 模式)。
使用方式
前置条件
设置以下必需环境变量:
export AUTOPI_HOSTNAME="emea.autopilot.cloud.sap"
export AUTOPI_USERNAME="your-username"
export AUTOPI_PASSWORD="your-password"
export AUTOPI_DEFAULT_CATALOG="mycommands-<<<TENANT_ID>>>"
支持的 hostname:
- emea.autopilot.cloud.sap(默认 - 欧洲)
- aus.autopilot.cloud.sap(澳大利亚)
- apac.autopilot.cloud.sap(亚太)
- amer.autopilot.cloud.sap(美洲)
- ksa.autopilot.cloud.sap(沙特阿拉伯)
确保环境中可用 curl。
命名约定
- 命令:PascalCase,如 RestartCfApp、GetHanaInstance
- 输入:PascalCase,如 BtpCredentials、JiraConfig
- 目录:kebab-case,如 my-automations-xxx
- 名称不得包含空格(会导致 URL 编码的 API 失败)。
值在传输时始终为字符串
通过 API 创建或更新输入时,values 和 defaultValue 中的每个条目必须是 JSON 字符串,无论 keys 中声明的类型是什么。
| 声明类型 | 传输表示 |
|---|---|
| string | "my-app" |
| number | "42" |
| boolean | "true" |
| array | "["a","b"]" |
| object | "{"url":"...","user":"..."}" |
这也适用于 trigger 和 schedule 端点上的 inputValues——每个值在传输时必须是字符串。运行时在执行器内部将其转换为声明类型。
命令发布策略
命令部署后处于 DRAFT 状态。除非用户明确要求且命令已测试,否则不应自动发布。
必需权限
- 列出/获取资源:Read
- 创建/更新/删除资源:Write
错误处理
API 返回标准 HTTP 状态码:200(成功 GET/PUT)、201(创建 POST)、204(无内容 DELETE)、400(错误请求)、401(未授权)、403(禁止)、404(未找到)、409(冲突)、429(请求过多)、500(内部服务器错误)、503(服务不可用)。应始终检查响应中的错误消息。
适用场景
- 需要批量导入或导出 SAP Automation Pilot 命令。
- 需要以编程方式管理目录、命令和输入。
- 需要为不同环境(dev/staging/prod)创建和管理输入。
- 需要将命令从文件部署到 Automation Pilot。
- 需要导出目录中的所有命令到文件。
限制
- 删除目录前,目录必须为空(无命令或输入)。
- 名称不得包含空格。
- 值在传输时始终为字符串。
- 发布命令或输入需用户明确要求。
- 需要有效的凭据和相应权限。
- 依赖 curl。
- 关于收费、价格、平台等具体信息暂未提供。