WEB ADI中创建弹出式菜单值列表的设置方法(转)

1)研究Oracle原有的设置

执行:select *
from BNE_INTERFACE_COLS_B b
where b.LOV_TYPE = 'STANDARD' and b.interface_col_type = 1
and b.interface_col_name = 'ENCUMBRANCE_TYPE_ID'

后找到:INTERFACE_COL_TYPE=1INTERFACE_COL_NAME=ENCUMBRANCE_TYPE_IDVAL_TYPE=TABLEVAL_ID_COL=ENCUMBRANCE_TYPE_IDVAL_MEAN_COL=ENCUMBRANCE_TYPEVAL_DESC_COL=VAL_OBJ_NAME=GL_ENCUMBRANCE_TYPESVAL_ADDL_W_C=ENABLED_FLAG = 'Y'VAL_COMPONENT_APP_ID=231VAL_COMPONENT_CODE=OA_ENCUMBRANCESLOV_TYPE=STANDARDOFFLINE_LOV_ENABLED_FLAG=YMAPPING_ENABLED_FLAG=Y

执行:select *
from BNE_COMPONENTS_B a
where a.component_code in ('OA_ENCUMBRANCES')

后找到PARAM_LIST_CODE=COMP_ENCUMBparam_list_app_id=231

执行:select *
from BNE_PARAM_LIST_ITEMS p
where p.param_list_code = 'COMP_ENCUMB'

后找到以下设置:

APPLICATION_ID

PARAM_LIST_CODE

PARAM_DEFN_APP_ID

PARAM_DEFN_CODE

STRING_VALUE

231

COMP_ENCUMB

231

OA_ENCUMB_TAB_HDR

 

231

COMP_ENCUMB

231

TABLE_COLUMNS

ENCUMBRANCE_TYPE

231

COMP_ENCUMB

231

TABLE_SELECT_COLUMN

ENCUMBRANCE_TYPE_ID

231

COMP_ENCUMB

231

TABLE_COLUMN_ALIAS

ENCUMBRANCE_TYPE_ID

231

COMP_ENCUMB

231

OA_ENCUMB_WIN_CAP

 

231

COMP_ENCUMB

231

WINDOW_WIDTH

300

231

COMP_ENCUMB

231

WINDOW_HEIGHT

400

231

COMP_ENCUMB

231

TABLE_BLOCK_SIZE

25

通过以上的设置我们得知:

a.要将参数传入ENCUMBRANCE_TYPE_ID,则使用了GL_ENCUMBRANCE_TYPES的值列表。

b.使用了一个名为'OA_ENCUMBRANCES'的组件,而这个组件使用了名为'COMP_ENCUMB'的参数。

c.参数TABLE_COLUMNS决定在值列表中显示哪些列,如果显示多个列,用,分隔。

d.参数TABLE_SELECT_COLUMN代表返回的字段名,必须与BNE_INTERFACE_COLS_B.INTERFACE_COL_NAME一摸一样的字段。

根据在上一篇中的研究所得,进行测试。由于Oracle不支持客户化定制值列表,因此没有任何的技术资料供参考。以下的内容是本人经过上百次测试摸索的实验结果,难免与Oracle标准的设置步骤存在差异。如有差错遗漏,请见谅。

测试资料如下:

应用名:Tsingtao Customization ApplicationsCUX20003

HR配置器:FSC.单据录入(GENERAL_22_INTG

HR接口程序:GENERAL_22_INTF

测试字段:现金流项目(P_CASH_FLOW_ITEM

取值来源:select lookup_code,meaning,description from fsc_lookup_codes_v where lookup_type='FSC_CASH_FLOW_ITEM' and end_date is null

测试步骤如下:

1)修改参数行属性。在此例子中,新建了一个应用ID”20003名称“OA_FSC_CFS_ITEM”的组件。 必须要为每个需要使用值列表的字段设置一个组件。(Oracle对组件的命名规则一般以OA作为前缀,因为是客户化值列表,为避免与将来新的标准功能冲突,建议在组件名中在加入客户化应用名。例如,在本例中,FSC代表结算中心。)

update BNE_INTERFACE_COLS_B b
   set b.interface_col_type = 1 --
代表可传送
      ,b.val_type = 'TABLE'     --
代表通过数据库的表或者视图获取值列表
      ,B.VAL_ID_COL = 'LOOKUP_CODE' --
传送到程序的参数的字段
      ,B.VAL_MEAN_COL = 'MEANING'    --
EXCEL中显示的字段
      ,B.VAL_DESC_COL = 'DESCRIPTION' --
描述,可以输入多个字段,用“,”分隔。
      ,B.VAL_OBJ_NAME = 'fsc_lookup_codes_v' --
表或者视图
      ,B.VAL_ADDL_W_C = 'lookup_type='|| chr(39) || 'FSC_CASH_FLOW_ITEM' || chr(39) || 'AND end_date is null' --
查询条件
      ,B.VAL_COMPONENT_APP_ID = 20003 --
新增的组件的应用ID
      ,B.VAL_COMPONENT_CODE = 'OA_FSC_CFS_ITEM' --
新增的组件的应用ID
      ,B.LOV_TYPE = 'STANDARD' --
代表弹出式菜单
      ,B.OFFLINE_LOV_ENABLED_FLAG ='Y'
      ,B.MAPPING_ENABLED_FLAG = 'Y'
WHERE b.INTERFACE_CODE = 'GENERAL_22_INTF' and b.interface_col_name LIKE ('P_CASH_FLOW_ITEM')   

2)插入组件。Oracle并不没有提供标准的创建方法,只能通过SQL代码了,呵呵。必须要为每个组件设置一个参数。在此例子中,新增了一个应用ID”20003名称“COMP_FSC_CFS_ITEM”的组件。(Oracle对参数的命名规则一般以COMP作为前缀,因为是客户化值列表,为避免与将来新的标准功能冲突,建议在参数名中在加入客户化应用名。例如,在本例中,FSC代表结算中心。)

