WEB ADI 模板值列表字段的设置方法

目前版本的WEB ADI不支持用户自己自定义值列表,但如果没有值列表,则用户体验的满意度比较低。

ORACLE WEB ADI支持的值列表有两种形式:下拉式菜单和标准值列表(弹出窗口)。第一种的设置较为简单,第二种需要使用JAVA。本章介绍下拉式菜单的设置方法。

1)定义VIEW:

CREATE OR REPLACE VIEW FSC_INTERFACE_COLUMNS_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的设置变量

PACKAGE FSC_PACKAGES is

-- Author : AHUNGHUO
-- Created : 2007-9-15 16:26:50
-- 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 FSC_PACKAGES;

PACKAGE BODY FSC_PACKAGES is

--############################################################################
   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_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;
   END;
begin
null;
end FSC_PACKAGES;

3)注册配置文件。使用WEB ADI职责中的CREATE DOCUMENT,选择“HR 集成器设置”。参数可如下:

元数据类型

UPDATE

应用简称

CUX

集成器用户名

FSC_维护配置器行参数

视图名称

FSC_INTERFACE_COLUMNS_V

表单名

GENERAL

API 程序包名称

FSC_PACKAGES

API 过程名

pop_interface_cols

界面用户名

FSC_INTG_COL_INTF

界面参数列表名称

FSC_INTG_COL_PARALIST

API 类型

PROCEDURE

API 返回类型

 

4)与功能关联,分配权限(略)

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

应用简称

CUX

集成器用户名

FSC_维护配置器行参数

SQL WHERE 子句

WHERE USERNAME LIKE $PARAM$.CUX:UserNameLike

第 1 个参数名

CUX:UserNameLike

第 1 个参数类型

Varchar2

第 1 个参数提示

配置器用户名

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

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

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

8)创建“FSC_维护配置器行参数”的文档,就可以开始设置值列表了。

在需要设置值列表的字段中,更改从VAL_TYPE到OFFLINE_LOV_ENABLED_FLAG的参数。说明如下:

参数名

参数说明

例子

VAL_TYPE

值列表数据来源,从Oracle数据库中获得,则统一选择:TABLE

TABLE

VAL_ID_COL

传递给程序参数的字段

LOOKUP_CODE

VAL_MEAN_COL

在EXCEL中显示的字段

MEANING

VAL_DESC_COL

说明的字段

DESCRIPTION

VAL_OBJ_NAME

值列表所在的表名

FND_LOOKUPS

VAL_ADDL_W_C

WHERE语句

LOOKUP_TYPE='YES_NO'

VAL_COMPONENT_APP_ID

组件的应用ID,如对格式没有严格要求,可选择任一个通用的组件。例如231

231

VAL_COMPONENT_CODE

组件名,如对格式没有严格要求,可选择任一个通用的组件。例如OA_REVERSE_JOURNAL

OA_REVERSE_JOURNAL

LOV_TYPE

值列表类型,统一选择:POPLIST

POPLIST

OFFLINE_LOV_ENABLED_FLAG

离线编辑EXCEL表格时是否可用

Y

修改后上传即可。

9)重启APACHE,重新下载文档录入表单,就可以看到变化了。

posted @ 2011-03-10 10:26  郭振斌  阅读(2097)  评论(1编辑  收藏  举报