• 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;

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

     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实例。

     

  • 相关阅读:
    TControl的主要功能研究(属性,函数,事件)
    写一个控件,如何实现设计期的可视化
    Delphi 通过脚本 在 设计期 改 控件name 属性
    Delphi TreeView – 自动展开树形结构
    Delphi之创建组件模板(Component Template)
    delphi Controls Components 属性
    Delphi 2009 之 TCategoryPanelGroup[1]: ChevronAlignment 等
    delphi xe 10分组按钮CategoryButtons 折叠按钮
    Delphi ControlCount和ComponentCount的区别
    ComponentCount和ControlCount区别
  • 原文地址:https://www.cnblogs.com/chenyongjun/p/3940631.html
Copyright © 2020-2023  润新知