工厂实例方法
工厂应用代码示例
Ø 保存值对象:ProjectFactory.getLocalInstance(ctx).save(project)
Ø 获取值对象:ProjectInfo project = ProjectFactory.getRemoteInstance().getValue(pk)
Ø 删除记录:ProjectFactory.getLocalInstance(ctx).delete(pk)
Ø 提交值集合:ProjectFactory.getRemoteInstance().submit(ProjectCollection)
Ø 检查单据记录是否存在:ProjectFactory.getRemoteInstance().exists(pk)
Java代码生成ID
id字符串转换为IObjectPK/ObjectUuidPK:ObjectUuid pk = new ObjectUuidPK(String);
已有BOSObjectType,创建BOSUuid:info.setId(BOSUuid.create(BOSObjectType));
已有BOSUuid转为IObjectPK:ObjectUuid pk = new ObjectUuidPK(BOSUuid.toString());
已有IObjectPK转为BOSUuid:BOSUuid.read(IObjectPK.toString)
// IObjectPK samplePk= new ObjectUuidPK("Wrn79AblR+WT5rIfjdWgMoEQqrI=");
// DailyLoanBillInfo sampleBill = DailyLoanBillFactory.getLocalInstance(ctx).getDailyLoanBillInfo(samplePk);
// sampleBill.setDescription("ceshi0001");
// DailyLoanBillFactory.getLocalInstance(ctx).save(sampleBill);
开发中经常遇到从数据库直接Insert数据,这时候需要在数据库层创建EAS单据的ID,EAS在账套数据库中会自动创建一个专用于创建单据的函数:newbosid(BOSObjectType) ,注意在SQL Server的查询分析器中需要限定owner,需要写成:dbo.newbosid(BOSObjectType)
使用示例:insert into table (FID,FNumber,FName_l2,……) values (newbosid('D8002BA9'), '001', '大型项目', ……)
1.1.1. 常见开发的框架方法
_save(Context ctx, IObjectValue model),对应单据的保存或者基础资料的暂存方法
_submit(Context ctx, IObjectValue model),对应单据的提交或者基础资料的保存方法
_submit(Context ctx, IObjectPK pk, IObjectValue model),工作流审批环节的提交操作,会调用对应单据的此方法
_delete(Context ctx, IObjectPK pk),对应单据和基础资料的删除操作
_cancel(Context ctx, IObjectPK pk, IObjectValue model) ,对应基础资料的禁用操作
_cancel Cancel (Context ctx, IObjectPK pk, IObjectValue model) ,对应基础资料的启用操作
一般我们会为单据增加审核audit和反审核unAudit方法,参数为ObjectValue和ObjectPK,异常为EASBizException,这样我们还需要开发:
_audit(Context ctx, IObjectValue model)
_unAudit(Context ctx, IObjectValue model)
1.1.2. 常见开发内容
_save和_submit在保存前检查单据状态,检查单据字段,补充计算
_delete在删除前检查单据状态,检查单据是否在工作流中,检查是否已生成下游单据
_audit在执行前检查单据状态(不允许重复审核),检查单据字段;修改单据状态,记录操作人和操作时间;执行来源单据或其他关联数据的反写,执行上游业务检查控制逻辑
_unAudit在执行前检查单据状态(不允许重复反审核),检查单据无下游单据;修改单据状态,清除操作人和操作时间;执行来源单据或其他关联数据的反写,执行上游业务检查控制逻辑
注意:检查单据状态应当以数据库中实时读取的单据状态为准,而不是以通过参数传递过来的IobjectValue对象中保存的状态字段值为准
太感谢了,BOSUuid IObjectPK id ObjectUuid 这些东西我一头雾水,有时候接口要一个,但我能得到的是另外一个,光看那些没特征的也看不懂是个啥
工厂实例方法
本文2024-09-16 22:02:10发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-45518.html