Oracle BPEL的研究(6)流程变量和Human Task数据交互说明

日期: 2008-07-14 作者:jameshu999 来源:TechTarget中国 英文

在Human Task的配置界面中,可以定义此Human Task所关心的参数(Parameter)。注意,这里仅仅只是类型的声明,真正在此Human Task绑定到bpel流程中的时候,才会需要设置参数的值来源,下一节将会介绍。




  
  参数的类型可以是简单类型,也可以是复杂类型。


  这些参数主要是用于“界面的实现”。如果采用自动生成Display Form,则会依据这些Parameter来生成表单上的元素。


  Human Task参数与流程变量的映射


  在Human Task中的参数,到底初始数据来源自哪里,这是在BPEL中定义的。如下图所示:




 
  上图中表示:ApplyUser这个参数值,来自于变量
  “client:VacationApplyProcessForm”中的Apply_User元素,而ApplyReason这个参数值,则来自于上一个Human Task所提交的任务信息数据中的ApplyReason元素。


  在流程中获取Human Task任务提交后的数据  


  对Oracle BPEL来讲,每个human task任务在提交后,都会产生一个task message返回给引擎。而表单中的数据,就包含在task message中。主要是在“/task:task/task:payload”这个元素下。


  首先,看一下在worklistapp中,表单中的数据元素如下:


  <input name=”_sl_ns0_cl_task_sl_ns0_cl_payload_sl_ns0_cl_ApplyUser”
        type=”text” value=”jcooper” disabled dataType=”string”>


  为了从task message提取数据,写入流程变量中,或者其他地方。一般会在Human Task之跟一个Assign活动,负责数据提取和转换。如下图所示。




  
  此处需要注意的是,在图形化的编辑中,无法显示“/task:task/task:payload”下子节点,会报告如下错误:




  
  但是,可以通过手工指明Xpath来制定要获取的真实元素,比如“/task:task/task:payload/task:ApplyUser”。当然这种手工输入带来的问题是比较麻烦的。



  原文出处:http://gocom.primeton.com/blog11162_16519.htm

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 保险公司如何能从BPEL中获益

    对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。

  • 2013年业务流程执行语言(BPEL)现状

    在SOA领域中,BPEL拥有属于自己的集成系统和自动化工作流,为协调完全异构系统而提供一致的流程。

  • 如何开发BPEL复合应用

    大多数软件架构师对应用的组件化、SOA和工作流或者服务总线流程非常熟悉,也对组合应用如何将这些基本元素结合在一起非常熟知。

  • 如何在SOA中执行BPEL测试?

    几乎所有面向服务架构(SOA)用户都在使用业务流程执行语言(BPEL)。作为编排粗粒度的业务流程流工具,BPEL实际上是行业的标准,但是还是会引起测试问题。