ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WEB ADI中创建下拉式菜单的设置方法(转/编)

WEB ADI中创建下拉式菜单的设置方法(转/编)

原创 Linux操作系统 作者:zuibunan 时间:2009-09-22 13:36:50 0 删除 编辑

ORACLE WEB ADI支持的值列表有两种形式:下拉式菜单(POPLIST)和标准值列表(STANDARD弹出窗口即LOV),本章介绍下拉式菜单的设置方法。

WEB ADI表结构(只列出了基本信息表,没有列出多语言对应的_TL):

  1. bne_integrators_b:存贮定义的WebADI集成器
  2. bne_interfaces_b:存贮集成器对应接口信息
  3. bne_interface_cols_b存贮接口对应的列信息,包括列的各种验证信息和属性
  4. bne_components_bOA组件定义,如一个验证的LOV就是一个组件
  5. bne_param_lists_b参数列表,可以理解为参数的分组,目的是为了实现参数的重用
  6. bne_param_list_items:存贮参数列表和参数的关联信息
  7. bne_param_defns_b存贮参数定义,包括默认值、验证信息、显示信息等

(一)做一个方便开发的WEB_ADI_DEPLOY(即一个UPDATE类型的ADI)

1)定义VIEW:用于方便我们管理与设置WEB ADI的参数,其实直接用SQL修改也是一样的

CREATE OR REPLACE VIEW  WEB_ADI_DEPLOY_V AS
SELECT INTG.APPLICATION_ID
      ,INTG.INTEGRATOR_CODE
      ,INTG.USER_NAME
      ,INTG.DATE_FORMAT
      ,INTC.INTERFACE_CODE
      ,INTC.SEQUENCE_NUM
      ,INTC.DISPLAY_ORDER
      ,INTC.INTERFACE_COL_NAME
      ,INTC.REQUIRED_FLAG
      ,INTC.DISPLAY_FLAG
      ,INTC.READ_ONLY_FLAG
      ,INTC.NOT_NULL_FLAG
      ,INTC.DATA_TYPE
      ,INTC.FIELD_SIZE
      ,INTC.DEFAULT_TYPE
      ,INTC.DEFAULT_VALUE
      ,INTC.VAL_TYPE
      ,INTC.VAL_ID_COL
      ,INTC.VAL_MEAN_COL
      ,INTC.VAL_DESC_COL
      ,INTC.VAL_OBJ_NAME
      ,INTC.VAL_ADDL_W_C
      ,INTC.VAL_COMPONENT_APP_ID
      ,INTC.VAL_COMPONENT_CODE
      ,INTC.LOV_TYPE
      ,INTC.OFFLINE_LOV_ENABLED_FLAG
      ,INTC.USER_HINT
      ,INTC.PROMPT_LEFT
      ,INTC.PROMPT_ABOVE
FROM BNE_INTERFACE_COLS_vl INTC
    ,BNE_INTERFACES_VL INTF
    ,BNE_INTEGRATORS_VL INTG
WHERE INTC.INTERFACE_CODE = INTF.INTERFACE_CODE
AND INTF.INTEGRATOR_CODE = INTG.INTEGRATOR_CODE;

2)定义一个PACKAGE,专用于修改WEB ADI的设置变量

CREATE OR REPLACE PACKAGE WEB_ADI_DEPLOY_PKG IS

-- Author : AHUNGHUO+ZUIBUNAN
-- Created : 2007-9-15 16:26:50+2009-10-9
-- Public type declarations
--############################################################################
   procedure pop_interface_cols(
             P_APPLICATION_ID         NUMBER
            ,P_INTEGRATOR_CODE        VARCHAR2
            ,P_USER_NAME              VARCHAR2
            ,P_DATE_FORMAT            VARCHAR2
            ,P_INTERFACE_CODE         VARCHAR2
            ,P_SEQUENCE_NUM           VARCHAR2
            ,P_INTERFACE_COL_NAME     VARCHAR2
            ,P_REQUIRED_FLAG          VARCHAR2
            ,P_DISPLAY_FLAG           VARCHAR2
            ,P_READ_ONLY_FLAG         VARCHAR2
            ,P_NOT_NULL_FLAG          VARCHAR2
            ,P_DATA_TYPE              VARCHAR2
            ,P_FIELD_SIZE             VARCHAR2
            ,P_DEFAULT_TYPE           VARCHAR2
            ,P_DEFAULT_VALUE          VARCHAR2
            ,P_VAL_TYPE               VARCHAR2
            ,P_VAL_ID_COL             VARCHAR2
            ,P_VAL_MEAN_COL           VARCHAR2
            ,P_VAL_DESC_COL           VARCHAR2
            ,P_VAL_OBJ_NAME           VARCHAR2
            ,P_VAL_ADDL_W_C           VARCHAR2
            ,P_VAL_COMPONENT_APP_ID   VARCHAR2
            ,P_VAL_COMPONENT_CODE     VARCHAR2
            ,P_DISPLAY_ORDER          VARCHAR2
            ,P_LOV_TYPE               VARCHAR2
            ,P_OFFLINE_LOV_ENABLED_FLAG    VARCHAR2
            ,P_USER_HINT              VARCHAR2
            ,P_PROMPT_LEFT            VARCHAR2
            ,P_PROMPT_ABOVE           VARCHAR2
      );
