4.3 KiB
4.3 KiB
需求文档
元数据
- 需求编号:001
- 创建时间:2026-01-28
- 创建人:AI Assistant
- 状态:进行中
- 优先级:高
需求概述
在 datai-salesforce-partner 模块中实现 Salesforce Partner API 的完整功能,提供对 Salesforce 源 org(Source Org)的数据操作能力,包括 CRUD 操作、批量操作、查询功能、描述功能、认证和会话管理、高级功能等。
目标
- 实现 Partner API 的所有核心功能,提供完整的 Salesforce 数据操作能力
- 集成
datai-salesforce-auth模块的会话管理功能 - 提供 REST API 接口,支持外部系统调用
- 默认实现源 org(Source Org)类型的数据操作
功能需求
核心功能
1. CRUD 操作
- Create: 创建新记录
- Retrieve: 检索单个记录
- Update: 更新记录
- Delete: 删除记录
- Upsert: 更新或插入记录
- Merge: 合并记录
2. 批量操作
- Create 批量: 批量创建记录
- Update 批量: 批量更新记录
- Delete 批量: 批量删除记录
- Upsert 批量: 批量更新或插入记录
3. 查询功能
- Query: 执行 SOQL 查询
- QueryAll: 查询所有记录(包括已删除的)
- QueryMore: 获取查询结果的下一页
- Search: 执行 SOSL 搜索
4. 描述功能
- DescribeGlobal: 描述所有可用对象
- DescribeSObject: 描述特定对象
- DescribeSObjects: 描述多个对象
- DescribeLayout: 描述对象布局
- DescribeTabs: 描述标签页
- DescribeQuickActions: 描述快速操作
5. 认证和会话
- Login: 用户登录(集成 SessionManager)
- Logout: 用户登出
- ChangeOwnPassword: 修改自己的密码
- SessionHeader: 会话头信息管理
6. 高级功能
- ConvertLead: 转换线索
- EmptyRecycleBin: 清空回收站
- ProcessSubmitRequest: 处理提交请求
- GetUserInfo: 获取用户信息
- GetServerTimestamp: 获取服务器时间戳
次要功能
- SOAP 头部设置(QueryOptions、AssignmentRuleHeader、EmailHeader 等)
- 错误处理和异常管理
- 结果封装和返回
非功能需求
性能要求
- 暂不考虑连接池、并发控制、缓存等性能优化
- 每次调用都创建新连接
安全要求
- 集成
datai-salesforce-auth模块的会话管理 - 使用 SessionManager 获取 Session ID 和 Server URL
- 优先使用
datai-salesforce-common模块中的现有异常
兼容性要求
- 支持 Salesforce Partner API v65.0
- 兼容 Java 22
- 兼容 Spring Boot 框架
技术约束
必须使用的框架或库
- partner.jar: Salesforce Partner API 客户端(Connector、PartnerConnection、SObject、QueryResult、SaveResult 等)
- datai-salesforce-auth: 使用 SessionManager 管理会话
- datai-salesforce-common: 使用现有异常类
必须遵循的设计模式
- Service 层模式:提供业务逻辑封装
- Controller 层模式:提供 REST API 接口
- 直接使用 partner.jar 中的现有类,不进行不必要的二次封装
必须继承的基类
- 无特殊基类要求
自定义类原则
- 优先使用 partner.jar 中的现有类
- 如果确实有需求需要使用自定义类,则新增
- 新增前需要严格判断必要性
成功标准
- 功能完整性: 所有 Partner API 核心功能都已实现并通过测试
- 认证集成: 成功集成 SessionManager,能够获取 Session ID 和 Server URL
- API 接口: 提供 REST API 接口,支持外部系统调用
- 异常处理: 正确处理各种异常情况,使用合适的异常类
- 代码质量: 代码符合项目规范,无编译错误和警告