随着对iMatrix平台的进一步认识,下面是对环节属性中的事件处理的进一步研究,给大家分享下,
环节的办理前、办理后事件处理。
1 提交前:
iMatrix平台的提交前执行url:用于交互完成任务,比如下一环节的办理人需要当前环节的办理人选择确定,选完办理人后调用交互完成任务的api completeInteractiveWorkflowTask完成任务。
执行方法:设置任务完成前需要执行的处理类,在该类中可以对业务数据做处理等。处理类需要实现的接口为com.norteksoft.wf.engine.client.BeforeTaskSubmit。“spring bean的名称“表示设置对应处理类在spring容器中的bean名。当办理前接口返回true时,则任务正常办理;返回false时,任务将不能够正常完成,同时办理任务返回结果MESSAGE,其消息内容为设置的”执行失败后提示信息“(表示提示当前办理人的信息)。
代码解析如下:
TaskService.java中的complete方法是完成任务的最终实现方法,提交时关于事件的处理代码如下:
private CompleteTaskTipType complete(WorkflowTask task, TaskProcessingResult operation,TaskSetting setting){
… … … …
//办理前是否需要指定办理人。如果设置了提交前执行url,则以下代码返回值为枚举类CompleteTaskTipType .RETURN_URL,同时将设置的url放在该枚举的content变量中。
result = getBeforeTaskSubmitUrl(task,operation,setting);
… … … …
//办理前执行事件处理
result = beforSubmit(task,operation);
… … … …
}
红色字体代码段为:获得执行的bean名称、获得spring容器中的bean、执行该bean中的方法。
private CompleteTaskTipType beforSubmit(WorkflowTask task, TaskProcessingResult operation){
… … … …
String beanName = DefinitionXmlParse.getBeforeTaskSubmitImpClassName(wi.getProcessDefinitionId(), task.getName());
if(StringUtils.isNotEmpty(beanName)){
BeforeTaskSubmit obj = (BeforeTaskSubmit) ContextUtils.getBean(beanName);
if(obj==null){
log.debug("执行任务提交前事件 时,bean不能为null");
throw new RuntimeException("执行任务提交前事件 时,bean不能为null");
}
boolean result = obj.execute(wi.getDataId(),operation);
if(!result){
return CompleteTaskTipType.MESSAGE.setContent(DefinitionXmlParse.getBeforeTaskSubmitResultMessage(wi.getProcessDefinitionId(), task.getName()));
}
}
return null;
}
2 提交后:
设置任务完成时需要执行的处理类 ,在该类中可以对业务数据做处理等。处理类需要实现的接口为com.norteksoft.wf.engine.client.AfterTaskCompleted。“spring bean的名称“表示设置对应处理类在spring容器中的bean名。
代码解析如下:
private CompleteTaskTipType complete(WorkflowTask task, TaskProcessingResult operation,TaskSetting setting){
… … … …
result=executionCompanyTask(task, operation,setting);
… … … …
}
private CompleteTaskTipType executionCompanyTask(WorkflowTask task, TaskProcessingResult operation,TaskSetting setting){
… … … …
completeTaskTipType = completeWfTask(instance,task, parentExecutionId);
… … … …
}
Private CompleteTaskTipType completeWfTask(WorkflowInstance instance,WorkflowTask task, String parentExecutionId){
… … … …
completeTask(task);
… … … …
}
private void completeTask(WorkflowTask task){
.. … … …
executeAfterTaskCompleted(task);
}
红色字体代码段为:获得执行的bean名称、获得spring容器中的bean、执行该bean中的方法。
private void executeAfterTaskCompleted(WorkflowTask task){
… … … …
String beanName = DefinitionXmlParse.getAfterTaskCompletedBean(
instance.getProcessDefinitionId(), task.getName());
if(!StringUtils.isEmpty(beanName)){
AfterTaskCompleted bean = (AfterTaskCompleted) ContextUtils.getBean(beanName);
if(bean==null){log.debug("任务完成后执行bean时,bean不能为null");throw new RuntimeException("任务完成后执行bean时,bean不能为null");}
bean.execute(instance.getDataId(), task.getTaskProcessingResult());
}
}
相关推荐
这些事件在UG后处理程序中扮演着重要的角色,能够帮助用户更灵活地定制输出的NC代码。本文将详细介绍MOM事件的种类及其应用,为读者提供一个全面的理解框架。 #### MOM事件概述 MOM事件主要分为两大类:预定义事件...
`ColorMatrix`用于处理颜色空间转换,而`Matrix`则用于对图像进行几何变换,如旋转、缩放和平移。 `ColorMatrix`类是一个5x4矩阵,用于对像素的颜色信息进行线性变换。它可以改变图像的亮度、饱和度、色调和色相,...
iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev源码
### Matrix BPM 流程入门详解 #### 一、概述 Matrix BPM是一款专业的企业级业务流程管理(Business Process Management, BPM)软件,旨在帮助企业通过可视化工具快速设计、管理和优化业务流程。该工具支持主流服务器...
这个教程将深入探讨如何在Android中利用Matrix对Bitmap进行处理。 首先,我们需要了解Bitmap的基本操作。Bitmap可以通过多种方式加载,例如从资源文件、内存或文件系统中获取。加载后,我们可以获取其宽度、高度和...
通过对视频的实时捕获、二值化处理和截图,项目提供了一个基础的视频分析平台,为后续的图像分析和处理任务打下了基础。在实际应用中,这样的程序可以被扩展用于各种场景,例如监控系统、行为识别、交通流量监测等。...
这个压缩包文件提供的内容是关于如何使用C#语言与Matrix Vision工业相机进行交互的示例程序,帮助开发者理解并实现相机的控制和数据采集功能。下面我们将深入探讨相关知识点。 1. **C#编程基础**: C#是一种面向...
根据给定的信息,本文将详细探讨“基于Matrix VB的数字图像处理教学演示软件”的相关知识点,包括Matrix VB的介绍、Matrix VB与MATLAB的关系、如何使用Matrix VB在Visual Basic环境中开发数字图像处理的教学演示软件...
这个"DataMatrix的MFC程序"是利用MFC来创建一个能够生成DataMatrix二维码的应用。 在MFC中开发DataMatrix生成器,首先需要理解MFC的基本架构。MFC框架基于事件驱动模型,主要包含应用程序类、文档类、视图类、框架...
接着,运用MIL函数库中的图像处理函数对图像进行增强处理,包括平滑滤波以减少噪声,直方图均衡化以扩大对比度动态范围,以及采用遮罩技术提取DataMatrix符号区域,最终实现精准识别。 - **DataMatrix符号的膨胀处理...
在这个特定的场景中,我们关注的是如何使用`Matrix`来处理字体的宽度和位置。在项目开发中,有时我们需要在绘制文本时考虑到字体的宽度,以确保文字在屏幕上的正确布局。`Matrix`的操作可能会改变文本的原始位置,...
iMatrix平台的5.2.1.RC版本是该系统发展的一个重要里程碑,标志着系统功能和性能的持续改进。RC,全称为Release Candidate,通常在软件开发中表示一个候选发布版本,意味着它接近最终正式版,但可能还存在一些小问题...
在地震学领域,数据处理是至关重要的环节,它涉及到对地震波形的记录、解析、滤波、定位、成像等多个步骤。Matlab作为一种强大的数值计算和数据分析工具,被广泛应用于地震数据处理。本压缩包“matlab地震数据处理...
使用MFC来实现矩阵操作可以加深对数据结构和算法的理解,同时提升Windows应用程序开发技能。 在MFC中,你可以创建一个C++类来表示矩阵,该类可能包含矩阵的行数、列数、元素存储等成员变量。此外,还需要定义各种...
这个标题“利用Matrix来处理android简单的图片源码”指的是通过编程方式利用Matrix对Android中的图像进行操作。下面我们将深入探讨Matrix类的使用方法以及如何在实际代码中应用它来处理图片。 1. Matrix类基础: ...
Matrix类是Android提供的一种强大的工具,它允许我们对图像进行复杂的几何变换,如旋转、缩放、平移和倾斜。本文将深入探讨如何利用Matrix处理ImageView中的图片缩放和平移操作。 首先,我们需要了解Matrix的基本...
在Android平台上,对图形进行变换处理是常见的需求,如旋转、缩放、平移和倾斜等。Matrix类在Android的图形系统中扮演了关键角色,它提供了强大的2D图形变换功能。本文将深入探讨如何使用Matrix进行图形变换,并通过...
在现代工业自动化领域,二维码(特别是DataMatrix二维码)的自动识别是至关重要的技术之一。本文将深入探讨如何使用Halcon这一强大的机器视觉软件来实现DataMatrix二维码的检测,并结合C++编程语言,构建一个完整的...
MATLAB脚本“Matrix_Noise.m”可能会包含上述流程的代码,用户可以通过调用这个函数并指定参数(如块大小、滤波器类型等)来对不同噪声水平的图像进行处理。这样的工具对于研究或实际应用中快速实验和调整噪声处理...