END WEB_ADI_DEPLOY_PKG ;

CREATE OR REPLACE PACKAGE BODY WEB_ADI_DEPLOY_PKG IS

--############################################################################
   PROCEDURE web_adi_deploy_p(
             P_APPLICATION_ID         NUMBER
            ,P_INTEGRATOR_CODE        VARCHAR2
            ,P_USER_NAME              VARCHAR2
            ,P_DATE_FORMAT            VARCHAR2
            ,P_INTERFACE_CODE         VARCHAR2
            ,P_SEQUENCE_NUM           VARCHAR2
            ,P_DISPLAY_ORDER          VARCHAR2
            ,P_INTERFACE_COL_NAME     VARCHAR2
            ,P_REQUIRED_FLAG          VARCHAR2
            ,P_DISPLAY_FLAG           VARCHAR2
            ,P_READ_ONLY_FLAG         VARCHAR2
            ,P_NOT_NULL_FLAG          VARCHAR2
            ,P_DATA_TYPE              VARCHAR2
            ,P_FIELD_SIZE             VARCHAR2
            ,P_DEFAULT_TYPE           VARCHAR2
            ,P_DEFAULT_VALUE          VARCHAR2
            ,P_VAL_TYPE               VARCHAR2
            ,P_VAL_ID_COL             VARCHAR2
            ,P_VAL_MEAN_COL           VARCHAR2
            ,P_VAL_DESC_COL           VARCHAR2
            ,P_VAL_OBJ_NAME           VARCHAR2
            ,P_VAL_ADDL_W_C           VARCHAR2
            ,P_VAL_COMPONENT_APP_ID   VARCHAR2
            ,P_VAL_COMPONENT_CODE     VARCHAR2
            ,P_LOV_TYPE               VARCHAR2
            ,P_OFFLINE_LOV_ENABLED_FLAG VARCHAR2
            ,P_USER_HINT              VARCHAR2
            ,P_PROMPT_LEFT            VARCHAR2
            ,P_PROMPT_ABOVE           VARCHAR2
      ) IS
   BEGIN
     UPDATE BNE_INTERFACE_COLS_B b
         SET B.REQUIRED_FLAG=P_REQUIRED_FLAG
            ,B.DISPLAY_FLAG=P_DISPLAY_FLAG
            ,B.READ_ONLY_FLAG=P_READ_ONLY_FLAG
            ,B.NOT_NULL_FLAG=P_NOT_NULL_FLAG
            ,B.DATA_TYPE=P_DATA_TYPE
            ,B.FIELD_SIZE=P_FIELD_SIZE
            ,B.DEFAULT_TYPE=P_DEFAULT_TYPE
            ,B.DEFAULT_VALUE=P_DEFAULT_VALUE
            ,B.VAL_TYPE=P_VAL_TYPE
            ,B.VAL_ID_COL=P_VAL_ID_COL
            ,B.VAL_MEAN_COL=P_VAL_MEAN_COL
            ,B.VAL_DESC_COL=P_VAL_DESC_COL
            ,B.VAL_OBJ_NAME=P_VAL_OBJ_NAME
            ,B.VAL_ADDL_W_C=P_VAL_ADDL_W_C
            ,B.VAL_COMPONENT_APP_ID=P_VAL_COMPONENT_APP_ID
            ,B.VAL_COMPONENT_CODE=P_VAL_COMPONENT_CODE
            ,B.DISPLAY_ORDER=P_DISPLAY_ORDER
            ,B.LOV_TYPE=P_LOV_TYPE
            ,B.OFFLINE_LOV_ENABLED_FLAG=P_OFFLINE_LOV_ENABLED_FLAG
     WHERE B.INTERFACE_CODE = P_INTERFACE_CODE
       AND B.SEQUENCE_NUM = P_SEQUENCE_NUM;

     UPDATE BNE_INTERFACE_COLS_TL T
         SET T.USER_HINT=P_USER_HINT
            ,T.PROMPT_LEFT=P_PROMPT_LEFT
            ,T.PROMPT_ABOVE=P_PROMPT_ABOVE
     WHERE T.INTERFACE_CODE = P_INTERFACE_CODE
       AND T.SEQUENCE_NUM = P_SEQUENCE_NUM;
     COMMIT;--此处COMMIT可以不要,ADI有默认的COMMIT在最后执行完后
   END;
