fnd_function.execute/app_navigate.execute区别

1、Fun_function.execute介绍

Fnd_function.execute用于访问指定的基于表单(Form)且可访问的功能(不可访问将抛出错误消息),Oracle建议以此过程替换原内置函数OPEN_FORM,因为fnd_function.execute可以绕开应用安全验证并找到功能正确的访问路径。
可访问说明:
访问的功能需挂在同一职责的相同菜单下,如果被调用的功能不想在菜单下看到,可以将功能的“提示”设为空;否则,将报不可访问错误:此责任无可用函数。更改责任或与您的系统管理员联系。

2、Fun_function.execute参数说明

PROCEDURE fnd_function.execute(function_name  IN VARCHAR2,

open_flag      IN VARCHAR2 DEFAULT ‘Y‘,

session_flag   IN VARCHAR2 DEFAULT ‘SESSION‘,

other_params   IN VARCHAR2 DEFAULT NULL,

activate       IN VARCHAR2 DEFAULT ‘ACTIVATE‘,

browser_target IN VARCHAR2 DEFAULT NULL);

参数说明:


参数名


说明


open_flag


Y -> 打开一个FORM并保留原有FORM,属于multi-form模式; N-> 新建一个FORM,会关闭原先的FORM;参数最好为 ‘Y’ ;Y/N 分别调用内置方法 OPEN_FORM/NEW_FORM


session_flag


N/ NO_SESSION表示现有FORM和新打开的FORM在同一个session, Y/SESSION表示打开的FORM将建立一个新的database   session

ps:当功能类型为以下类型时,该参数将被自动忽略。

WWW, WWK, JSP,   SERVELET.


other_params


FORM参数,参数注意格式:参数值用 双引号 包括起来,参数间用空格隔开。示例:

OTHER_PARAMS=>

‘CONTEXT1="‘||:block.context1   || ‘"‘ ||

‘ CONTEXT2="‘ || :block.context2 || ‘"‘);

如果是调用其他类型的功能,如JSP页面、OAF页面等,参数用 & 作为分隔符分开,示例:

OTHER_PARAMS=>‘param1=‘|| value1 || ‘&param2=‘ || value2;


activate_flag


ACTIVATE/NO_ACTIVATE,   表示是否聚焦到新打开的FORM,默认ACTIVATE. ACTIVATE表示新开打的FORM获得焦点,而NO_ACTIVATE虽然会打开一个FORM,但是光标仍在当前FORM


browser_target


仅用于JSP、OAF等 self-service 功能,用于指定浏览器Frame,如果为空,将在新的浏览器窗口打开页面。

3、 App_navigate.execute介绍

PROCEDURE app_navigate.execute(function_name IN VARCHAR2,

open_flag     IN VARCHAR2 DEFAULT ‘Y‘,

session_flag  IN VARCHAR2 DEFAULT ‘SESSION‘,

other_params  IN VARCHAR2 DEFAULT NULL,

activate_flag IN VARCHAR2 DEFAULT ‘ACTIVATE‘,

pinned        IN BOOLEAN DEFAULT FALSE);

其参数与功能 和fnd_function.execute基本相似,仅对pinned做说明:

Pinned:TRUE/FALSE. 如果设置为TRUE,app_nivigate.execute将不再复用Form实例,效果与fun_function.execute完全一致

4、 两个过程区别

app_navifate.execute也可以打开一个功能,但此方法主要和FORM instance和复用相关。举例:Form A 用此过程打开 Form B,不久后继续用此方法打开Form B时,会使用上次打开的 FormB 实例,不会新建一个FormB。而且,多个FORM实例之间可以共享某一个Form实例,如:Form A 用此过程打开 Form B,然后Form C也用此过程打开Form B时,并不会新建一个Form B实例,会直接使用Form A打开的实例。

而fnd_function.execute在任何情况下都会新建一个Form实例。

时间: 2024-10-04 07:46:47

fnd_function.execute/app_navigate.execute区别的相关文章

ASP之Eval、Execute、ExecuteGlobal区别分析

Eval.Execute.ExecuteGlobal 这三个语句(函数)都是执行字符串表达式,不过它们之间又有所不同. Eval 计算一个表达式的值并返回结果. 语法:[result = ]eval(expression) expression 为任意有效 VBScript 表达式的字符串 示例:response.Write(eval("3+2")) '输出 5 "3+2" 使用引号括起来,表示是一个字符串,但是在 Eval “眼里”,把它当作一个表达式 3+2 来

Java线程池中submit()和execute之间的区别?

一: submit()方法,可以提供Future < T > 类型的返回值. executor()方法,无返回值. execute无返回值 public void execute(Runnable command) { if (command == null) throw new NullPointerException();//抛掉异常 int c = ctl.get(); if (workerCountOf(c) < corePoolSize) { if (addWorker(com

Response.Redirect()、Server.Execute和Server.Transfer的区别

1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代  码302(表示目标已经改变)以及新的目标URL.浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求. 这就是说, 使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面 的请求,得到一个302

Java线程池使用和分析(二) - execute()原理

相关文章目录: Java线程池使用和分析(一) Java线程池使用和分析(二) - execute()原理 execute()是 java.util.concurrent.Executor接口中唯一的方法,JDK注释中的描述是“在未来的某一时刻执行命令command”,即向线程池中提交任务,在未来某个时刻执行,提交的任务必须实现Runnable接口,该提交方式不能获取返回值.下面是对execute()方法内部原理的分析,分析前先简单介绍线程池有哪些状态,在一系列执行过程中涉及线程池状态相关的判断

ExecutorService.execute()

void java.util.concurrent.Executor.execute(Runnable command) execute void execute(Runnable command) Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the d

Execute Package Task执行失败,而Child Package执行成功

今天Execute 一个 Execute Package Task 去调用其他packages,发现Task报错,而Child Package执行成功. Execute Package Task抛出的错误信息是: Warning: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (1) reached the max

conn.execute的用法详解

conn.execute的用法 conn.execute.rs.open之间的差别,conn.execute.rs.open.command.execute方法用法大大不同 通常形成记录集可以使用 Set rs=conn.execute(SQL) 或直接 rs=CONN.execute(SQL) 和 Set rs=Server.CreateObject("ADODB.Recordset") rs.open SQL,CONN,0,1 或 rs.open SQL,CONN 这种情况 通常o

存储过程中调用EXECUTE IMMEDIATE的“权限不足”问题

使用plsql 动态创建表时,用户需要具有create any table 权限 例如: create or replace procedure create_table_test is tmpstr varchar2(500); v_cursor number; j number; begin for i in 10..120 loop begin tmpstr:= 'create table DPC_TEST'|| i ||' as select * from DPC_TEST WHERE

页面跳转 Server.Transfer和 Response.Redirect的区别

1.Server.Transfer 用于把处理的控制权从一个页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变.因此你能从a页面跳转到b页面而不丢失a页面里的信息. 2.Response.Redirect 发送一个HTTP响应到客服端浏览器,告诉客服端跳转到哪一个页面,客服端在发送跳转请求到服务器.使用此方法将无法保存内部控件的数据,页面a跳转到页面b,而页面b将无法访问a中form提交的数据. 而在具体比较如下 Server.Tran