TASK FLOW中的REENTRY

在实际应用中,用户可能会点击浏览器的回退按钮回到上一页面,在有些情况下会导致一些问题。

ADF Bounded TaskFlow有一个选项(UnBounded TaskFlow无此选项)可以设置是否允许用户使用浏览器的回退按钮回到上一页面,这个属性就是Reentry。

1. 按照开发手册中的说明,Reentry可以设置为:

(1)reentry-allowed:允许该bounded task flow中的所有页面使用浏览器的回退按钮重新进入上一页面,默认选项。

(2)reentry-not-allowed:不允许该bounded task flow中的所有页面使用浏览器的回退按钮重新进入上一页面。

这里的不允许不是禁止用户点击浏览器的回退按钮,这个是没办法禁止的。

它的不允许是这样体现的:当用户点击浏览器的回退按钮后,可以重新进入上一页面,但如果你在该页面做任何事情,例如点击按钮,将会抛出异常:InvalidTaskFlowReentry。

(3)reentry-outcome-dependent:条件允许使用浏览器的回退按钮重新进入上一页面。

取决于上一次从该bounded task flow返回的outcome,取决于Return Activity上的Reentry属性设置。

适合的典型场景:购物网站如果用户取消了某次采购,那么允许回退;如果订单已经提交,则不允许回退。

reentry-not-allowed的行为和我们想象的不一样,是不是?事后警告用户抛异常,这个界面效果肯定不太友好。

这时,我们应该创建一个exception handler来处理这个异常,提示用户页面过期,需要重新登录之类的警告,并在几秒钟之后自动跳转到登录页面。

2. 几个需要明确的问题:

(1)重新进入Task Flow后,Task Flow上的输入参数将使用当前值(如果有新的赋值的话),而不是初始值。

(2)重新进入Task Flow后,Manage Bean中的值也跟着回退到之前的值,所有在用户回退之后的修改将丢失。

可以通过设置View Activity上的redirect属性来改变这一行为。这个有待试验考证。

参考文献:

1. https://blogs.oracle.com/raghuyadav/entry/adf_taskflow_reentry-not-allow

时间: 2024-10-26 13:06:40

TASK FLOW中的REENTRY的相关文章

Dynamics CRM2016 业务流程之Task Flow(一)

Task Flow 属于CRM移动端的特性,假设在项目实施中用不到CRM自带的APP或者对自APP不感冒的,那就没有往下看的必要了,移步吧. 该功能默认是不开启的,须要我们去系统设置中开启它.打勾,选yes 然后我们来到系统的流程界面.从以下的截图中我们是看不出来哪个是Task Flow类型的业务流程的,所以第一点我们要把相关列释放出来 点击上图中右上角的高级查找图标.点击编辑列,在打开的视图中把第二张截图红框中的字段加入上.最后点击高级查找界面上的save as 保存到我的视图 这样就能看出业

Dynamics CRM2016 业务流程之Task Flow(二)

接上篇,Page页设置完后,依照业务流程管理也能够继续设置Insert page after branch 或者 Add branch,我这里选择后者.并设置了条件,假设Pipeline Phase 字段的值包括develop则换个一个page页显示,新的page页仅仅放一个字段以示区分. 来看下效果.第一个page的字段符合branch的条件,点击next后显示第二个page,而description字段的值就是Test,而这个Test值的由来则是后面要讲要的业务规则.第二幅图中点击done表

ADF 入门帮助

本文是由英文帮助翻译所得: 1>task flows “任务流 task flows”可以包括非可视化的组件,比如方法调用.“页片段 page fragment”可以运行在一个页面的某个局部区域,最大限度地提高复用性.ADF Task Flow是在JSF Controller的基础上扩展而来的,它除了包括View Activities和导航规则之外,还可以包括method calls等非可视化Activity.ADF Task Flow分为两种:Bounded task flow和Unbound

微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧

开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL Task 的场景包含但不止于以下几类: 在从源端加载数据到 Staging 表之前使用 Execute SQL Task 执行一些 Truncate 操作. 执行一些 Log 的插入,更新操作. ETL 过程中的 Merge 语句操作. XML 的输出处理. 关于如何使用 Execute SQL

微软 BI ssis 中的 script task中用代码直接调用 WCF / Webservice

背景: 在普通的C#项目中,可以直接调用 WCF / Webservice: 在微软BI的 ssis中,有 webservice任务组件,也可以直接调用简单的 WCF / Webservice; 偶这边的情况是,后端的 WCF中用的反射,所以在 ssis中的webservice任务组件中,死活不能识别 WCF对应的方法. 所以只能在ssis的 script task组件中,用纯代码的方式来调用WCF服务. 就这样,可能还是有问题:可能会碰到 不能识别 System.ServiceModel节点的

Android中Task任务栈的分配

首先我们来看下Task的定义,Google是这样定义Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file. 这意思就是说Task实际上是一个Ac

verilog中的task用法

任务就是一段封装在“task-endtask”之间的程序.任务是通过调用来执行的,而且只有在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会执行的.调用某个任务时可能需要它处理某些数据并返回操作结果,所以任务应当有接收数据的输入端和返回数据的输出端.另外,任务可以彼此调用,而且任务内还可以调用函数.  1.任务定义 任务定义的形式如下: task task_id;     [declaration]     procedural_statement endtask 

微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug

开篇介绍 前些天自己在整理 SSIS 2012 资料的时候发现了一个功能设计上的疑似Bug,在 Script Task 中是可以给只读列表中的变量赋值.我记得以前在 2008 的版本中为了弄明白这个配置,还特意测试过这个细节,获取错误并理解了这个功能.但是现在回去再次测试 2008 的版本时,发现这个功能在 2008 中其实也是错误的,把我印象中的测试结果完全给推翻了,所以到现在已经搞不清楚我当时到底是如果得出这个错误的. 疑似功能 Bug 描述 在 SSIS 包中定义了用户自定义变量 - PV

Verilog HDL中task与function的区别

任务.函数的定义和调用都包括在一个module的内部,他们一般用于行为级建模,在编写Testbench时用的较多,而在写可综合的代码时要少用. function的定义: function<返回值类型和位宽> <函数名> <入口参量和类型声明> <局部变量声明> 行为语句: endfunction 定义function时,要注意以下几点: (1):  function定义结构不能出现在任意一个过程块(always块或者initial块)的内部: (2):  f