NC31审批流程开发文档_v1.2(10)

时间:2026-01-19

NC31审批流程开发文档_v1.2

Object retObj = new PfUtilBO().processAction(parentUI,

“APPROVE”, “D1”, “2005-05-30 12:23:44”, null, billVo, userObj )

对于单张单据的审批,也可以按照批量(参见4.5.3节)的方式来处理(这种应用在NC财务和供应链产品中比较常见),这时VO数组中传递的就是一张单据。

4.5.2动作脚本

审批的动作脚本具有特殊的要求。可对单据VO进行更新操作,也可在审批通过(分为两种,每个工作项的审批通过和整个流程的审批通过)后进行业务处理。 单张单据审批动作脚本示例:

Object m_sysflowObj = procActionFlow(vo); /** 流程仍处于审批进行中时直接返回IWorkFlowRet */ if (m_sysflowObj != null) { return m_sysflowObj; }

doBusi(getVo()); //审批流程结束(通过)后的业务处理

如果单据UI的开发使用了UI工厂,为了维护单据数据的一致性,需要在脚本中调用如下方法来更新聚合VO。

SuperVO headVO = (SuperVO) billVo.getParentVO(); //主表必须为SuperVO SuperDMO dmo = new SuperDMO();

//从数据库获取到更新了ts的VO

billVo.setParentVO(dmo.queryByPrimaryKey(headVO.getClass(), headVO.getPrimaryKey()));

4.5.3批量处理

批量审批是指当前操作员对查询到的多张(包括单张)单据一起进行审批处理。必须保证当前操作员对这些单据都具有审批权限(即都轮到他审批)。

批审批的动作脚本具有特殊的要求,可参考如下示例。

Hashtable m_sysHasNoPassAndGonging = procFlowBacth(vo) ; for (int i = 0; i < getVos().length; i++) {

Object obj = m_sysHasNoPassAndGonging.get(String.valueOf(i)); if (obj == null)

doBusi(getVos()[i]); //审批流程结束(通过)后的业务处理

}

//控制可否进行动作驱动

BatchWorkflowRet bwr = new BatchWorkflowRet(); bwr.setNoPassAndGoing(m_sysHasNoPassAndGonging); bwr.setUserObj(getVos());

return new Object[]{bwr}; //动作脚本返回值

NC31审批流程开发文档_v1.2(10).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219