1. 判断是否进行动作前提示 2. 动作执行前的事前处理
3. 如果是新增单据后保存(动作为SAVE),或修改单据后保存(动作为SAVE或EDIT),
则可能需要指派信息
4. 后台执行动作处理- PfUtilBO.processAction(…)
5. 如果动作执行的返回值为IProcActionRetObject,则进行事后前台处理
6. 如果上述过程发生异常,且异常为IPfRetException,则判断异常是否需要进行
业务处理后继续执行事后处理
7. 判断返回对象是否为PfUtilActionVO,然后前台显示
参数说明: 参数名 parent actionName billType currentDate vo userObj strBeforeUIClass checkVo 含义及取值 父UI容器 动作编码,比如“SAVE”、“EDIT” 单据类型PK,比如“D2” 处理时间 单据聚合VO 用户自定义对象 UI端数据校验类 待校验聚合VO,如果为null,则checkVo=vo
2. 单据动作处理,但不启动审批流
Object nc.ui.pub.pf.PfUtilClient. processActionNoSendMessage (
Container parent, String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj,
String strBeforeUIClass, AggregatedValueObject checkVo ) throws Exception
功能:
1. 判断是否进行动作前提示 2. 动作执行前的事前处理
3. 后台执行动作处理-PfUtilBO.processAction(…)
4. 如果动作执行的返回值为IProcActionRetObject,则进行事后前台处理
5. 如果上述过程发生异常,且异常为IPfRetException,则判断异常是否需要进行
业务处理后继续执行事后处理
6. 判断返回对象是否为PfUtilActionVO,然后前台显示
参数说明:
第 38 页
参数名 parent actionName billType currentDate vo userObj strBeforeUIClass checkVo 含义及取值 父UI容器 动作编码,比如“SAVE”、“EDIT”。但不可为“APPROVE” 单据类型PK,比如“D2” 处理时间 单据聚合VO 用户自定义对象 UI端数据校验类 待校验聚合VO,如果为null,则checkVo=vo 3. 单据动作处理(\)
Object nc.ui.pub.pf.PfUtilClient.processActionFlow(Container parent,
String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj,
String strBeforeUIClass ) throws Exception
功能:
1. 判断是否进行动作前提示 2. 动作执行前的事前处理
3. 如果单据动作以\开头,检查该单据是否处于审批流中并打开审批对话
框
4. 后台执行动作处理- PfUtilBO.processAction(…)
5. 如果动作执行的返回值为IProcActionRetObject,则进行事后前台处理
6. 如果上述过程发生异常,且异常为IPfRetException,则判断异常是否需要进行
业务处理后继续执行事后处理
7. 判断返回对象是否为PfUtilActionVO,然后前台显示
参数说明: 参数名 parent actionName billType currentDate vo userObj strBeforeUIClass 含义及取值 父UI容器 动作编码,比如“APPROVE”、“UNAPPROVE” 单据类型PK,比如“D2” 处理时间 单据聚合VO 用户自定义对象 UI端数据校验类 4. 单据动作批处理(非\)
第 39 页
Object[] nc.ui.pub.pf.PfUtilClient.processBatch(Container parent,
String actionName, String billType, String currentDate,
AggregatedValueObject[] voAry, Object[] userObjAry, String strBeforeUIClass ) throws Exception
功能:
1. 判断是否进行动作前提示 2. 动作执行前的事前处理
3. 后台执行动作处理- PfUtilBO.processBatch(…)
4. 如果返回对象为IProcActionRetObject,则按照事后业务进行处理
5. 如果上述过程发生异常,且异常为IPfRetException,则判断是否需要进行业务
处理后继续进行动作处理
参数说明: 参数名 parent actionName billType currentDate voAry userObjAry strBeforeUIClass 含义及取值 父UI容器 动作编码,比如“SAVE”、“DELETE” 单据类型PK,比如“D2” 处理时间 单据聚合VO数组 用户自定义对象数组 UI端数据校验类
5. 单据动作批处理(\)
Object[] nc.ui.pub.pf.PfUtilClient.processBatchFlow(Container parent,
String actionName, String billType, String currentDate,
AggregatedValueObject[] voAry, Object[] userObjAry ) throws Exception
功能:
1. 判断是否进行动作前提示 2. 动作执行前的事前处理
3. 如果单据动作以\开头,检查第一张单据是否可被当前操作员审批并打
开审批对话框
4. 后台执行批动作处理- PfUtilBO.processBatch(…)
第 40 页
5. 如果动作执行的返回值为IProcActionRetObject,则进行事后前台处理
6. 如果上述过程发生异常,且异常为IPfRetException,则判断异常是否需要进行
业务处理后继续执行事后处理
7. 判断返回对象是否为PfUtilActionVO,然后前台显示
参数说明: 参数名 parent actionName billType currentDate voAry userObjAry 含义及取值 父UI容器 动作编码,比如“SAVE”、“DELETE” 单据类型PK,比如“D2” 处理时间 单据聚合VO数组 用户自定义对象数组 2.2 BS端调用
后台类PfUtilBO动作处理其实委托给了5.0新增的业务组件IPFBusiAction。开发人
员既可以直接调用PfUtilBO,也可查询到IPFBusiAction组件后调用。 1. 单据动作处理
Object nc.bs.pub.pf.PfUtilBO.processAction(
String actionName, String billType, String currentDate,
PfUtilWorkFlowVO workFlow, AggregatedValueObject vo, Object userObj ) throws RemoteException
功能:
1. 数据加锁和一致性检查
2. 动作执行前的工作流处理(弃审或删除) 3. 进行动作约束检查
4. 执行动作脚本,并返回值
5. 如果返回值为IWorkFlowRet,则直接返回 6. 判断动作是否为最后一个动作,执行动作驱动
7. 如果动作编码以“SAVE”或“EDIT”结尾,则尝试启动审批流
参数说明: 参数名 actionName billType 含义及取值 动作编码,比如“SAVE”、“DELETE” 单据类型PK,比如“D2” 第 41 页
currentDate workFlow vo userObj 处理时间 工作流VO 单据聚合VO 用户自定义对象
2. 单据动作批处理
Object[] nc.bs.pub.pf.PfUtilBO.processBatch(
String actionName, String billType, String currentDate,
AggregatedValueObject[] vos, Object[] userObjAry, PfUtilWorkFlowVO workflow ) throws RemoteException
功能:
1. 遍历一遍单据VO数组,进行动作执行前的工作流处理(弃审或删除)以及动作约束
检查
2. 执行动作脚本,并返回值(要么为null,要么为Object[])
3. 遍历处理后的单据VO数组,判断动作是否为最后一个动作,执行动作驱动; 同
时进行动作执行后的工作流处理(依次启动审批流)。
参数说明: 参数名 actionName billType currentDate vos userObjAry workFlow 含义及取值 动作编码,比如“SAVE”、“DELETE” 单据类型PK,比如“D2” 处理时间 单据聚合VO数组 用户自定义对象数组 工作流VO 2.3 返回值
UI端PfUtilClient动作处理的返回值就是对应BS端动作处理的返回值。
BS端动作处理PfUtilBO.processAction(…)以及批处理PfUtilBO.processBatch(…)的返回值受动作脚本返回值(参见3.2节)的影响。
3. 动作脚本
动作脚本是单据动作的后台执行体。在流程配置中,还可对某业务类型下的单据动作脚本进行再次定制(参见第二章2.2.4节)。保存时会自动生成脚本class文件。
第 42 页