二次开发常用技能——BOS设计器基础使用原创
金蝶云社区-方德马
方德马
1人赞赏了该文章 1,856次浏览 未经作者许可,禁止转载编辑于2023年01月09日 10:26:26
summary-icon摘要由AI智能服务提供

本文介绍了BOS设计器中自定义实体的步骤,包括创建实体、选择父实体、添加自有和连接属性、添加分录、以及实体导出表到数据库的过程。详细说明了不同场景下的实体继承选择、属性设置、关系配置和数据库表导出操作,并提醒了数据库表导出后的注意事项。

BOS设计器的使用

1 自定义一个实体

1.1 创建实体

image.png


1)在对应的目录下右键→新建→实体,输入名称等信息。

image.png


选择父实体对象是关键,决定了该实体的作用。建议如下:

如果只是单纯地保存信息,不涉及工作流,继承ObjectBase.entity。适用于:基础资料等仅用来保存数据的场景。

如果是HR单据,继承HRBillBase.entity,具有了审批方式、单据状态、HR组织、行政组织单元和多分录的能力。适用于:只是走个工作流,供用户和审批人填写一些信息。

如果是人事变动单据,继承HRAffairBizBill.entity,一般涉及人员变动,如离职、调用、入职等。适用于:对申请员工的任职状态的变动。

此处做示范程序就用HRBillBase.entity

2)点击下一步:选择需要使用的方法

被选择的方法,将会在发布的时候,被放到自动生成的代码中,提供给开发人员使用。建议全选。

image.png


3)成功创建实体

检查类的实现信息。

这些实现信息中显示的类,大多都会在后续的开发中使用到。其中“对应表对象”,将会在“实体导出表”之后,被BOS设计工具自动地设置。

image.png


查看实体的字段。

当前的字段都是从父实体中一层一层继承而来的。点击某一个字段,在右方将会显示出该字段的详细定义信息。其中数据库的表字段,可以自己定义,也可以在实体导出表中由系统自动生成,如果没有特殊需求,建议自动生成。

image.png


1.2 为实体添加自有属性

自有属性:适用范围为本实体内部,与其他的实体没有任何关系。

连接属性:该属性与其他实体有“关联”或“聚合”关系。

点击创建的Test实体,点击右方“增加自有属性”,将会出现以下界面。其中“别名”、“描述”、“类型”、“长度”等信息需要手动设置。

image.png


       别名和描述虽然不影响功能开发,但是要认真填写,方便后续查看和修改。

大部分数据类型都可以参考现有实体进行设置,本文介绍常用的数据类型。

1)字符串类型

选择数据类型为“String”,设置长度为自己需要的长度。

image.png


2)高精度数字类型

一般用来进行金钱数额的计算,选择数据类型为“BigDecimal”,建议长度和精度都和薪酬保持一致。

image.png


3)枚举类型

① 如果需要新建一个枚举,新建枚举后选择数据类型,定义枚举的名称和数值。此处示例选择Integer类型,随便建几个枚举选项做示范。

如果没有特殊的设计,Integer的数值不要设置为0,否则界面的下拉框可能会有默认选项的问题。

image.png

image.png



在“源代码”页签找到该枚举的全路径,复制下来。

image.png


放在Test.entity的枚举字段下。

image.png


② 如果不需要新建枚举,用现存的枚举即可满足需求,则找到该枚举的全路径,直接放在枚举字段下即可。

4)其他类型

常用的类型还有Integer、Date(日期)、TimeStamp(日期+时分秒),不再赘述,可参考现有很多实体字段的定义。例如:业务日期、修改时间等等

1.3 为实体添加连接属性

假如当前场景需要在Test.entity中添加一个指向员工基本信息实体的字段,则按照以下步骤执行。

1)找到员工基本信息实体的路径

image.png




com.kingdee.eas.basedata.person.app.Person

2)新建一个Relation

image.png

明明保持R开头,R_实体1_实体2

image.png

详细配置,选择“Association”或者“Composition”,此处两个实体都是独立的,肯定选用“Association”。此处的实体对应关系是1对1,且有可能一些场景的Person信息并不需要,或者需要后续set进去,所以选择1对0…1。



 

 

3)在Test.entity新建一个连接属性,并放入Relation路径

image.png

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 实体导出表

image.png

我们创建的实体的信息最后都是保存在数据库中的。

右键点击实体,选择“实体导出表”。输入表名之后点击完成。进入如下界面:


在此界面务必要检查每一项的属性,关系到最终保存到数据库的格式。可以手动修改。对于长度为0的字段要手动设置长度。

右键点击生成的Table,选择“导出”→“导出数据库表”,选择路径之后则可以导出成为SQL语句。注意针对不同类型的关系数据库可能要做一些小修改。例如PostgreSQL中不能使用DateTime,要改为TimeStamp。

image.png

在开发和使用之前,需要在对应的数据库执行导出的SQL语句。

 


赞 1