@abapify/adt-cli (英语)
SAP ABAP开发工具(ADT)REST APIs的命令行界面.
部分 生化单体。 。 。 .
安装
npm install -g @abapify/adt-cli
或者不安装就运行 :
npx @abapify/adt-cli <command>
快速启动
# Authenticate with a BTP service key
adt auth login --file ./service-key.json
# Discover available ADT services
adt discovery
# List transport requests
adt transport list
# Get object details
adt get ZCL_MY_CLASS --properties
# Show object structure as a tree
adt outline ZIF_MY_INTERFACE
# Import a package from SAP to local files
adt import package ZTEST_PKG
# Export local files back to SAP
adt export package ZTEST_PKG ./abapgit-ztest_pkg --create --transport NPLK900123
图标
认证
adt auth login --file <path>
使用 BTP 服务密钥文件( OAuth 2. 0 + PKCE) 认证 .
adt auth login --file ./secrets/service-key.json
服务密钥格式 :
{
"clientid": "...",
"clientsecret": "...",
"url": "https://your-btp-instance.cfapps.eu10.hana.ondemand.com",
"endpoints": {
"abap": "https://your-abap-system.cfapps.eu10.hana.ondemand.com"
},
"uaadomain": "authentication.eu10.hana.ondemand.com"
}
托肯存储在 ~/.config/adt-cli/ (Linux/macOS)或 缩写 %APPDATA%/adt-cli/ (温道.
adt auth logout
清除存储的认证符 .
服务发现
adt discovery [options]
列出可用的 ADT 服务和端点 .
| 选项 | 说明 |
|---|---|
-o, --output <file> | 保存输出.. .xml 用于生 XML, .json 用于解析 JSON |
adt discovery
adt discovery -o services.json
软件包导入/导出
adt import package <packageName> [targetFolder] [options]
从 SAP 下载 ABAP 软件包到本地文件 .
| 选项 | 说明 |
|---|---|
-o, --output <path> | 输出目录 |
-t, --object-types <types> | 逗号分离类型,例如:. CLAS,INTF |
--sub-packages | 包含子包 |
--format <format> | abapgit (默认) |
--debug | 除错输出 |
adt import package ZTEST_PKG
adt import package ZTEST_PKG --object-types CLAS,INTF --format abapgit
adt export package <packageName> [sourceFolder] [options]
向 SAP 部署本地文件 .
| 选项 | 说明 |
|---|---|
-i, --input <path> | 输入目录 |
-t, --object-types <types> | 按类型过滤 |
--transport <request> | 运输请求 |
--create | 应用更改( 默认为干运行) |
--debug | 除错输出 |
# Dry run
adt export package ZTEST_PKG ./abapgit-ztest_pkg
# Deploy with transport
adt export package ZTEST_PKG ./abapgit-ztest_pkg --create --transport NPLK900123
对象检查
adt get <object> [options]
获取 ABAP 对象的细节 。 支持的类型 : CLAS, (中文(简体) ), INTF, (中文(简体) ), DEVC。 。 。 .
| 选项 | 说明 |
|---|---|
--source | 显示源代码预览 |
--structure | 显示对象结构 |
--properties | 显示软件包等级和应用程序组件 |
--json | JSON 输出 |
-o, --output <file> | 保存 ADT XML 到文件 |
adt get ZCL_MY_CLASS
adt get ZCL_MY_CLASS --properties
adt get ZCL_MY_CLASS -o tmp/class.xml
adt check <object...> [options]
运行 SAP APT 语法检查 。 使用不活动检查现有对象
默认源; 明确选择另一个源
--source-version active|inactive|new。名称避免与
根号 adt --version 旗帜.
与 --json, Stdout 只包含报表数组。 SAP 错误/损坏消息
(单位:千美元)E编号 :A保持JSON的可读性并设定非零过程退出状态.
adt check ZCL_MY_CLASS --type CLAS
adt check ZCL_MY_CLASS --type CLAS --source-version active --json
adt outline <object>
将对象结构显示为树(方法,属性,能见度).
ℹ️ ZIF_MY_INTERFACE [interface]
├─ 🟢 GET_DATA [public method]
└─ 🔴 INTERNAL_HELPER [private method]
运输请求
adt transport 已经 adt tr 作为别名.
adt transport list [options]
| 选项 | 说明 |
|---|---|
-u, --user <user> | 按用户过滤 |
-s, --status <status> | modifiable 或者说 released |
-m, --max <n> | 最大结果( 默认: 50) |
adt transport get <tr-number> [options]
获取运输请求或任务的细节.
| 选项 | 说明 |
|---|---|
--tasks | 包含任务细节 |
--json | JSON 输出 |
adt transport create [options]
| 选项 | 说明 |
|---|---|
-d, --description <desc> | 说明(所需) |
-t, --type <type> | K (Workbench,默认)或 W (自定义) |
--target <target> | 目标系统( 默认 : LOCAL(中文(简体) ) |
adt cts tr task create <transport> <owner> [options]
在现有请求下创建一个可修改的任务,并通过 从 SAP 读取父请求.
adt cts tr task create DEVK900001 DEVELOPER
adt cts tr task create DEVK900001 DEVELOPER --json
| 选项 | 说明 |
|---|---|
--json | JSON的结晶结果 |
精确源代码历史
源历史指令遵循SAP ADT返回的不可变链接. 列名
版本和只构建一个显示返回元数据和出处; ABAP
来源仅通过明文下载 source version get 命令.
# List every source component and its immutable version metadata
adt source versions ZCL_MY_CLASS --type CLAS --json
# Restrict the listing to one exact component id
adt source versions ZCL_MY_CLASS --type CLAS \
--component implementations --json
# Read one immutable version to stdout or a file
adt source version get --uri /sap/bc/adt/.../versions/2 --output -
adt source version get --uri /sap/bc/adt/.../versions/2 --output before.abap
# Build one metadata-only manifest for an ordered transport set
adt cts tr source-manifest DEVK900001,DEVK900002 --json
adt cts tr source-manifest DEVK900001 \
--also-transport DEVK900002,DEVK900003 --json
每一表列部分都有明确的状态:
| 状态 | 含义 |
|---|---|
added | 精确的镜内头存在且没有更古老的底座 |
modified | 准确的基底和头被选中 |
deleted | CTS 标记删除并存在精确可回收基数 |
unchanged | 未显示源变化 |
ambiguous | 证明或命令不能证明一个孤立的三角洲 |
unsupported | SAP元数据显示没有可用的版本源组件 |
failed | SAP拒绝该组件的元数据/历史检索 |
ambiguous 财务报告和审定财务报表 unsupported 明确非准确结果,并离开
命令成功。 如果有条目 failed完整清单仍然
打印,命令退出非零。 结构化产出和诊断从未
包括全权证书或来源机构.
配置
创建 adt.config.ts 在项目根中进行TypeScript配置,并进行完整的类型检查:
import type { CliConfig } from '@abapify/adt-cli/config/interfaces';
const config: CliConfig = {
auth: {
type: 'btp',
btp: {
serviceKey: process.env.BTP_SERVICE_KEY_PATH || './service-key.json',
},
},
defaults: {
format: 'abapgit',
outputPath: './output',
},
};
export default config;
也支持YAML(adt.config.yaml) (中文(简体) ).
日志
# Set log level
ADT_LOG_LEVEL=debug adt discovery
# Enable verbose mode
adt transport list --verbose
# Filter log components
ADT_LOG_COMPONENTS=auth,http adt auth login --file service-key.json
可用的日志级别 : trace, (中文(简体) ), debug, (中文(简体) ), info, (中文(简体) ), warn, (中文(简体) ), error, (中文(简体) ), fatal。 。 。 .
对于SAP业务,它比本地的HTTP客户端需要更长的时间 响应标题超时, 设置正数 :
ADT_HEADERS_TIMEOUT_MS=900000 adt aunit --transport NPLK900042
让本地变量未设置( 或设置为空字符串) 默认——两者均得到同等待遇。 无效, 0, 或分数 值在请求发送前失败.
命令参考
| 命令 | 说明 |
|---|---|
adt auth login --file <path> | 以 BTP 服务密钥认证 |
adt auth logout | 清除已存储的令牌 |
adt discovery | 列出可用的 ADT 服务 |
adt discovery -o file.json | 作为 JSON 出口服务 |
adt get <object> | 获取 ABAP 对象细节 |
adt get <object> --properties | 显示软件包和组件信息 |
adt get <object> -o file.xml | 保存 ADT XML 到文件 |
adt outline <object> | 显示对象树结构 |
adt import package <pkg> | 从SAP导入包 |
adt export package <pkg> --create | 向 SAP 部署文件 |
adt transport list | 列出运输请求 |
adt transport get <TR> | 获取运输或任务细节 |
adt transport create -d "DESC" | 创建新运输请求 |
建筑
adt-cli (Commander.js, plugin loader)
├── adt-client (HTTP + auth interceptor)
│ └── adt-contracts + adt-schemas
├── adk (ABAP object parsing)
├── adt-auth (session management)
└── plugins (adt-atc, adt-export, adt-plugin-abapgit)
许可证
麻省理工学院