本文档为K/3 Cloud的二次开发规范,涵盖了命名空间、程序集、BOS设计器、数据库对象命名及数据类型的详细规定。命名需准确无歧义,遵循特定格式,包含ISV标识符。程序集与命名空间需一致。BOS设计器规范了业务对象编号和对象属性标识。数据库对象命名包括表、字段、视图等,均有统一命名规范及数据类型限制。同时,业务系统插件分为四类,并指定了各自的继承抽象类。
K/3 Cloud 二次开发规范
说明:
详情请访问: K/3 Cloud 协同开发云(http://open.kingdee.com),在右上角的客户服务菜单中点击“开发规范”,也可以直接访问:http://open.kingdee.com/K3Cloud/CDPPortal/DevDoc.aspx
1.1. 命名空间
命名要求表达准确,无歧义。
书写格式:{ISV}[.K3][.业务系统][.模块][.功能]
ISV ::= 开发商标识符
业务系统 ::= K/3业务系统标识符
模块 ::= K/3模块标识符
功能 ::= 功能标识符
使用 Pascal 大小写。
1.2. 程序集
与命名空间一致,因程序集与命名空间不一致造成的组件冲突将不能注册到K/3Cloud App Store。
2. BOS设计器规范
2.1. 业务对象编号
业务对象编号(FormId):
1. 由BOS自动生成;
2. 编号格式:{ISV}_{业务对象标识};
2.2. BOS设计器对象属性标识
标识(Key)格式:{ISV}_{标识};
标识不允许重复(注:此处标识包括业务对象唯一标识、ORM实体属性名、单据体标识、字段标识)。
3. 数据库对象命名总体规则
3.1. 数据库对象命名规范
对象包括所有数据库对象(如:表、字段、视图、存储过程、主键、索引、缺省值、函数、触发器、序列)。
对象 | 命名规则 | 最大长度 | 示例 |
表 | {ISV标识符}_T_{名称} ① | 30 | KDV_T_USER |
字段 | [F_]{ISV标识符}_{名称} | 30 | F_KDV_USERNAME |
视图 | {ISV标识符}_V_{名称} | 30 | KDV_V_USER |
存储过程 | {ISV标识符}_P_{名称} | 30 | KDV_P_GETUSERLIST |
主键 | {ISV标识符}_PK_{名称} ① | 30 | KDV_PK_USER |
索引 | {ISV标识符}_IX_{表缩写}_{字段缩写} | 30 | KDV_IX_USER_FID |
缺省值 | {ISV标识符}_DF_{名称} | 30 | KDV_DF_USER_FID |
函数 | {ISV标识符}_FN_{名称} | 30 | KDV_FN_GETCOUNT |
触发器 | {ISV标识符}_TRG_{名称} | 30 | KDV_TRG_USERINS |
序列 | Z_{ISV标识符}_T_{名称} | 30 | Z_KDV_T_USER |
注:①名称必须一致; {ISV标识符}由K/3Cloud云平台开发商申请获取。
3.2. 数据类型规范
数据类型定义仅允许使用如下类型:
数据类型 | 长度 | Sql server | Oracle |
CHAR | [1,254] | CHAR[(n)] | CHAR[(n)] |
VARCHAR | [1,4000] | VARCHAR[(n)] | VARCHAR2(n) |
NCHAR | [1,2000] | NCHAR[(n)] | NCHAR[(n)] |
NVARCHAR | [1,4000] | NVARCHAR[(n)] | NVARCHAR2(n) |
BLOB | [1,2G] | IMAGE | BLOB |
NCLOB | [1,1G] | NTEXT | NCLOB |
SMALLINT | [-2^15,2~15-1] | SMALLINT | NUMBER(5) |
INT,INTEGER | [-2^31,2~31-1] | INT | NUMBER(10) |
DECIMAL | [-10^31+1,10^31-1] | DECIMAL(23,10) | NUMBER(23,10) |
DATETIME | DATETIME | DATE |
一张表的所有字段的总字节长度之和不能大于8K
附继承体系
业务系统插件分4类,单据、基础资料、动态表单和叙事簿。
业务系统 | 类(插件、服务) | 继承自抽象类 |
表单插件 | 单据插件 | Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn |
基础资料插件 | Kingdee.BOS.Core.Base.PlugIn.AbstractBasePlugIn | |
动态表单插件 | Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractDynamicFormPlugIn | |
叙事簿插件 | 叙事簿插件 | Kingdee.BOS.Core.Bill.PlugIn.AbstractListPlugIn |
推荐阅读