1. 简介
1.1. 目的
规范K/3Cloud产品二次开发规则,遵循过程改进、优化和管理的机制,特制定此工作指引。
1.2. 范围
本工作指引适用于金蝶K/3Cloud产品二次开发研发过程开发活动。
1.3. 面向对象
基于K/3 Cloud产品进行二次开发的所有设计师以及开发工程师。
1.4. 名词解释
- Pascal 大小写:大小写形式-所有单词第一个字母大写,其他字母小写。
例如:BackColor
- Camel 大小写:大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。
例如:backColor
<label>:语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。
{ }(大括号):必选语法项。
[ ](方括号):可选语法项。
| (竖线):分隔方括号或大括号中的语法项。只能使用其中一项。
命名空间:命名空间提供了一种组织相关类和其它类的方式。命名空间是一种逻辑组合,既用作程序的“内部”组织体系,也用作“外部”组织体系(一种表示向其他程序公开程序元素的途径)。命名空间和程序集有助于开发基于组件的系统。
- 程序集:用于物理打包和部署。程序集可以包含类型、用于实现这些类型的可执行代码以及对其他程序集的引用。
- KSQL:金蝶数据库结构化查询语言。SQL92的子集。
- 健康中心:新产品系统性能、错误诊断框架,继承自EAS1健康中心。
- 插件:基于K/3Cloud BOS平台插件,通过BOS平台提供的接口,只需要实现各个功能特殊的维护逻辑、叙事簿显示取数等接口,通过配置动态增加业务功能。
- 扩展函数:BOS平台高级扩展,针对业务系统需求扩展公共服务功能,如:取当前日期、按表达式计算、字段携带的逻辑运算等。
- K/3业务领域:指按应用范围区分的业务,如:基础、BOS、财务、供应链、制造、HR、协同。
- K/3子系统:每个领域内的按整体功能细分,如:财务会计、管理会计、资金管理、集团合并、供应链管理、成本管理、计划管理、生产管理、精益管理、资产管理、人力资源、企业绩效、商业智能、移动商务、内控管理等。
- K/3模块:每个子系统内的功能模块,如:供应链子系统下的采购管理、委外加工、销售管理、供应商协同、客户关系管理等。
1.5. 参考
《C#编码规范》
2. 开发环境及命名空间规范
2.1. 环境及配置
开发工具:VS2010 + {Oracle11gClient | SQLServer2008R2};
VS环境设置:
服务端组件输出路径:%TFS%\K3Cloud\K3CloudServer\Bin
2.2. 命名空间
命名要求表达准确,无歧义。
书写格式:{ISV}[.K3][.业务系统][.模块][.功能]
ISV ::= 开发商标识符
业务系统 ::= K/3业务系统标识符
模块 ::= K/3模块标识符
功能 ::= 功能标识符
使用 Pascal 大小写。
2.3. 程序集
与命名空间一致,因程序集与命名空间不一致造成的组件冲突将不能注册到K/3Cloud App Store。
3. BOS****设计器规范
3.1. 业务对象编号
业务对象编号(FormId)由BOS自动生成,不允许修改;
3.2. BOS****设计器对象属性标识
标识(Key)格式:{ISV}_{标识};
标识不允许重复(注:此处标识包括业务对象唯一标识、ORM实体属性名、单据体标识、字段标识)。
4. 数据库对象命名总体规则
4.1. 数据库对象命名规范
对象包括所有数据库对象(如:表、字段、视图、存储过程、主键、索引、缺省值、函数、触发器、序列)。
对象 | 命名规则 | 最大长度 | 示例 |
---|---|---|---|
表 | {ISV标识符}T{名称} ① | 30 | KDV_T_USER |
字段 | [F_]{ISV标识符}_{名称} | 30 | 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云平台开发商申请获取。
4.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 | [-1031+1,1031-1] | DECIMAL(23,10) | NUMBER(23,10) |
DATETIME | DATETIME | DATE |
一张表的所有字段的总字节长度之和不能大于8K
附
继承体系
业务系统 | 类(插件、服务) | 继承自抽象类 |
---|---|---|
表单插件 | 单据插件 | Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn |
表单插件 | 基础资料插件 | Kingdee.BOS.Core.Base.PlugIn.AbstractBasePlugIn |
表单插件 | 动态表单插件 | Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractDynamicFormPlugIn |
叙事簿插件 | 叙事簿插件 | Kingdee.BOS.Core.List.PlugIn.AbstractListPlugIn |