胡长城(银狐999)BLOG

工作流,BPM,SOA,Java,J2EE、Flex;个人主页http://www.javafox.org;普元BPS业务流程平台

原创 Oracle BPEL的研究(4)Human Task Display Form介绍收藏

    既然是处理人工活动,必然涉及到与人工交互密切相关的界面处理。在Oracle Workflow Service中有一个特定名词叫Display Form。每个Task都会绑定一个属于自己的Task Display Form(有一个且仅能有一个)。如下图所示:
    这种Task Display Form有两种模式,一种是利用displaoy form模板的方式来处理(如上图所示);一种是客户完全自己利用workflow service api来实现jsp页面及响应处理。—— 还有一种模式是在第一种模式的基础上上支持application development framework (ADF) data controls,但这个具体咋用,俺不是很清楚。     针对第一种实现模式,可以在JDeveloper中,自动产生Task Display Form当开发人员在设计完Human Task,包括Human Task中的Paramters参数的后,选择创建Task Form,则可以根据条件自动创建相应的display form对象(.form)文件,以及一个template jsp file以及,几个region jsp file。然后开发人员针对region jsp file进行布局调整。 可以查看.form文件,内容格式如下。从这个内容可以看出来,其主要是用于一个"索引作用",其入口就是其中的<template>元素。
<?xml version = '1.0' encoding = 'UTF-8'?>

<taskDisplay targetNamespace="http://xmlns.companyABC.com/workflow/orderTaskDisplay" generateInternationlizedJSP="false" xmlns:task="http://xmlns.oracle.com/bpel/workflow/task" xmlns="http://xmlns.oracle.com/bpel/workflow/taskDisplay">

   <taskDefinitionId>${domain_id}_${process_id}_${process_revision}_HumanTask_Approve</taskDefinitionId>

   <applicationName>worklist</applicationName>

   <templateName>ThreeRegionJSP</templateName>

   <template>${http_url}/${domain_id}/${process_id}/${process_revision}/HumanTask_Approve/HumanTask_Approve.jsp</template>

   <regions>

      <defaultJSP regionName="Footer">

         <jspURI>Footer1.jsp</jspURI>

      </defaultJSP>

      <autoGeneratedJSP regionName="Body" editable="true">

         <jspURI>Body.jsp</jspURI>

         <messageAttribute editable="false">VacationRequestProcessRequest</messageAttribute>

      </autoGeneratedJSP>

      <defaultJSP regionName="Header">

         <jspURI>Header1.jsp</jspURI>

      </defaultJSP>

   </regions>

</taskDisplay>
当你针对每一个Human Task产生匹配的Task Display Form后,会在Web Content目录下产生相应的task form相关的jsp等文件(这些jsp file其实已经在.form中有所说明)。入口其实就是那个template file
值得注意的是,oracle为每个Human Task都产生了相应的warear资源。如上图中所示。
在执行过程中,当客户希望进入Task Detail页面的时候,其处理逻辑如下图所示(改天应该换成一个序列图似乎更会清晰一些): 对于DOPostService.doPostTemplate方法的使用,可以参考 %SOA_Oracle_Home%\bpel\samples\hw\worklistapp\public_html 目录下的TaskDetail.jsp文件内容。此处不再详细叙述。

发表于 @ 2008年06月16日 22:43:00|评论(loading...)|收藏

新一篇: Oracle BPEL的研究(5)流程变量和Human Task数据交互说明 | 旧一篇: Oracle BPEL的研究(3)workflow service api的使用

Csdn Blog version 3.1a
Copyright © 银狐999