目前版本的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,重新下载文档录入表单,就可以看到变化了。