begin
null;
END WEB_ADI_DEPLOY_PKG ;

3)注册集成器:使用WEB ADI职责中的CREATE DOCUMENT,选择“HR 集成器设置”...最后在打开的EXCEl中参数设置如下:

元数据类型

UPDATE

应用简称

XYZ(例如:XYZ客户化应用,20003)

集成器用户名

WEB_ADI_DEPLOY

视图名称

WEB_ADI_DEPLOY_V

表单名

GENERAL

API 程序包名

WEB_ADI_DEPLOY_PKG

API 过程名

web_adi_deploy_p

界面用户名

WEB_ADI_DEPLOY_INTF

界面参数列表名

WEB_ADI_DEPLOY_PARALIST

API 类型

PROCEDURE

API 返回类型

 

4)在系统中挂表单功能,并将该功能挂在职责“Oracle Web ADI“对应的菜单下、在职责“Oracle Web ADI“下,用‘HR 维护集成器表单功能关联’进行集成器与表单功能的关联,用‘HR  创建集成器责任限制’分配权限(详细步骤略)

5)设置独立查询:使用WEB ADI职责中的CREATE DOCUMENT,选择“HR 维护独立查询”...参数设置如下:

应用简称

XYZ

集成器用户名

WEB_ADI_DEPLOY

SQL WHERE 子句

WHERE USER_NAME LIKE $PARAM$.XYZ:UserNameLike

1 个参数名

XYZ:UserNameLike

1 个参数类型

Varchar2

1 个参数提示

集成器用户名

6)设置Layout,显示全部列(略),任意挑选需要显示和更改的字段。如果VIEW有这个字段而Procedure的参数没有,则仅作为显示内容,不允许修改。

7)设置mapping,特别是VIEW的字段名和Procedure的参数名不一致的时候,必须手工制定。系统自动把Procedure的全部参数(裁剪前2位字符)与VIEW的字段名向匹配,如果有不一致或者需要特殊映射的地方,需要手工指定。

在本例子中由于VIEW字段名和PROCEDURE参数名完全一致,所以不用更改默认设置。

8)完成创建“WEB_ADI_DEPLOY”集成器的文档,就可以开始设置值列表了。

(二)下拉式菜单的设置(实现)

通过(一)的WEB_ADI_DEPLOY在你创建的ADI中将需要设置值列表的字段,配置以下参数(也可以通过SQL):

参数名 参数说明 例子
VAL_TYPE 值列表数据来源 TABLE
VAL_ID_COL 传递给程序参数的字段 USER.user_id
VAL_MEAN_COL 在EXCEL中显示的字段 USER.user_name
VAL_DESC_COL 说明的字段(POPLIST时,没有必要填) USER.description,...等等
VAL_OBJ_NAME 值列表所在的表名(可以多表及别名) USER_T USER,...等等
VAL_ADDL_W_C WHERE语句
VAL_COMPONENT_APP_ID 组件的应用ID,如对格式没有严格要求,可选择任一个通用的组件。例如231(注:POPLIST时,可为空)
VAL_COMPONENT_CODE 组件名,如对格式没有严格要求,可选择任一个通用的组件。例如OA_REVERSE_JOURNAL(注:POPLIST时,可为空)
LOV_TYPE 值列表类型,统一选择:POPLIST POPLIST
OFFLINE_LOV_ENABLED_FLAG 离线编辑EXCEL表格时是否可用 Y

修改后上传即可。然后重启APACHE,重新下载文档录入表单,就可以看到变化了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15725751/viewspace-615299/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-09-15

  • 博文量
    39
  • 访问量
    92473