# Proposal: sap-cli 核心基础 — 连接与 CRUD ## Why ABAP 开发者长期依赖 SAP GUI 进行日常开发,需要在 IDE 和 GUI 之间频繁切换。sap-cli 的目标是让开发者用自己喜欢的本地编辑器写 ABAP 代码,通过命令行完成与 SAP 的交互。首先需要建立可靠的基础:连接 SAP 系统、加载配置,并实现开发对象的基本 CRUD 操作。 ## What Changes - 通过 SAP ADT REST API 建立连接与身份认证(HTTP Basic Auth + CSRF Token) - 支持 config.ini 和环境变量两种配置方式 - 实现 10 种 ABAP 开发对象类型的完整 CRUD: - 源码对象:report、class、interface、function - DDIC 对象:domain、dataelement、table、structure、tabletype - 特殊对象:functiongroup(无源码) - sync 命令实现锁定→写入→解锁→语法检查→激活的完整工作流 - create 支持默认模板和自定义源码两种方式 - DDIC 对象支持通过 JSON 定义文件创建 - delete 操作需要用户交互确认 ## Capabilities ### New Capabilities - `connection`: SAP ADT 连接建立、认证、配置加载 - `object-lifecycle`: 10 种开发对象的创建、下载、同步、查询、删除 ## Impact - 建立 sap-cli 的核心架构:main.py → ADTClient → SAP ADT REST API - 定义 10 种对象类型的统一注册表(types.py) - 建立统一异常体系(11 个错误类型) - 为后续批量操作、搜索浏览等功能奠定基础