2012年8月14日星期二

ADF_200:Task Flow使用指南之九:Remote TaskFlow

运行环境:JDeveloper 11.1.2.2.0 + Oracle Database 10g Express Edition 10.2.0.1。

试想一下这种情况:一个人部署了一个ADF应用,其中包括一个Bounded TaskFlow,另一个人想在自己的应用调用该TaskFlow。

重要步骤说明:

1. 创建Remote TaskFlow Producer
详细步骤请参考《Task Flow使用指南之四:获取Task Flow返回值(1)》。
这里为了保证Remote TaskFlow Producer应用是正确的,在该应用中增加了调用TaskFlow的页面和逻辑。
唯一要注意的地方是:设置URL Invoke=url-invoke-allowed


2. 创建Remote TaskFlow Consumer
详细步骤请参考《Task Flow使用指南之四:获取Task Flow返回值(1)》。
(1)由于无法Reference到Remote TaskFlow Producer定义,因此只能拖放一个TaskFlow Call Activity,忽略所有的警告信息。

(2)手工设置属性Document、ID、Remote Application URL,为保证设置正确,有必要查看Remote TaskFlow的XML文件。


(3)为了增加灵活性,把Remote Application URL值设置在web.xml中。

<context-param>
<param-name>adf.remote.taskflow.url</param-name>
<param-value>http://127.0.0.1:7101/ADF_TaskFlow_RemoteProducer-ViewController-context-root/faces/adf.task-flow</param-value>
</context-param>


3. 运行
(1)首先运行Remote TaskFlow Producer
(2)然后运行Remote TaskFlow Consumer
点击Select Department,传送输入参数departmentId。

点击Return Selected Employee,返回输出参数employeeId。

在Consumer的页面中接收到了Remote TaskFlow的返回值:employeeId。


Project 下载:ADF_RemoteTaskFlow.7z

参考文献:
1. http://andrejusb.blogspot.jp/2008/06/how-to-call-remote-task-flow-in.html
2. http://biemond.blogspot.jp/2008/12/reuse-remote-task-flows.html
3. http://www.oracle.com/technetwork/developer-tools/adf/learnmore/43-remote-task-flow-169185.pdf
4. http://www.oracle.com/technetwork/developer-tools/adf/learnmore/march2012-otn-harvest-1571998.pdf

没有评论: