前面已经介绍了办理人设置和表单字段权限的原理,下面再看看iMatrix平台是怎样处理事件的?
流程属性中的业务补偿:
自己认为业务补偿也是属于事件的。
1 xml中的配置
<process … … … …>
… … … …
<extend>
… … … …
<expiation-setting>
<set-type>http</set-type>
<delete-instance>
/expense-report/delete-instance-expiation.htm
</delete-instance>
<cancel-instance>
/expense-report/cancel-instance-expiation.htm
</cancel-instance>
<task-jump>/expense-report/task-jump-expiation.htm</task-jump>
<pause-instance/>
<continue-instance/>
<goback-task/>
</expiation-setting>
</extend>
… … … …
</process>
任务退回配置的是spring bean名称,该bean需要实现的接口为com.norteksoft.wf.engine.client. ReturnTaskInterface。当在流程监控中删除、取消、暂停、继续实例时,做法基本一致,如下:
首先获得xml中配置的请求方式和请求的url;当请求方式是HTTP方式时,使用httpclient请求url;当请求方式是RESTful方式时,使用的是Jersey的Client请求的。
WebUtil.java中的两种请求方式实现如下:
/**
* 普通的http请求
* @param url
*/
publicstaticvoid getHttpConnection(String url,Long companyId,Long entityId,String systemCode){
String resultUrl=SystemUrls.getBusinessPath(systemCode);
if(PropUtils.isBasicSystem(resultUrl)){
resultUrl = SystemUrls.getSystemUrl("imatrix");
}
log.info(" == system url : ["+resultUrl+"] == ");
resultUrl = resultUrl + url+"?companyId="+companyId+"&entityId="+entityId;
log.info(" == restlet url : ["+resultUrl+"] == ");
HttpGet httpget = new HttpGet(resultUrl);
HttpClient httpclient = new DefaultHttpClient();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
httpclient.execute(httpget, responseHandler);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
httpclient.getConnectionManager().shutdown();
}
/**
* RESTful请求
* @param url
* @param companyId
*/
publicstaticvoid restful(String url,Long companyId,Long entityId,String systemCode){
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
String resultUrl = SystemUrls.getSystemUrl(systemCode);
if(PropUtils.isBasicSystem(resultUrl)){
resultUrl = SystemUrls.getSystemUrl("imatrix");
}
log.info(" == system url : ["+resultUrl+"] == ");
resultUrl = resultUrl + url;
log.info(" == restlet url : ["+resultUrl+"] == ");
WebResource service = client.resource(resultUrl);
ClientResponse cr = service
.entity("companyId="+companyId+"&entityId="+entityId, MEDIA_TYPE)
.accept(MEDIA_TYPE)
.post(ClientResponse.class);
if(cr != null) log.info(" =========== RESTful execute result : ["+cr.getEntity(String.class)+"] =========== ");
}
相关推荐
- **数据需求**:明确流程中需要处理的数据类型,包括流程控制数据(如审批结果)和业务相关数据(如订单详情)。 #### 四、获取需求示范 为了更好地理解如何获取业务流程信息,我们可以通过一个具体的例子来说明...
iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev源码
在Android开发中,图片处理是不可或缺的一部分,尤其是在创建丰富的用户界面和动态效果时。本教程将深入探讨如何利用`ColorMatrix`和`Matrix`类来实现图像色彩和形状的变换。`ColorMatrix`用于处理颜色空间转换,而`...
Matrix Analysis
iMatrix平台的5.2.1.RC版本是该系统发展的一个重要里程碑,标志着系统功能和性能的持续改进。RC,全称为Release Candidate,通常在软件开发中表示一个候选发布版本,意味着它接近最终正式版,但可能还存在一些小问题...
根据给定的信息,本文将详细探讨“基于Matrix VB的数字图像处理教学演示软件”的相关知识点,包括Matrix VB的介绍、Matrix VB与MATLAB的关系、如何使用Matrix VB在Visual Basic环境中开发数字图像处理的教学演示软件...
这个压缩包文件提供的内容是关于如何使用C#语言与Matrix Vision工业相机进行交互的示例程序,帮助开发者理解并实现相机的控制和数据采集功能。下面我们将深入探讨相关知识点。 1. **C#编程基础**: C#是一种面向...
在这个程序中,我们需要创建一个视图类,该类负责处理图像的绘制和DataMatrix的生成。 1. **DataMatrix编码**: DataMatrix支持ECC 200纠错编码,可以编码8位到2304位的数据。在MFC程序中,需要找到一个库或者API来...
"MAZAK螺距误差补偿" MAZAK螺距误差补偿是MAZAK数控系统中的一种特殊功能,它可以对螺距误差进行补偿,确保机床的精度和稳定性。下面是关于MAZAK螺距误差补偿的详细知识点: 1. 访问补偿表:要访问螺距误差补偿表...
《iMatrix-v6.5.RC1:深入解析开源平台的源码结构与技术栈》 iMatrix-v6.5.RC1是一个重要的里程碑,它标志着该开源平台发展到了v6.5版本的候选发布阶段(Release Candidate 1)。这个版本的原始码包含了构建平台所...
在ANSYS这款强大的有限元分析软件中,Matrix27单元是一种特殊的自定义单元类型,主要用于处理非线性问题,尤其是那些涉及到大变形、接触非线性和材料非线性的复杂工程问题。Matrix27单元的灵活性和强大的功能使其在...
本项目利用MATLAB这一强大的数值计算和图像处理平台,针对RGB图像进行光线补偿,旨在提升人脸识别的性能。 MATLAB,全称Matrix Laboratory,是一种高级编程环境,尤其适合于科学计算、数据分析和图像处理。在这个...
通过对视频的实时捕获、二值化处理和截图,项目提供了一个基础的视频分析平台,为后续的图像分析和处理任务打下了基础。在实际应用中,这样的程序可以被扩展用于各种场景,例如监控系统、行为识别、交通流量监测等。...
Matrix Analysis(矩阵分析)中文翻译版 pdf格式的
- **DataMatrix符号的膨胀处理**:针对气动打印在金属零件上的DataMatrix码,因其点阵式的特征与标准符号存在差异,通过数学形态学的膨胀算法,可以缩小数据单位间的空隙,提升识别准确度。 - **伪实时识别的实现**...
**MFC (Microsoft Foundation Classes)** 是微软开发的一个C++库,用于构建Windows应用程序。它封装了Windows API,提供了面向对象的编程模型,使得开发者能够更高效地编写Windows应用。MFC是基于C++的,因此它利用...
这个教程将深入探讨如何在Android中利用Matrix对Bitmap进行处理。 首先,我们需要了解Bitmap的基本操作。Bitmap可以通过多种方式加载,例如从资源文件、内存或文件系统中获取。加载后,我们可以获取其宽度、高度和...
在这个特定的场景中,我们关注的是如何使用`Matrix`来处理字体的宽度和位置。在项目开发中,有时我们需要在绘制文本时考虑到字体的宽度,以确保文字在屏幕上的正确布局。`Matrix`的操作可能会改变文本的原始位置,...
本压缩包“matlab地震数据处理程序”提供了一套专门针对地震分析的小程序集合,能够帮助科研人员和工程师高效地进行地震数据的处理和研究。 1. **Matlab环境介绍**: Matlab是Matrix Laboratory的缩写,是一款交互...