前面已经介绍了办理人设置和表单字段权限的原理,下面再看看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)+"] =========== ");
}
相关推荐
iMatrix是一个企业级的JAVA快速开发平台,采用了先进的SOA体系架构和标准规范,并提供了层次分明的MVC多层结构,实现了平台内部以及同其他系统接口的松散耦合。用户可通过平台提供的“权限、流程、表单、报表、任务、...
iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev源码
流程产品 Matrix BPM的入门文档
"MAZAK螺距误差补偿" MAZAK螺距误差补偿是MAZAK数控系统中的一种特殊功能,它可以对螺距误差进行补偿,确保机床的精度和稳定性。下面是关于MAZAK螺距误差补偿的详细知识点: 1. 访问补偿表:要访问螺距误差补偿表...
Matrix Analysis
一个综合演示Matrix和ColorMatrix的例子(https://blog.csdn.net/tanmx219/article/details/81298671)
一个C语言 Matrix 处理类代码
matrix 处理字体宽度位置 项目开发过程中,需要在绘图时处理字体宽度,处理matrix后,发现位置也变换, 根据算法,重新设置位移量,保证在原始位置
Matrix Vision工业相机 C# demo程序,包括单相机采集,多相机采集,IO信号处理等
very good Matrix Analysis
data matrix二维码图像处理与应用
Android-使用Matrix对Bitmap进行处理
5.2.1.RC iMatrix平台的5.2.1.RC源码
Matrix Analysis(矩阵分析),国外经典教材,中文译本
这个比较难找,当然会用的人也不多,希望能帮到有用的人。
利用Matrix来处理android简单的图片源码
DataMatrix 二维码生成 和解码 C#程序,亲测可用。解码是Freytag DataMatrixDecoder A c# implementation to find DataMatrix 'barcodes' in bitmaps and decode them back into a string.
咨询常用分析模型 波士顿矩阵(BCG Matrix)
THE Matrix 屏幕保护程序(附程序)
Matrix Analysis(矩阵分析)中文翻译版 pdf格式的