`
winter_leo
  • 浏览: 4126 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

针对iMatrix平台流程引擎事件处理之业务补偿分析

阅读更多

 

前面已经介绍了办理人设置和表单字段权限的原理,下面再看看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方式时,使用的是JerseyClient请求的。

 

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)+"] =========== ");

 

    }

 

 

 

  • 大小: 115 KB
分享到:
评论

相关推荐

    Matrix BPM流程入门

    - **数据需求**:明确流程中需要处理的数据类型,包括流程控制数据(如审批结果)和业务相关数据(如订单详情)。 #### 四、获取需求示范 为了更好地理解如何获取业务流程信息,我们可以通过一个具体的例子来说明...

    iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev

    iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev源码

    实战Android:图片处理之ColorMatrix和Matrix实例

    在Android开发中,图片处理是不可或缺的一部分,尤其是在创建丰富的用户界面和动态效果时。本教程将深入探讨如何利用`ColorMatrix`和`Matrix`类来实现图像色彩和形状的变换。`ColorMatrix`用于处理颜色空间转换,而`...

    Matrix Analysis矩阵分析

    Matrix Analysis

    5.2.1.RC:iMatrix平台的5.2.1.RC

    iMatrix平台的5.2.1.RC版本是该系统发展的一个重要里程碑,标志着系统功能和性能的持续改进。RC,全称为Release Candidate,通常在软件开发中表示一个候选发布版本,意味着它接近最终正式版,但可能还存在一些小问题...

    基于Matrix VB的数字图像处理教学演示软件

    根据给定的信息,本文将详细探讨“基于Matrix VB的数字图像处理教学演示软件”的相关知识点,包括Matrix VB的介绍、Matrix VB与MATLAB的关系、如何使用Matrix VB在Visual Basic环境中开发数字图像处理的教学演示软件...

    Matrix Vision工业相机 C#、demo程序

    这个压缩包文件提供的内容是关于如何使用C#语言与Matrix Vision工业相机进行交互的示例程序,帮助开发者理解并实现相机的控制和数据采集功能。下面我们将深入探讨相关知识点。 1. **C#编程基础**: C#是一种面向...

    DataMatrix的MFC程序

    在这个程序中,我们需要创建一个视图类,该类负责处理图像的绘制和DataMatrix的生成。 1. **DataMatrix编码**: DataMatrix支持ECC 200纠错编码,可以编码8位到2304位的数据。在MFC程序中,需要找到一个库或者API来...

    MAZAK螺距误差补偿

    "MAZAK螺距误差补偿" MAZAK螺距误差补偿是MAZAK数控系统中的一种特殊功能,它可以对螺距误差进行补偿,确保机床的精度和稳定性。下面是关于MAZAK螺距误差补偿的详细知识点: 1. 访问补偿表:要访问螺距误差补偿表...

    iMatrix-v6.5.RC1:平台v6.5.RC1版本对应的原始码,包含lib包-源码包

    《iMatrix-v6.5.RC1:深入解析开源平台的源码结构与技术栈》 iMatrix-v6.5.RC1是一个重要的里程碑,它标志着该开源平台发展到了v6.5版本的候选发布阶段(Release Candidate 1)。这个版本的原始码包含了构建平台所...

    ansys matrix27单元详解

    在ANSYS这款强大的有限元分析软件中,Matrix27单元是一种特殊的自定义单元类型,主要用于处理非线性问题,尤其是那些涉及到大变形、接触非线性和材料非线性的复杂工程问题。Matrix27单元的灵活性和强大的功能使其在...

    人脸识别的光线补偿matalb

    本项目利用MATLAB这一强大的数值计算和图像处理平台,针对RGB图像进行光线补偿,旨在提升人脸识别的性能。 MATLAB,全称Matrix Laboratory,是一种高级编程环境,尤其适合于科学计算、数据分析和图像处理。在这个...

    基于matlab的视频处理程序

    通过对视频的实时捕获、二值化处理和截图,项目提供了一个基础的视频分析平台,为后续的图像分析和处理任务打下了基础。在实际应用中,这样的程序可以被扩展用于各种场景,例如监控系统、行为识别、交通流量监测等。...

    Matrix Analysis(矩阵分析)中文翻译版

    Matrix Analysis(矩阵分析)中文翻译版 pdf格式的

    data matrix二维码图像处理与应用

    - **DataMatrix符号的膨胀处理**:针对气动打印在金属零件上的DataMatrix码,因其点阵式的特征与标准符号存在差异,通过数学形态学的膨胀算法,可以缩小数据单位间的空隙,提升识别准确度。 - **伪实时识别的实现**...

    matrix MFC 大一程序语言设计

    **MFC (Microsoft Foundation Classes)** 是微软开发的一个C++库,用于构建Windows应用程序。它封装了Windows API,提供了面向对象的编程模型,使得开发者能够更高效地编写Windows应用。MFC是基于C++的,因此它利用...

    Android-使用Matrix对Bitmap进行处理

    这个教程将深入探讨如何在Android中利用Matrix对Bitmap进行处理。 首先,我们需要了解Bitmap的基本操作。Bitmap可以通过多种方式加载,例如从资源文件、内存或文件系统中获取。加载后,我们可以获取其宽度、高度和...

    matrix 处理字体宽度位置

    在这个特定的场景中,我们关注的是如何使用`Matrix`来处理字体的宽度和位置。在项目开发中,有时我们需要在绘制文本时考虑到字体的宽度,以确保文字在屏幕上的正确布局。`Matrix`的操作可能会改变文本的原始位置,...

    matlab地震数据处理程序

    本压缩包“matlab地震数据处理程序”提供了一套专门针对地震分析的小程序集合,能够帮助科研人员和工程师高效地进行地震数据的处理和研究。 1. **Matlab环境介绍**: Matlab是Matrix Laboratory的缩写,是一款交互...

Global site tag (gtag.js) - Google Analytics