网站地图
  
  高级搜索
  首页   技术论坛   博客 派计划   产品中心   资源中心   银弹在线   商城  





Oracle BPEL的研究(6)流程变量和Human Task数据交互说明(2)    
#1楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 17 分
财富 119 goCom币
威望 25
排名 :(
段位 新手必读
在Human Task的配置界面中,可以定义此Human Task所关心的参数(Parameter)。注意,这里仅仅只是类型的声明,真正在此Human Task绑定到bpel流程中的时候,才会需要设置参数的值来源,下一节将会介绍。 Human Task Parameters(参数)的声明
       在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”。当然这种手工输入带来的问题是比较麻烦的。
 




发表回复
账号用户名   密码   登录
内容:url email imgsrc image code quote
范例 Example
bold italic underline linethrough   


 [更多...]