【适用版本】
s-HR V8.5及以上
【应用场景】
场景:给员工扩展一个属性,例如现住址,要求入职时就填写数据,并且在入职单生效后,员工基本信息能存储填写的现住址信息 前端要求:如果保存时,现住地未填写,提示用户填写。
Java端要求:入职单提交生效后,也需要保存进员工
【详细说明/示例/操作步骤】
1、 实体扩展
动态扩展平台高级版 --> 新建方案 --> 添加实体
1.1入职单实体扩展
在动态扩展平台找到入职单实体,在员工入职分录加一个nowLiveAddr,并且保存,启用方案
1.2员工扩展
因为要将字段反写到员工基本信息上,所以需要在员工表添加现住地字段。员工基本信息是历史模型,所以员工表和员工历史表都要添加此字段
在实体节点,右键,导入实体,选择员工_个人信息。如果搜索不到实体,可以在弹出框按F7,在空白框输入实体路径com.kingdee.eas.basedata.person.app.Person,点击确定。
2、视图扩展
2.1入职视图中添加字段
<field name="entrys.nowLiveAddr" label="现住地"></field>
若入职单实体字段添加成功可在入职单看到现住地字段
2.2 员工基本信息视图添加字段
因为场景需要将此字段反写到员工基本信息,所以要在员工基本信息页面同样配置一个现住地字段,用于单据生效后查看。
3、JS扩展
在入职单视图中加
<script src="${appPath}/customer/web/js/empEnrollBizBillHrManEditEx.js"></script>
jsClass需要调整为自己写的JS类,并且继承标准产品,部署到(部署目录要看自己对应的二开环境目录)
E:\EAS850_TRUNK\eas\server\deploy\easweb.ear\shr_web.war\addon\customer\web\js
3.1 测试js
可在js中添加提示信息打出测试js是否被加载到
当看到打印出提示时表示二开新加的js被加载到
3.2 必填校验.
添加成功后可实现对字段的必填校验。也可以通过视图配置此字段必填
此处仅做保存时校验,因此在doSave方法添加了校验,如果需要在提交工作流和提交生效做校验重写对应方法即可。
4、 后端扩展
4.1扩展入职单ControllerBean
单据生效方法为_entryEffect()。可重写_dowithSpecialFiledsEffect方法对字段反写逻辑做处理
4.2 打包部署后端代码
将编写后端类导出成jar包,并放入后端eas/server/lib/sp目录下
4.3 DEP启用扩展ControllerBeanEX
编写的后端代码关联到入职单实体,以此来实现入职单生效时走二开扩展的代码
在动态扩展平台中配置”入职单”实体的“实体扩展属性”,扩展名为controllerBeanEx的实体扩展属性,值为二开的类路径。保存启用方案。
controllerBeanEx=com.kingdee.customer.app.EmpEnrollBizBillControllerBeanEx
5、结果验证
按照上面步骤做完,并部署到测试环境后,可达到在入职单添加现住地字段,在单据生效后反写到员工基本信息
【注意事项/常见错误】
现象:很多同学在按照上面步骤做完后,发现查看信息变更记录,这里显示的“现住地扩展字段”却是空的。并没有将单据上的字段反写过来。
原因:很多同学给员工基本信息添加字段时忽略了 员工实体是一个历史模型,除了要给当前实体添加字段,还需要给历史实体添加字段。添加上即可。此问题在上面给员工实体添加字段时有过强调。