本文介绍了BOS设计器中自定义实体的步骤,包括创建实体、选择父实体、添加自有和连接属性、添加分录、以及实体导出表到数据库的过程。详细说明了不同场景下的实体继承选择、属性设置、关系配置和数据库表导出操作,并提醒了数据库表导出后的注意事项。
BOS设计器的使用
1 自定义一个实体
1.1 创建实体
(1)在对应的目录下右键→新建→实体,输入名称等信息。
选择父实体对象是关键,决定了该实体的作用。建议如下:
如果只是单纯地保存信息,不涉及工作流,继承ObjectBase.entity。适用于:基础资料等仅用来保存数据的场景。
如果是HR单据,继承HRBillBase.entity,具有了审批方式、单据状态、HR组织、行政组织单元和多分录的能力。适用于:只是走个工作流,供用户和审批人填写一些信息。
如果是人事变动单据,继承HRAffairBizBill.entity,一般涉及人员变动,如离职、调用、入职等。适用于:对申请员工的任职状态的变动。
此处做示范程序就用HRBillBase.entity。
(2)点击下一步:选择需要使用的方法
被选择的方法,将会在发布的时候,被放到自动生成的代码中,提供给开发人员使用。建议全选。
(3)成功创建实体
检查类的实现信息。
这些实现信息中显示的类,大多都会在后续的开发中使用到。其中“对应表对象”,将会在“实体导出表”之后,被BOS设计工具自动地设置。
查看实体的字段。
当前的字段都是从父实体中一层一层继承而来的。点击某一个字段,在右方将会显示出该字段的详细定义信息。其中数据库的表字段,可以自己定义,也可以在实体导出表中由系统自动生成,如果没有特殊需求,建议自动生成。
1.2 为实体添加自有属性
自有属性:适用范围为本实体内部,与其他的实体没有任何关系。
连接属性:该属性与其他实体有“关联”或“聚合”关系。
点击创建的Test实体,点击右方“增加自有属性”,将会出现以下界面。其中“别名”、“描述”、“类型”、“长度”等信息需要手动设置。
别名和描述虽然不影响功能开发,但是要认真填写,方便后续查看和修改。
大部分数据类型都可以参考现有实体进行设置,本文介绍常用的数据类型。
(1)字符串类型
选择数据类型为“String”,设置长度为自己需要的长度。
(2)高精度数字类型
一般用来进行金钱数额的计算,选择数据类型为“BigDecimal”,建议长度和精度都和薪酬保持一致。
(3)枚举类型
① 如果需要新建一个枚举,新建枚举后选择数据类型,定义枚举的名称和数值。此处示例选择Integer类型,随便建几个枚举选项做示范。
如果没有特殊的设计,Integer的数值不要设置为0,否则界面的下拉框可能会有默认选项的问题。
在“源代码”页签找到该枚举的全路径,复制下来。
放在Test.entity的枚举字段下。
② 如果不需要新建枚举,用现存的枚举即可满足需求,则找到该枚举的全路径,直接放在枚举字段下即可。
(4)其他类型
常用的类型还有Integer、Date(日期)、TimeStamp(日期+时分秒),不再赘述,可参考现有很多实体字段的定义。例如:业务日期、修改时间等等
1.3 为实体添加连接属性
假如当前场景需要在Test.entity中添加一个指向员工基本信息实体的字段,则按照以下步骤执行。
(1)找到员工基本信息实体的路径
com.kingdee.eas.basedata.person.app.Person
(2)新建一个Relation
明明保持R开头,R_实体1_实体2
详细配置,选择“Association”或者“Composition”,此处两个实体都是独立的,肯定选用“Association”。此处的实体对应关系是1对1,且有可能一些场景的Person信息并不需要,或者需要后续set进去,所以选择1对0…1。
(3)在Test.entity新建一个连接属性,并放入Relation路径
1.4 添加分录
由于Test.entity是继承于HRBillBase.entity,则对应的单据分录就要继承HRBillBaseEntry.entity。
假设TestEntry.entity继承于HRBillBaseEntry.entity,对TestEntry添加自有属性和连接属性的过程与上述一致。
为了把单据头Test和单据分录TestEntry关联起来,需要额外建立一个Relation,此处关联类型选择“Composition”,至于是1对1还是1对多的关系则需要根据业务选择。然后在Test中新增entrys连接字段,在TestEntry中新增bill连接字段,都放上该Relation的路径。
1.5 实体导出表
我们创建的实体的信息最后都是保存在数据库中的。
右键点击实体,选择“实体导出表”。输入表名之后点击完成。进入如下界面:
在此界面务必要检查每一项的属性,关系到最终保存到数据库的格式。可以手动修改。对于长度为0的字段要手动设置长度。
右键点击生成的Table,选择“导出”→“导出数据库表”,选择路径之后则可以导出成为SQL语句。注意针对不同类型的关系数据库可能要做一些小修改。例如PostgreSQL中不能使用DateTime,要改为TimeStamp。
在开发和使用之前,需要在对应的数据库执行导出的SQL语句。
推荐阅读