NC31审批流程开发文档_v1.2(8)
时间:2026-01-19
时间:2026-01-19
NC31审批流程开发文档_v1.2
Object retObj = new PfUtilBO().processAction(parentUI,
“SAVE”, “D1”, “2005-05-30 12:23:44”, null, billVo, userObj )
前台送审与后台送审的区别在于,前台送审会先向服务器获取流程定义中第一个审批人的可指派(参见《NC31审批流使用文档》4.1.6节)信息,以便于与客户端交互。而后台送审则默认为不可指派。
对于单张单据的送审,也可以按照批量(参见4.4.3)的方式来处理(这种应用在NC财务和供应链产品中比较常见),这时VO数组中传递的就是一张单据。
4.4.2动作脚本
送审的动作脚本没有特殊的要求,可以在脚本中进行单据VO的保存,也可以对单据VO进行更新。但如果单据UI的开发使用了UI工厂,为了维护单据数据的一致性,可在脚本中调用如下方法来保存单据并更新聚合VO。
retObj=runClass("nc.bs.trade.business.HYPubBO", "commitBill", "nc.vo.pub.AggregatedValueObject:01",vo,m_keyHas,m_methodReturnHas);
或者
SuperVO headVO = (SuperVO) billVo.getParentVO(); //主表必须为SuperVO SuperDMO dmo = new SuperDMO();
//从数据库获取到更新了ts的VO
billVo.setParentVO(dmo.queryByPrimaryKey(headVO.getClass(), headVO.getPrimaryKey()));
注意:NC30要求送审的动作脚本必须返回ArrayList或String类型的对象,在NC31中并没有这种限制了,但前提是单据聚合VO中包含有完整的单据号和单据ID信息。
4.4.3批量处理
批量送审是指多张(包括单张)单据产生后一起进行送审处理。多张单据的制单人可以相同,也可以不相同,但必须保证批处理的单据是同类型的。不同制单人的多张单据一起送审可能会启动不同的审批流程。所以对于前台的批量送审,并不会与用户交互来获取指派信息,而默认为不指派。但如果批量送审的单据VO数组中只包含一张单据,则还是会与用户交互来获取指派信息。 前台批送审调用示例:
Object retObj = nc.ui.pub.pf.PfUtilClient.processBatch(parentUI, “SAVE”, “D1”, “2005-05-30 12:23:44”, billVoAry, userObjAry, null)
后台批送审调用示例:
Object retObj = new PfUtilBO().processBatch(parentUI,
“SAVE”, “D1”, “2005-05-30 12:23:44”, billVoAry, userObjAry, null)
上一篇:高三生物选修微生物类群 人教版
下一篇:电器及PLC控制技术A卷答案