insert into bne_components_b
(application_id
,component_code
,object_version_number
,component_java_class
,param_list_app_id
,param_list_code
,created_by
,creation_date
,last_updated_by
,last_update_login
,last_update_date)
values
(20003 --
对应BNE_INTERFACE_COLS_B.VAL_COMPONENT_APP_ID
,'OA_FSC_CFS_ITEM' --
对应BNE_INTERFACE_COLS_B.VAL_COMPONENT_CODE
,1
,'oracle.apps.bne.integrator.component.BneOAValueSetComponent' --Oracle
标准的代码
,20003 --
参数应用ID
,'COMP_FSC_CFS_ITEM' --
参数的代码名称
,-1
,sysdate
,-1
,-1
,sysdate);

insert into bne_components_tl
(application_id
,component_code
,language
,source_lang
,user_name
,created_by
,creation_date
,last_updated_by
,last_update_login
,last_update_date)
values
(20003 --
对应bne_components_b.application_id
,'OA_FSC_CFS_ITEM' --
对应bne_components_b.component_code
,'ZHS'
,'ZHS'
,'FSC
现金流量表项目' --说明
,-1
,sysdate
,-1
,-1
,sysdate);

3)设置参数设置表单。查到Oracle在操作这个步骤的标准功能,但隐藏起来了。

新增一个功能,设置如下:

功能:FSC_PARAMETER

用户参数名:FSC:参数设置

类型:SSWA servlet 函数

表单:()

参数:bne:page=BneParameter

HTML调用:oracle.apps.bne.webui.BneApplicationService

把该功能加入到WEB ADI的主菜单中,例如桌面集成菜单(DESKTOP INTEGRATION MENU

4)使用步骤3)中的功能,调用BNE的参数设置界面。每个参数都必须设置属性,而且属性中的特殊字段必须与使用值列表的字段名保持完全一致。通常情况下,只要曾经设置了一个参数,以后都可以通过复制创建新的参数及属性。

在本例子中,介绍如何以Oralce系统原有的一个参数(COMP_AVG_JNL_FLAG)来创建客户化应用的参数及属性。

a.在打开的页面中,选择应用为“Web 应用产品桌面集成器,并取消“Restrict to this application”的选择,点击下一步

b.在打开的界面中,点击手电筒(Search for Parameter List)。

c.在搜索依据中,选择“appld:code”。并输入COMP_AVG_JNL_FLAG

d.选择“231:COMP_AVG_JNL_FLAG”,点击选择按钮。

e.当看到COMP_AVG_JNL_FLAG组件后,选择复制按钮。

f.修改参数,点击保存按钮。此处要注意,APPLICATION必须选择在步骤3)中选择的值必须与bne_components_b.application_id保持一致,CODE中设置的值必须与bne_components_b.component_code保持一致。

g.复制完成后,转入对COMP_FSC_CFS_ITEM的编辑。点击手电筒,进行查找。

h.在搜索依据中,选择“appld:code”。并输入COMP_FSC_CFS_ITEM。点击查找按钮。

i.COMP_FSC_CFS_ITEM的属性进行修改,并保存。

5)设置Windows Caption的属性。该属性控制值列表窗口弹出时标题文本。如果从一个客户化定义的参数复制而来,则可以跳过bj的步骤。

a.选择“window-caption”的参数属性,点击编辑(Update parameter

b.点击Parameter Definition的编辑按钮,对Oracle原有的参数属性进行复制。

c.点击复制按钮。

d.输入参数。建议有一定的命名规则,例如CODE输入FSC_CFS_ITEM_WIN_CAP应用选择客户化的应用。点击保存按钮。

e.此时当前的参数属性仍为“OA_AVG_JNL_F_WIN_CAP”,需要把刚才定义的参数属性查询出来编辑。点击查询Search for Parameter Definition)。

f.在搜索依据中选择“appld:code”,输入FSC_CFS_ITEM_WIN_CAP

