版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、金蝶软件(中国)有限公司金蝶软件(中国)有限公司演讲人演讲人EAS客户化开发技术规范客户化开发技术规范讨论讨论Q介绍各个模块的主要内容介绍各个模块的主要内容技术规范的使用介绍技术规范的使用介绍各规范的内容介绍各规范的内容介绍EAS客户化开发技术规范的构成介绍客户化开发技术规范的构成介绍EAS客户化开发技术规范客户化开发技术规范构成构成代码管理规范代码管理规范命名规范命名规范编码规范编码规范元数据修改约束元数据修改约束可用性规范可用性规范技术规范的组成技术规范的组成性能约束性能约束EAS客户化开发技术规范客户化开发技术规范使用使用v使用规则使用规则按照重要程度将规范中的各个点分为按照重要程度将规
2、范中的各个点分为 强制强制 、 建议建议 、 参考参考 三个级别三个级别具体应用规则如下:具体应用规则如下: 强制强制 : 要求执行的项会标上要求执行的项会标上“ 强制强制”的标记,这些项也会作为在检查实际应的标记,这些项也会作为在检查实际应用中是否符合规范的标准用中是否符合规范的标准 建议建议 : 要求尽可能做到按所建议的方式去实现要求尽可能做到按所建议的方式去实现 参考参考 : 在具体的开发实现中可以参考该部分内容或以其它方式实现在具体的开发实现中可以参考该部分内容或以其它方式实现EAS客户化开发技术规范客户化开发技术规范命名规范命名规范编码规范编码规范可用性规范可用性规范EAS客户化客户
3、化开发技术规范开发技术规范元数据修改约束元数据修改约束性能约束性能约束代码管理规范代码管理规范EAS客户化开发技术规范客户化开发技术规范命名规范命名规范v 命名规范包含:命名规范包含:Java命名、元数据命名、数据库命名三命名、元数据命名、数据库命名三部分部分v 主要内容包含:主要内容包含:包命名包命名条目条目内容内容重要程度重要程度命名空间必须以包“com.kingdee.eas”为前缀强制子系统命名不能与标准系统包命名冲突强制不能与Java包命名冲突强制不能适用BOS中元数据类型名作为包命名,如Enum,Query等强制不能使用Java关键字命名强制EAS客户化开发技术规范客户化开发技术规
4、范命名规范命名规范条目条目内容内容重要程度重要程度普通查询普通查询必须以Query后缀结尾;命名格式:XxxQuery;举例:CurrencyQuery (币种查询) 强制F7查询以F7前缀开始以Query后缀结尾;命名格式:F7XxxQuery举例: F7CurrencyQuery (F7币种查询)强制业务功能以Function后缀结尾;命名格式:XxxFunction;举例: VoucherBizFunction强制编辑类UI以EditUI结尾;基类继承自EditUI或BillEditUI;命名格式:XxxEditUI;举例:VoucherEditUI强制v 元数据命名元数据命名EAS客户
5、化开发技术规范客户化开发技术规范命名规范命名规范条目条目内容内容重要程度重要程度实体不能以Entity、数字或中文命名强制实体关系命名格式:R_ClientEntity_SupplierEntity_ClientLinkProperty强制功能对象必须以Faade关键字结尾;命名格式:XxxFacade强制图像资源命名格式:XxxImageResource强制v 元数据命名元数据命名EAS客户化开发技术规范客户化开发技术规范命名规范命名规范条目条目内容内容重要程度重要程度名称名称CFNameCFName 强制强制 编码编码CFNumberCFNumber 强制强制 序号序号CFSeqCFSeq
6、 强制强制 描述描述CFDescriptionCFDescription 强制强制 备注备注CFCommentCFComment 强制强制 组织类型组织类型CFOrgTypeCFOrgType 强制强制 组织单元组织单元CFOrgUnitCFOrgUnit 强制强制 创建人创建人CFCreatorIDCFCreatorID 强制强制 v 数据库常用字段客户化命名数据库常用字段客户化命名EAS客户化开发技术规范客户化开发技术规范命名规范命名规范条目条目内容内容重要程度重要程度数据表CT_+CT_+子系统名子系统名+_+_+具体名称具体名称 ,长度:,长度:30 ,30 ,例:例:CT_HR_Co
7、mpenItemCT_HR_CompenItem强制视图CV_+CV_+子系统名子系统名+_+_+具体名称具体名称 ,长度:,长度:30,30,例:例: CV_ORG_UnitCV_ORG_Unit强制字段CF+CF+具体名称具体名称 ,长度:,长度:30 ,30 ,例:例:CFID, CFID, CFNumberCFNumber, , CFVerifierCFVerifier强制主键PK_+C+_PK_+C+_子系统名子系统名+_+_+具体名称,长度:具体名称,长度:18 ,18 ,例:例:PK_C_HR_CompenItemPK_C_HR_CompenItem强制外键FK_+C+_FK_+
8、C+_子系统名子系统名+_+_+具体名称具体名称 ,长度:,长度:18 ,18 ,例:例:FK_C_HR_ComColl_EmpFK_C_HR_ComColl_Emp强制约束CR_+C+_CR_+C+_子系统名子系统名+_+_+具体名称,长度:具体名称,长度: 18,18,例:例: CR_C_Sys_CodeRuleCR_C_Sys_CodeRule强制普通索引IX_+C+_IX_+C+_子系统名子系统名+_+_+具体名称具体名称 ,长度:,长度:18 ,18 ,例:例:IX_C_BA_FunctNumIX_C_BA_FunctNum强制唯一索引UX_+C+_UX_+C+_子系统名子系统名+_
9、+_+具体名称具体名称 ,长度:,长度:18 ,18 ,例:例:UX_C_BA_FunctNumUX_C_BA_FunctNum强制唯一约束UK_ C+_+UK_ C+_+子系统名子系统名+_+_+具体名称具体名称 ,长度:,长度:18 ,18 ,例:例:UK_C_BA_FunctNumUK_C_BA_FunctNum强制关系图C+_C+_子系统名子系统名_+_+顺序号顺序号+ +具体名称具体名称 ,长度:,长度:255 ,255 ,例:例:C_HR_C_HR_薪酬薪酬_3_3计算计算强制存储过程C+_C+_子系统名子系统名_+_+具体名称具体名称 ,长度:,长度:30 ,30 ,例:例:C1
10、_AR_CountBalanceC1_AR_CountBalance强制v 数据库常用字段客户化命名数据库常用字段客户化命名EAS客户化开发技术规范客户化开发技术规范命名规范命名规范 编码规范编码规范 可用性规范可用性规范 EAS客户化客户化开发技术规范开发技术规范元数据修改约束元数据修改约束 性能约束性能约束 代码管理规范代码管理规范 EAS客户化开发技术规范客户化开发技术规范编码规范编码规范v包加载规范化及其应用包加载规范化及其应用vBOS代码风格,规定适用于代码风格,规定适用于bos编码中的标准代编码中的标准代码格式码格式v异常处理异常处理基本原则基本原则v基础编码中基础编码中BOS相关
11、的编程规范相关的编程规范v业务类编码参考业务类编码参考v框架主要框架主要API的使用说明的使用说明编码规范主要内容编码规范主要内容EAS客户化开发技术规范客户化开发技术规范编码规范编码规范v 客户化包命名客户化包命名v 客户化包存放路径客户化包存放路径条目条目内容内容重要程度重要程度客户化class包客户化开发java类编译打包名:eas_sp.jar;jar文件格式建议客户化元数据包客户化元数据打包名:sp-bim-metas.jar;jar文件格式建议条目条目内容内容重要程度重要程度客户化class包客户化开发的jar包服务器端存放路径:1、安装目录/eas/server/lib/sp强制
12、2、安装目录/eas/server/deploy/fileserver.ear/easWebClient/lib/sp强制客户化元数据包客户化开发的元数据包在服务器端存放路径:1、安装目录/eas/server/metas或安装目录/eas/server/metas/sp强制2、 安装目录/eas/server/deploy/fileserver.ear/easWebClient/metas或 安装目录/eas/server/deploy/fileserver.ear/easWebClient/metas/sp强制EAS客户化开发技术规范客户化开发技术规范编码规范编码规范v 关于关于lib加载
13、次序加载次序条目条目内容内容重要程度重要程度1eas/server/lib/sp/eas-sp.jar (最先加载)参考2eas/server/lib/sp/*.jar参考3eas/server/lib/*.jar参考Eas-sp.jarSp*.jar标准版标准版.jar最先加载最先加载第二步加载第二步加载最后加载最后加载条目条目内容内容重要程度重要程度1server/metas/sp-bim-metas.jar参考2server/metas/sp/*.jar;参考3server/metas/*.jar;参考v 关于关于metas加载次序加载次序sp-bim-metas.jarSp*.jar标
14、准版标准版.jar最先加载最先加载第二步加载第二步加载最后加载最后加载了解加载次序能更了解加载次序能更快发现和解决代码快发现和解决代码及元数据部署中碰及元数据部署中碰到的问题到的问题EAS客户化开发技术规范客户化开发技术规范编码规范编码规范注释(方法、类)注释要求简洁明确、能迅速传达类、方法、变量的意义强制对于功能修改要注释出版本、修改人、日期、修改要点,例:/* * 版本 :EAS6.0 作者(修改人): xxxx xxx xxx 修改时间: xxxx年x月xx日 描 述: xxxxxxxxxxxxxxxxxxxxxxxx 更新纪录: 1、 xxxx年x月xx日,修改人xxx,增加功能包括:
15、xxxxx* */注释(代码块)直接放在代码行上方,对于重要修改要注明修改人、日期和要点 如: /*- * 张三,2008-10-01,增加查询功能 */ ICity iCity = 或者 / 张三,2008-10-01,增加查询功能 ICity iCity = 强制v 代码风格代码风格EAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内容重要程度重要程度BOS UI异常处理扩展EditUI和ListUI的所有用户界面异常采如下方法处理:handUIException(Throwable arg0)handUIExceptionAndAbort(Exception arg0
16、)强制服务端异常服务端产生的异常不影响客户端操作的通过 handleException(Exception arg0)方法处理;影响客户端操作的必须抛出异常交由客户端处理异常强制结构异常处理中必须包含try、catch语句,若有后续处理则必须包含finally子句强制Error异常不在程序中处理Error异常。 Error是程序无法处理的错误,如OutOfMemoryError、ThreadDeath等,这些异常发生时Java虚拟机(JVM)一般会选择线程终止;所以Error异常一般不处理建议Exception异常Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时
17、异常;程序中应当尽可能去处理这些异常强制v 捕获异常捕获异常v 注意异常的分类注意异常的分类EAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内容重要程度重要程度条目条目内容内容重要程度重要程度条目条目内容内容重要程度重要程度Synchronized服务器端禁止使用;对象级同步、代码同步块、静态代码同步不建议使用,在集群环境下不能使用强制完全单机操作且不涉及数据库访问或不涉及到并发场景下可以使用参考v 同步同步synchronizedv 数值操作数值操作条目条目内容内容重要程度重要程度BigDecimal 对数值类型统一使用BigDecimal类型强制禁止使用float和d
18、ouble类型,存在精度丢失强制统一使用字符串初始化实例,BigDecimal rate = new BigDecimal(1.314)强制EAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内容重要程度重要程度Enum值比较BOS 中的枚举都在客户端实现,对于有数据库值的情况是在组装值对象时恢复,如:class Colour public static final Colour RED = new Colour(0 xFF, 0, 0); public static final Colour GREEN = new Colour(0, 0 xFF, 0);每个值都是一个枚举
19、对象,使用时不能简单使用=而是使用equals方法进行比较强制v 枚举操作枚举操作EAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内容重要程度重要程度4不要在循环中构造工具或框架类的对象,如:远程接口等强制5超过2个以上字符串相加须使用StringBuffer强制6避免不必要的使用关键字 synchronized,容易造成死锁建议7减少对象的创建;JAVA中创建大的对象(比如数据库连接)的开销很大,对程序中频繁使用的对象,可将其缓存起来,下次使用时直接从缓存中获取对象建议8避免将包整个引入,应该引入本类中使用的类建议9初始化;尽量在声明局部变量的同时初始化建议10编程中没
20、有明确的理由,不允许使用拼装SQL的方式。对于sql语句动态变化的如where字句中参与条件过滤的列数是变化的,这种情况可以使用拼装SQL的方式;其其它情况下都应该使用preparestatement构造SQL建议v 通用规则通用规则EAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内容重要程度重要程度函数注册必须在目标单据上注册,使用扩展属性:billFormulaClass强制函数名注册函数名称必须以”BOT”开头强制接口类必须实现IFormulaFunctions接口强制条目条目内容内容重要程度重要程度接口要求定义Faade或entity;其中发布Web Servic
21、e接口的方法要满足BOS WEB Service的约束强制Java目录要求JAVA发布目录与发布元数据设置的java目录一致强制WSDL发布目录可以设置任意目录,不做要求强制配置文件1server-config.wsdd 位于目录:eas/Server/server/deploy/eas.ear/web.war/WEB-INF下强制配置文件2apusic/domains/server1/config/ server.xml增加web应用的配置强制接口命名接口命名以IWS为前缀强制v BOTP函数函数v WebServiceEAS客户化开发技术规范客户化开发技术规范编码规范编码规范条目条目内容内
22、容重要程度重要程度模板配置完成业务代码实现后,需要进行Portlet模板信息配置。EAS5.4文件路径:serverprofilesserver1configportalConfigportlets.xmlEAS6.0文件路径:serverdeployeas.earcp_web.warWEB-INF portlets.xml文件编辑: 1001 /Portlet对应的id,在下面会用到。 /此值定义规则:整个文件中必须唯一,不能重复 /二次开发的功能从1001开始定义,1000以内分配给标准产品使用 test/名称 view/查看视图 portlet.test/对应tiles的配置信息,下面也
23、会用到 强制v Portlet标准配置标准配置EAS客户化开发技术规范客户化开发技术规范编码规范编码规范业务配置文件路径:serverdeployeas.earcp_web.warWEB-INFtiles-defs.xml编辑: /tiles定义名称,和上面的portlet模板配置保持一致 /对应的portlet id,和上面的portlet模板配置保持一致 /业务处理页面地址 /如果是struct,则还需要在struts-config.xml中进行配置,具体参考struct /相关配置文档 强制v Portlet业务业务配置配置条目条目内容内容重要程度重要程度EAS客户化开发技术规范客户化开
24、发技术规范编码规范编码规范客户端的呈现是以一页为单位的,符合虚模式的场景,解决大分录单据的展现问题。因此大分录单据的客户端的呈现是以一页为单位的,符合虚模式的场景,解决大分录单据的展现问题。因此大分录单据的EditUI处理处理模式将发生变化,具体详述如下:模式将发生变化,具体详述如下:1、查看场景、查看场景 对于查看场景,其方式非常简单,基本上类似于对于查看场景,其方式非常简单,基本上类似于序时簿的虚模式方式序时簿的虚模式方式,具体内容请参考虚模式解决方案,这里,具体内容请参考虚模式解决方案,这里只大致介绍一下。当用户的滚动范围在已获取页中时,仅在缓存到客户端的页数据集中遍历。当用户的滚动范围
25、超只大致介绍一下。当用户的滚动范围在已获取页中时,仅在缓存到客户端的页数据集中遍历。当用户的滚动范围超过已获取的当前页时,会根据保存在数据库端的过已获取的当前页时,会根据保存在数据库端的ID列表根据数学关系取出目标页的列表根据数学关系取出目标页的ID段,然后再从目标单据的分段,然后再从目标单据的分录列表中取出目标分录集合传送到客户端展示。但录列表中取出目标分录集合传送到客户端展示。但EditUI相对比较简单,因为我们针对的不是一个相对比较简单,因为我们针对的不是一个Query查询,查询,而是分录集合,分录集合都有而是分录集合,分录集合都有Seq号码,因此其可以直接使用号码,因此其可以直接使用S
26、eq作为数学公式的自变量,相应的变化可以由框架作为数学公式的自变量,相应的变化可以由框架支持。支持。2、删除场景、删除场景 无论是新增的未保存单据,还是已保存的正编辑单据,当用户在界面上删除某一条分录时,都需要从相应的无论是新增的未保存单据,还是已保存的正编辑单据,当用户在界面上删除某一条分录时,都需要从相应的Collection中删除此分录,当用户点击保存的时候,从数据库中预先生成的单据中删除此条分录;而如果是新增的中删除此分录,当用户点击保存的时候,从数据库中预先生成的单据中删除此条分录;而如果是新增的未保存单据,则是未保存单据,则是当翻页到超出当前页范围的时候,才发出一条相应的当翻页到超
27、出当前页范围的时候,才发出一条相应的DELETE语句,但并不执行语句,但并不执行,这样,当用户,这样,当用户翻页的时候发生的翻页的时候发生的DELETE语句,而此时可能用户并未选择保存,甚至可能用户最终选择放弃,因此语句,而此时可能用户并未选择保存,甚至可能用户最终选择放弃,因此当用户选择放当用户选择放弃的时候,只需要将已保存的语句列表清空即可;而如果是确定,则需要将生成的弃的时候,只需要将已保存的语句列表清空即可;而如果是确定,则需要将生成的DML语句批量发送到数据库端执语句批量发送到数据库端执行行。这样,由于我们上面说过,用户人工的干预是少量的,因此最终发往应用服务器或者数据库端执行的。这
28、样,由于我们上面说过,用户人工的干预是少量的,因此最终发往应用服务器或者数据库端执行的SQL语句语句数目是不多的,而且是批量执行的,因此效率非常高。数目是不多的,而且是批量执行的,因此效率非常高。3、修改场景、修改场景 当用户对新增状态或者已保存正编辑单据的分录进行修改时,不但在当前当用户对新增状态或者已保存正编辑单据的分录进行修改时,不但在当前Collection中修改单据的当前值成中修改单据的当前值成为改动后的值,同时在为改动后的值,同时在SQL语句列表中生成一条对应的语句列表中生成一条对应的Update语句,同删除一样,当保存的时候,会执行语句,同删除一样,当保存的时候,会执行SQL语语
29、句列表中的句列表中的Update语句,同时清空语句,同时清空SQL语句。如果是翻页,则同删除类似,将语句。如果是翻页,则同删除类似,将Update语句放入语句放入SQL执行列表中,执行列表中,并且取出下一页的数据。并且取出下一页的数据。v 大分录单据的存取大分录单据的存取处理分录行数处理分录行数量大于量大于1000以上的单据以上的单据EAS客户化开发技术规范客户化开发技术规范编码规范编码规范EAS客户化开发技术规范客户化开发技术规范性能约束性能约束命名规范命名规范 编码规范编码规范 可用性规范可用性规范 EAS客户化客户化开发技术规范开发技术规范元数据修改约束元数据修改约束 性能约束性能约束
30、代码管理规范代码管理规范 EAS客户化开发技术规范客户化开发技术规范性能约束性能约束v包含通用性能参考指标包含通用性能参考指标v具体性能约束项具体性能约束项性能约束主要内容性能约束主要内容条目条目内容内容重要程度重要程度数据库连接从ControllerBean自身继承的getConnection方获取强制从类com.kingdee.bos.framework.ejb.EJBFactory的方法getConnection获取强制获取的数据库连接使用完毕后一定要释放;使用SQLUtils释放连接强制为保证连接的回收,代码中必须要有finally子句释放数据库连接强制举例: try conn = E
31、JBFactory.getConnnection(ctx); statement = conn.createStatement(); rs = statement.executeQuery(sql); JdbcRowSet rowset = new JdbcRowSet(); rowset.populate(rs); return rowset; catch(SQLException exc) throw new BOSException(执行sql错误:+sql, exc); finally SQLUtils.cleanup(rs, statement, conn); 强制EAS客户化开发技
32、术规范客户化开发技术规范性能约束性能约束v 代码代码-1StringBuffer字符串连接运算中,当使用的“+”号超过2个时,须使用StringBuffer进行强制举例 :StringBuffer sql = new StringBuffer( SELECT a.*, b.fitemId, c.fnumber , c.fdc rn );sql.append( FROM T_CSL_Adjust a rn);sql.append( right outer join T_CSL_AdjustEntry b rn);sql.append( on a.fid = b.fAdjustId rn);sql
33、.append( inner join T_CSL_RptItem c rn);sql.append( on c.fid = b.fitemid rn);sql.append( WHERE a.fId = ).append(pk).append( rn);强制虚模式取数对于取数量大的列表采用虚模式取数;虚模式取数每次取数最多不超过1000行强制EntityView中selector的使用采用结构化查询对象在构造EntityViewInfo对象时使用到的selector尽量避免使用*号;要明确的指出需要选择的列强制例: public SelectorItemCollection getSelec
34、tors() SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo(name); sic.add(new SelectorItemInfo(creator.id); sic.add(new SelectorItemInfo(CU.id); sic.add(new SelectorItemInfo(handler.id); sic.add(new SelectorItemInfo(auditor.id); sic.add(new SelectorItemInfo(entrys
35、.*); sic.add(new SelectorItemInfo(storageOrgU); return sic; 强制EAS客户化开发技术规范客户化开发技术规范性能约束性能约束v 代码代码-2条目条目内容内容重要程度重要程度OQL的使用在使用oql语句取数时,除确实需要选取所有列数据可使用*之外,其它情形要明确指定所要获取的列名强制例: ICurrency iCurrency = CurrencyFactory.getRemoteInstance(); CurrencyCollection coll= null; coll = iCurrency.getData(sele
36、ct id,number where number like 0%); 强制临时表数据库临时表通过统一接口管理,不允许随意创建;使用临时表时必须注意以下几点:1、创建索引 这是对性能影响最大的点,创建临时表之后必须显式调用创建索引的语句,在该临时表上创建索引.KSQL会帮你维护这些索引.例: 如通过TempTablePool#createTempTable接口创建了一个包含列“fnum, famount, fcreateTime, fpersonId” 的临时表,根据业务应用需要在fnum上创建非聚集创建,则可以使用以下语句: TempTablePool.getInstance(ctx).cr
37、eateIndex(tableName, fnumber, false, false);2、使用数据库系统临时表 在明确不跨SESSION的情况下用系统临时表性能更高。KSQL约定名称以GZTGZT开头的表会被当作数据库临时表. 数据库临时表的使用不能跨SESSION,一般的应用场景需要满足以下条件: 1).KSQL临时表系统不能满足业务对性能的要求; 2).业务方法中仅使用一个数据库连接(不跨SESSION); 3).业务方法结束后该临时表可以被丢弃(一般用来导入/导出数据);强制EAS客户化开发技术规范客户化开发技术规范性能约束性能约束v 代码代码-3条目条目内容内容重要程度重要程度接口缓
38、存对于同一远程接口调用次数2次的,要将接口变量进行缓存,不能在每次调用中都创建该远程接口强制数据缓存对于服务端返回的同一数据如果使用频率2次的,要将数据进行缓存,不允许每次使用时都从服务端取数强制条目条目内容内容重要程度重要程度SQL函数禁止使用not in,使用not exists 或left outer join替换强制select语句对于复杂多列的大数据表,禁止使用select * from table样式的语句强制触发器为保证性能及程序独立性,不允许使用触发器强制存储过程存储过程中不使用游标强制存储格式数据库脚本文件需保存为UTF-8格式强制EAS客户化开发技术规范客户化开发技术规范性
39、能约束性能约束v 代码代码-4v SQL条目条目内容内容重要程度重要程度条目条目内容内容重要程度重要程度1备注、描述、BLOB、CLOB大数据字段,不能创建索引强制2对于集群度低于10%的列不能建立单字段索引,但可以与其他列一起创建组合索引强制3新建的组合索引与已有组合索引的重复字段个数不能超过3个,如已存在包含新建组合索引所有字段的索引,则无需再新建索引强制4不能在字符类型,长度超过900的字段上建立索引强制5联合索引中所有字段的长度和不能超过900强制6通常情况下,单张表索引数不能超过5个,对于数据量超过20万,且主要用于查询的表,可适当增加索引强制EAS客户化开发技术规范客户化开发技术规
40、范性能约束性能约束v 数据库索引使用规范数据库索引使用规范条目条目内容内容重要程度重要程度1取消表的外键,通过业务代码及元数据描述保证数据的完整性。如:以前元数据中通过外键来检查引用关系都已经修改为不使用外键;bos工具中也不再支持外键的发布强制2每张表必须建立主键约束强制3表字段数最多不能超出50,超出部分的字段建在扩展表中;单个表所有字段的总字节长度之和8K强制4数据库表需设置为自增长,每次extend不小于1M强制5表不允许建立在系统或临时空间内强制EAS客户化开发技术规范客户化开发技术规范性能约束性能约束v 数据库表使用规范数据库表使用规范条目条目内容内容重要程度重要程度字符型字段字符
41、型字段可分为定长型(CHAR)变长型(VARCHAR)两种,对于字符长度确定的字段使用定长字符型,存入的内容长度必须严格等于字段定义长度,否则使用变长字符类型。如:ID字段应该使用varchar(44)强制确定一定不会存入中文字符的字段才使用CHAR 或VARCHAR强制对于可能存储中文字符的字段统一使用NCHAR 或 NVARCHAR,考虑EAS以后支持多语言,存储其它语言字符的字段也需使用 Unicode 字符数据类型NCHAR 或 NVARCHAR。(除了ID,其他字段都应该是nvarchar)强制整型字段对于整型字段,固定使用INT类型强制金额、数量字段存储金额、数量的字段,统一使用d
42、ecimal类型,不能使用诸如Double、Float的非精确类型同时必须提供精度和小数位定义,例如 dicemal(28,10),numeric(18,6),必须指定默认值强制EAS客户化开发技术规范客户化开发技术规范性能约束性能约束v 数据库字段类型的应用数据库字段类型的应用EAS客户化开发技术规范客户化开发技术规范可用性规范可用性规范命名规范命名规范 编码规范编码规范 可用性规范可用性规范 EAS客户化客户化开发技术规范开发技术规范元数据修改约束元数据修改约束 性能约束性能约束 代码管理规范代码管理规范 EAS客户化开发技术规范客户化开发技术规范可用性规范可用性规范v 主要包含界面可用性
43、、全键盘应用及鼠标操作、界面主要包含界面可用性、全键盘应用及鼠标操作、界面规范,具体可参考规范,具体可参考可用性规范可用性规范文档文档鼠标及键盘操作界面规范可用性可用性主要对界面可用性主要对界面大小、控件的使用大小、控件的使用、常规操作进行规、常规操作进行规范范对键盘的功能键、对键盘的功能键、组合键的应用进行组合键的应用进行了规定;并对鼠标了规定;并对鼠标的应用进行了归纳的应用进行了归纳给出了相应场景给出了相应场景通过图例的方式规通过图例的方式规范范EAS中单据编辑中单据编辑界面、非常规混合界面、非常规混合排版、提示框、对排版、提示框、对话框、列表界面、话框、列表界面、工具栏、按钮、文工具栏、
44、按钮、文本框、表格等的使本框、表格等的使用用功能键、组合键不能功能键、组合键不能与标准系统冲突与标准系统冲突EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束命名规范命名规范 编码规范编码规范 可用性规范可用性规范 EAS客户化客户化开发技术规范开发技术规范元数据修改约束元数据修改约束 性能约束性能约束 代码管理规范代码管理规范 v 该部分内容主要包含对标准版元数据可修改内容的界该部分内容主要包含对标准版元数据可修改内容的界定,涉及的元数据类型包括:定,涉及的元数据类型包括:Entity、Query、Table、Relationship、Facade、Exception、E
45、num、Function、Resource、BizDataType、Permission、Log、UI v 元数据修改会影响到后续的版本升级,因此需要分清元数据修改会影响到后续的版本升级,因此需要分清楚哪些是允许修改的内容楚哪些是允许修改的内容v 对于对于“规则规则”类型的元数据已废止,新的项目开发中类型的元数据已废止,新的项目开发中不能使用不能使用EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束编辑器页签名内容分类客户版可允许修改出厂元数据范围备注属性属性列表可增加自有属性可增加连接属性详细信息可修改别名、描述对于客户新增的属性,全部功能可用。扩展属性可增加扩展属性可移
46、动扩展属性的顺序可修改扩展属性的值方法方法列表可增加方法可导入方法可覆盖方法 详细信息可修改别名、描述对于客户新增的方法,全部功能可用。参数仅可修改别名、描述异常仅可修改别名、描述事件事件列表可增加事件一般信息可修改别名、描述对于客户新增的事件,全部功能可用。引用方法列表可导入引用的方法逻辑键逻辑键可修改别名、描述图形化编辑同上述文本编辑的内容EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束v Entity(实体实体)EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束编辑器页签名内容分类客户版可允许修改出厂元数据范围备注定义一般信息可修改别名、描述、分
47、组查询、消除重复行子对象可导入、增加子对象对于客户新增/新导入的子对象,还可以进行编辑、删除扩展属性可增加扩展属性可移动扩展属性的顺序可修改扩展属性的值字段查询字段可增加字段计算或组合列可导入字段可移动字段的顺序,即向上、向下按钮可用查询字段定义可修改显示名称、可过滤、可排序、可见性对于客户新增的查询字段,全部功能可用。扩展属性可增加扩展属性可移动扩展属性的顺序可修改扩展属性的值v Query(查询查询)修改标准产品列表、修改标准产品列表、F7查询、查询、打印数据源时会常常涉及到打印数据源时会常常涉及到Query的修改的修改编辑器页签名内容分类客户版可允许修改出厂元数据范围备注基本表定义基本信
48、息可修改别名、描述主键无字段可增加字段可移动字段的顺序,即向上、向下按钮可用索引可增加索引对于客户新增的索引,全部功能可用。外键可增加外键对于客户新增的外键,全部功能可用。扩展表引用引入扩展表可增加扩展表引用对于客户新增的扩展表引用,可删除。v Table(表表)v Relationship编辑器页签名内容分类客户版可允许修改出厂元数据范围备注关系定义一般信息可修改别名、描述其它无EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束编辑器页签名内容分类客户版可允许修改出厂元数据范围备注枚举定义一般信息可修改别名、描述值定义可“增加”值定义,但不能修改对于客户新增的值定义,全部
49、功能可用。可移动值定义的顺序,即向上、向下按钮可用。编辑器页签名内容分类客户版可允许修改出厂元数据范围备注基础信息基本信息可修改别名、描述操作定义操作列表可增加操作可移动操作的顺序,即向上、向下按钮可用。详细信息可修改别名、描述对于客户新增的操作,全部功能可用。扩展属性可增加扩展属性可移动扩展属性的顺序可修改扩展属性的值v Enum(枚举枚举)v Function(功能功能)EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束编辑器页签名内容分类客户版可允许修改出厂元数据范围备注权限定义一般信息可修改别名、描述权限项权限项可增加权限项可移动权限项的顺序,即向上、向下按钮可用。
50、可复制、粘贴权限项。详细信息可修改权限项的别名、描述、实体对象对于客户新增的权限项,全部功能可用。引用对象可增加、删除引用对象可移动引用对象的顺序,即向上、向下按钮可用。引用属性可增加、删除引用属性可移动引用属性的顺序,即向上、向下按钮可用。依赖信息可增加、删除依赖信息可移动依赖信息的顺序,即向上、向下按钮可用。扩展属性可增加扩展属性对于orgRelation扩展属性,不可以修改值。其它的扩展属性允许修改值v Permission(权限权限)EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束内容分类客户版可允许修改出厂元数据范围备注先在大纲视图中选中UI/Toolbar/M
51、enubar后,再查看属性视图可修改标题、别名、缺省按钮,其余的不可改图形编辑可新增控件可改变控件的位置与大小(图形编辑或大纲视图)选中控件后,再查看属性视图不可修改控件的名称属性, 其它的属均可修改。对于客户新增的控件,全部功能可用。在属性视图的事件页签中,可新增事件,不可删除事件,也不可修改事件的方法名。大纲视图可新增Action可新增Status先在大纲视图中选中Action后,再查看属性视图不可修改name、Action类名,其余的均可修改对于客户新增的Action,全部功能可用。先在大纲视图中选中Status后,再查看属性视图不可修改name,其余的均可修改对于客户新增的Status
52、,全部功能可用。状态编辑全部功能可用多语言编辑全部功能可用数据绑定只能增加控件属性的数据绑定,其它的功能全部不可用。v UI(用户界面用户界面)EAS客户化开发技术规范客户化开发技术规范元数据修改约束元数据修改约束EAS客户化开发技术规范客户化开发技术规范代码管理代码管理命名规范命名规范 编码规范编码规范 可用性规范可用性规范 EAS客户化客户化开发技术规范开发技术规范元数据修改约束元数据修改约束 性能约束性能约束 代码管理规范代码管理规范 v 代码管理与开发紧密相代码管理与开发紧密相关,这里对环境要求及关,这里对环境要求及代码管理工具的使用进代码管理工具的使用进行了明确行了明确v 主要内容有代码管理工主要内容有代码管理工具、机器配置要求、及具、机器配置要求、及工具的使用工具的使用EAS客户化开发技术规范客户化开发技术规范代码管理代码管理机器配置机器配置条目条目内容内容重要程度重要程度硬件要求PC机,配置推荐为P4 2.0以上,硬盘最小80G,内存1G以上要求性能稳定强制环境要求专用机器;操作系统采用windows2000 Server建议条目条目内容内容重要程度重要程度cvscvsnt-2.0(服务器)以上;WinCvs13b12;Python-2.2.3(辅助软件)用作代码管理强制cvsnt-2.5.03;WinCvs2.0.2;pyth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《日语学术论文写作》教学大纲
- 2024版家庭装修水电安装协议书
- 2024网络游戏开发运营方与广告代理商的广告投放合同
- 中考名著导读《红岩》
- 2024门窗行业信息化建设与数据服务合同3篇
- 2024雏鸡养殖设备采购合同
- 05 全真模拟(一)-备战2023年中考英语听说高分攻略(北京专用)(答案及听力原文)
- 2024航空器材采购与维修合同
- 2024铜门行业论坛赞助与合作合同3篇
- 临床技能训练 循环系统-卫生部评估课件
- 自来水工程施工方案
- 2024年度科研机构实验技术人员劳务派遣合作框架
- 2023年中职《计算机网络技术》秋季学期期末考试试卷(附答案)
- 2025七年级下道德与法治教学工作计划
- 2025年护理部护士理论培训计划
- 环保管家管家式管家式一站式服务合同
- 医疗废物污水培训
- 防网络电信诈骗主题班会
- 癫痫持续状态中国专家共识
- 污水厂清淤泥施工方案
- 房地产营销策划 -佛山龙湾壹号学区房项目推广策略提案方案
评论
0/150
提交评论