金蝶s-HR Cloud产品中如果在DEP扩展的实体如何进行实例化和赋值

栏目:s-hr cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

金蝶s-HR Cloud产品中如果在DEP扩展的实体如何进行实例化和赋值

如下以DEP定义的实体举例:如,实体全路径,com.kingdee.shr.custom.app.XXXXX

可以通过框架提供的方法来获取对应的bean类定义(如果要自行书写,可以反编译进行代码参考)

java.lang.Class com.kingdee.shr.base.syssetting.util.MetaDataUtil#getObjectValueClass 参数为DEP定义的实体全路径

java.lang.Class  clzz = com.kingdee.shr.base.syssetting.util.MetaDataUtil.getObjectValueClass("com.kingdee.shr.custom.app.XXXXX");

通过框架的方法来获取对应的bean实例(如果要自行书写,可以反编译进行代码参考)

com.kingdee.bos.dao.IObjectValue com.kingdee.shr.base.syssetting.util.MetaDataUtil#newInstance

com.kingdee.shr.custom.XXXXXInfo model = (com.kingdee.shr.custom.XXXXXInfo)com.kingdee.shr.base.syssetting.util.MetaDataUtil.newInstance(clzz,"com.kingdee.shr.custom.app.XXXXX"); // 这种是对标准对象扩展时候使用,有实际的bean;如果通过模板生成的,也可以使用模板的bean对象来进行

com.kingdee.bos.dao.IObjectValue model = com.kingdee.shr.base.syssetting.util.MetaDataUtil.newInstance(clzz,"com.kingdee.shr.custom.app.XXXXX");
//如果是dep全新建立的实体,采用这种写法也可以

model里面的,如果没set方法的属性赋值,直接使用put即可

image.webp



需要对tell赋值,如:

model.put("tell","137xxxxxxxx");

如果需要对DEP自行增加的枚举赋值,使用框架提供方法(com.kingdee.shr.base.syssetting.app.util.MetaDataUtil#findEnumByValue 第一个参数枚举全路径,第二个参数,获取枚举的那个值),如:

model.put("isInner",com.kingdee.shr.base.syssetting.app.util.MetaDataUtil.findEnumByValue("com.kingdee.shr.custom.xxxxEnum","xxxx"));//枚举获取接口是一个通用的,dep增加的枚举的值本质是字符串,传字符串即可;如果是标准产品枚举,枚举可能是int、long、double、float、String这几类,传对应类型即可

如果是对象属性,需要初始化对应的对象进行赋值,如:

XXXXInfo soureceModel = new XXXXInfo();
soureceModel.setId(com.kingdee.bos.util.BOSUuid.read("xxxxxxx"));
model.put("sources",soureceModel );

其他基本类型原理差不多


还有一种就是将model的json处理好后,使用平台工具序列化为对应的XXXInfo

java.lang.Class clazz =com.kingdee.shr.base.syssetting.util.MetaDataUtil.getObjectValueClass("com.kingdee.shr.custom.app.XXXXX");
String modelJSON="{\"xx\":\"xxx\",...,\"_entityName\":\"com.kingdee.shr.custom.app.XXXXX\"}";
com.kingdee.bos.dao.IObjectValue obj = com.kingdee.shr.base.syssetting.web.json.JSONUtils.convertJsonToObject(ctx, modelJSON, clazz);//此种方式种,属性_entityName必不可少



对象初始化好了调用对应接口方法进行CURD操作,实体或者facade的接口获取可以参考:https://wenku.my7c.com/article/477769901344330240?productLineId=10


金蝶s-HR Cloud产品中如果在DEP扩展的实体如何进行实例化和赋值

如下以DEP定义的实体举例:如,实体全路径,com.kingdee.shr.custom.app.XXXXX可以通过框架提供的方法来获取对应的bean类定义(如果要自行...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息