---
name: kd-flagship-sdk
description: 苍穹/旗舰版 SDK 调用与架构规范。API 使用/jar 引用/枚举/常量处理。
alwaysApply: false
---

# 苍穹 SDK 与架构规范

## SDK 调用
- 【强制】只能使用标注 `SdkXXX` 的开放 API，禁止用 `SdkInternal` 或标准产品内部业务类（非 SDK）
- 判断标准：`@SdkPublic` 等注解；sdk 相关 jar 包（`sdk-fi.jar`、`sdk-scm.jar` 等）；SDK 文档 https://dev.kingdee.com/index/open
- 【推荐】查询一条数据是否存在时用 `QueryServiceHelper.exist`，不用 `queryOne` 再判断

> 插件工程组织、jar 包引用边界、调试技巧见 [`kd-flagship-plugin`](./kd-flagship-plugin.md)；本文件专注 SDK 命名空间与开放 API 集合。

## Jar 引用
- 【强制】如平台已存在第三方 jar 包（版本一致），需沿用平台版本或报备总部评估新版本
- 【强制】如平台不存在第三方 jar 包，**金蝶AI禁止引入其他第三方 jar 包**
  - 公有云环境禁止；私有云订阅环境不受限制
  - 必须引入时，该客户环境必须为专属 VIP 资源且专属 Rds，同时出具免责声明
- 【强制】跨云跨应用调用需要使用微服务，不能直接依赖对应 jar 包
- 【强制】禁止跨库写（一个事务里禁止写两个或以上物理库）
- 【强制】禁止跨节点事务

## 枚举类型处理
- 【推荐】枚举类也存在与静态常量一样的多语言问题，建议按 `MultiLangEnumBridge` 模式处理
- 不要在枚举构造方法中直接硬编码中文字符串，否则切换语言时不会重新加载译文

## 静态常量处理
- 【强制】程序提示语静态常量不能直接用 `static final String`
- 必须用 `ResManager.loadKDString()` 加载多语言资源
- 建议把静态常量改成 `getMsg()` 方法形式，在方法内调用 `ResManager.loadKDString()`

## 导入规范
- 【推荐】导入时禁止使用通配符 `*`，应当显式导入
  - 可读性差、可维护性差、性能问题、类冲突风险