g.从列表中选择“20003:FSC_CFS_ITEM_WIN_CAP”,点击选择按钮。

h.FSC_CFS_ITEM_WIN_CAP的设置进行调整。其中VALUE是默认值,在本例中,输入搜索并选择 - 代码。点击保存按钮。

i.此时,该参数属性仍为“231:OA_AVG_JVL_F_WIN_CAP”,需要应用刚才上面设置的FSC_CFS_ITEM_TBL_HDR。点击Prameter Definition的查询图标。

j.在搜索依据中选择“appld:code”,输入FSC_CFS_ITEM_TBL_HDR。从列表中选择“20003:FSC_CFS_ITEM_TBL_HDR”,点击选择按钮。

k.对当前这个参数调用该参数属性时,如果要求使用的值不等于参数属性的默认值,则临时指定特殊值。在本例中,在value中输入搜索并选择 - 现金流项目。点击保存按钮。

l.对参数属性进行任何修改后,都需要在参数设置表单进行保存。

6)设置Table Headers的属性。该属性控制值列表窗口弹出时,值列表中显示的每一列的标题。该参数设置时,列的数量和顺序应该与Table Columns的属性保持一致。如果存在多个列,则用“,”分隔。如果从一个客户化定义的参数复制而来,则可以跳过bj的步骤。

a.选择“table-headers”的参数属性,点击编辑(Update parameter

b.点击Parameter Definition的编辑按钮,对Oracle原有的参数属性进行复制。

c.点击复制按钮。

d.输入参数。建议有一定的命名规则,例如CODE输入FSC_CFS_ITEM_TBL_HDR应用选择客户化的应用。点击保存按钮。

e.此时当前的参数属性仍为“OA_AVG_JNL_F_TBL_HDR”,需要把刚才定义的参数属性查询出来编辑。点击查询Search for Parameter Definition)。

f.在搜索依据中选择“appld:code”,输入FSC_CFS_ITEM_TBL_HDR

g.从列表中选择“20003:FSC_CFS_ITEM_TBL_HDR”,点击选择按钮。

h.FSC_CFS_ITEM_TBL_HDR的设置进行调整。其中VALUE是默认值,在本例中,输入值,代码;代表值列表将会有两年,第一列是,第二列是代码。点击保存按钮。

i.此时,该参数属性仍为“231:OA_AVG_JVL_F_TAB_HDR”,需要应用刚才上面设置的FSC_CFS_ITEM_TBL_HDR。点击Prameter Definition的查询图标。

j.在搜索依据中选择“appld:code”,输入FSC_CFS_ITEM_TBL_HDR。从列表中选择“20003:FSC_CFS_ITEM_TBL_HDR”,点击选择按钮。

k.对当前这个参数调用该参数属性时,如果要求使用的值不等于参数属性的默认值,则临时指定特殊值。在本例中,在value中输入现金流项目,代码;代表值列表将会有两年,第一列是现金流项目,第二列是代码。点击保存按钮。

l.对参数属性进行任何修改后,都需要在参数设置表单进行保存。

7)设置Tables Columns的参数属性。该属性控制在值列表中显示列,以及列的顺序。从设置规范的角度,Tables Columns参数属性中的列和顺序,应该与Table Column AliasTable Headers这两个参数属性的列和顺序保持完全一致。

VALUE中输入各个列名,用“,”分隔。注意这里的字段名必须是BNE_INTERFACE_COLS_B.VAL_OBJ_NAME的字段之一,并且出现在BNE_INTERFACE_COLS_B中的VAL_ID_COLVAL_MEAN_COL或者Val_Desc_Col中,否则显示不出值。点击保存按钮。

对参数属性进行任何修改后,都需要在参数设置表单进行保存。

8)设置Table Column Alias的参数属性。针对Tables Columns参数属性中的列,指定假名。

VALUE中输入各个列的假名(或者字段名),用“,”分隔。注意,该假名必须与BNE_INTERFACE_COLS_B.interface_col_name 保持完全一致,否则在值列表挑选后,不会自动更新EXCEL表格中对应的项目。可以同时写入EXCEL中的多个字段,用“,”分隔。

对参数属性进行任何修改后,都需要在参数设置表单进行保存。

9)设置TABLE SELECT COLUMN的参数属性。此参数决定通过值列表选择后,返还到EXCEL表格的哪个字段。

VALUE中输入返还的字段。该字段的名字必须与BNE_INTERFACE_COLS_B.interface_col_name 保持完全一致并且,该字段必须存在于BNE_INTERFACE_COLS_B.VAL_OBJ_NAME的列中,或者在Table Column Alias的参数属性中被指定假名。否则在值列表挑选后,不会自动更新EXCEL表格中对应的项目。

对参数属性进行任何修改后,都需要在参数设置表单进行保存。

10)重启APACHE

11)重新下载文档,即可看到值列表有效运作。

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

转载于:http://blog.itpub.net/15725751/viewspace-615792/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值