您的位置:首页 > 数据库 > Oracle

ORACLE WEBADI 开发示例

2014-08-28 15:18 253 查看



一、建表

create table SGQ_WEBADI_DEMO

(

ADI_ID NUMBER,

ADI_ORGANIZATION_ID NUMBER,

ADI_CODE VARCHAR2(30),

ADI_NAME VARCHAR2(100),

ADI_DATE DATE

);

二、创建同义词

SQL> CREATE PUBLIC SYNONYM SGQ_WEBADI_DEMO FOR SGQ_WEBADI_DEMO;

Synonym created

三、创建序列

SQL> CREATE SEQUENCE SGQ_WEBADI_DEMO_S;

Sequence created

四、创建序列同义词

SQL> CREATE PUBLIC SYNONYM SGQ_WEBADI_DEMO_S FOR SGQ_WEBADI_DEMO_S;

Synonym created

五、插入测试数据

SQL> INSERT INTO SGQ_WEBADI_DEMO VALUES(1,83,'TEST01','青羊支行',SYSDATE);

1 row inserted

SQL> commit;

Commit complete

六、登记表

参数的涵义分别为:所有者、表名、扩展(T自动,S非自动)下一区,自由、已使用

:所有者、表名、列字段名、序号、类型、字段宽度、是否为空,是否可以转换。

SQL> BEGIN

ad_dd.register_table('XXT','SGQ_WEBADI_DEMO','t');

ad_dd.register_column('XXT','SGQ_WEBADI_DEMO','adi_id',1,'number',38,'y','n');

ad_dd.register_column('XXT','SGQ_WEBADI_DEMO','adi_organization_id',2,'number',38,'y','n');

ad_dd.register_column('XXT','SGQ_WEBADI_DEMO','adi_code',3,'varchar2',30,'y','n');

ad_dd.register_column('XXT','SGQ_WEBADI_DEMO','adi_name',4,'varchar2',100,'y','n');

ad_dd.register_column('XXT','SGQ_WEBADI_DEMO','adi_date',5,'date',9,'y','n');

COMMIT;

END;

/

PL/SQL procedure successfully completed

七、创建视图

SQL> create or replace view sgq_webadi_demo_v as select * from sgq_webadi_demo;

View created

八、创建包

SQL> CREATE OR REPLACE PACKAGE SGQ_WEBADI_DEMO_PKG IS

PROCEDURE UPLOAD_DATA(P_ID IN NUMBER,

P_ORGANIZATION_ID NUMBER,

P_CODE IN VARCHAR2,

P_NAME IN VARCHAR2,

P_DATE IN DATE);

END;

/

Package created

SQL> CREATE OR REPLACE PACKAGE BODY SGQ_WEBADI_DEMO_PKG IS

PROCEDURE UPLOAD_DATA(P_ID IN NUMBER,

P_ORGANIZATION_ID NUMBER,

P_CODE IN VARCHAR2,

P_NAME IN VARCHAR2,

P_DATE IN DATE) IS

BEGIN

IF P_ID IS NULL THEN

INSERT INTO SGQ_WEBADI_DEMO

(ADI_ID, ADI_ORGANIZATION_ID, ADI_CODE, ADI_NAME, ADI_DATE)

SELECT SGQ_WEBADI_DEMO_S.NEXTVAL,

P_ORGANIZATION_ID,

P_CODE,

P_NAME,

P_DATE

FROM
DUAL;

ELSE

UPDATE SGQ_WEBADI_DEMO T

SET T.ADI_ORGANIZATION_ID = P_ORGANIZATION_ID,

T.ADI_CODE = P_CODE,

T.ADI_NAME
= P_NAME,

T.ADI_DATE = P_DATE

WHERE T.ADI_ID = P_ID;

END IF;

END;

END SGQ_WEBADI_DEMO_PKG;

/

Package body created

九、创建集成器

9.1 Desktop Integrator -->创建文档(Create Document)



9.2选择“HR集成器设置”,下一步



9.3 查看程序选择“EXCEL 2003”,否则可能会有问题。
报告框不要选,否则不能编辑上传。下一步。



9.4 内容选择“无”,下一步。



9.5 点击“创建文档”。



9.6 保存并打开文档





9.7 文档创建完成后,点弹出界面的关闭按钮,并编辑(注意点一下加载列的第一个单元格,用来进行标记,本测试后续导入时,只导入标记的行)。



以上内容填写如下:



9.8 加载到EBS(加载项-ORACLE-加载)



9.9选择标记的行,点击加载





9.10 验证,因为在中文环境下创建的集成器,所以查看时如果无数据,则要先初始化语言环境,再进行一遍查询操作。

SQL> alter session set nls_language='SIMPLIFIED CHINESE';

Session altered

SQL> SELECT BNI.APPLICATION_ID, --应用ID

2 BNI.INTEGRATOR_CODE, --集成器代码

3 BNI.USER_NAME --集成器名称

4 FROM BNE_INTEGRATORS_VL BNI

5 WHERE BNI.USER_NAME = 'SGQ_WEBADI_DEMO';

APPLICATION_ID INTEGRATOR_CODE USER_NAME

---------------- ------------------------------ ------------------------------

20003 GENERAL_141_INTG SGQ_WEBADI_DEMO

十、维护集成器表单功能关联

10.1 Desktop Integrator -->创建文档(Create
Document)



10.2 选择“HR 维护集成器表单功能关联”(HR
Maintain Integrator Form Function Associations),下一步



10.3 选择EXCEL 2003 ,报告前面的框不打勾,理由参见上面说明,,下一步。



10.4 选择内容参数



PS:应用程序简称为本系统的客户化应用名称XXT,其他系统按之前加载时导入的“应用程序简称”填写。同样,集成器用户名也是在之前加载时定义的。填写完成后,继续。

10.5 复查,无问题,则点击“创建文档”。



10.6 保存文件并打开



文档创建后如图:



表单功能列表字段暂不填写,我们定义此功能名称后再进行填写。

十一、定义功能

11.1 进入路径:应用开发员-->应用产品-->功能

a)在说明选项卡,填写如下:



其中,SGQ_WEBADI_FUNCTION为自定义的功能。

b)在特性选项卡,填写如下:



功能: SGQ_WEBADI_FUNCTION

用户功能名:SGQ_WEBADI_FUNCTION

类型:子函数

保存退出当前界面。

十二 添加功能到菜单

12.1 进入路径:应用开发员-->应用产品-->菜单

a)查找DESKTOP INTEGRATION MENU,添加一行,功能列填写:SGQ_WEBADI_FUNCTION,即上面定义的功能。提示列保存为空。然后保存退出。



十三、填写第十步创建的表单功能EXCEL中的表单功能列表,并进行加载





13.1 验证

SQL> alter session set nls_language='SIMPLIFIED CHINESE';

Session altered

SQL> SELECT BNI.APPLICATION_ID,

BNI.INTEGRATOR_CODE, --集成器CODE

BNI.USER_NAME, --集成器名称

BSR.SECURITY_VALUE --功能CODE

FROM BNE_INTEGRATORS_VL BNI

JOIN BNE_SECURITY_RULES BSR ON (BSR.APPLICATION_ID = BNI.APPLICATION_ID AND

BSR.SECURITY_CODE = BNI.INTEGRATOR_CODE)

WHERE BNI.USER_NAME = 'SGQ_WEBADI_DEMO';

APPLICATION_ID INTEGRATOR_CODE USER_NAME SECURITY_VALUE

---------------- ------------------------------ ------------------------------ ------------------------------

20003 GENERAL_141_INTG SGQ_WEBADI_DEMO SGQ_WEBADI_FUNCTION

十四、定义布局

14.1 Desktop Integrator -->定义布局



14.2 选择刚创建的集成器(本例为SGQ_WEBADI_DEMO),查找。再点创建



14.3 填写如下:输入自定义的布局名称SGQ_WEBADI_DEMO_LAYOUT,题头数不用管,下一步。



14.4 选择相关字段展示区域



必须字段里面的ORGANIZATION_ID改为题头,其他全部为行。

改为题头,则字段显示的Header里面,如果改为行,则显示在行里面。必需字段是自动出来的API PROCEDURE NAME里面的参数列表,并去提了前面的P_,我们可以安排这些字段的显示区域,(Header或者Line)

注意:

1.这些值将传给API PROCEDURE NAME,也就是参数列表,一行一次,不管是Header还是Line。

2.视图的字段名和变量名P_XXX,变量名去年P_前缀后,最好不要和视图里面的字段名相同。

因此在EXCEL里面显示的参数是分题头、行、传递给API PRECECURE NAME时是并列的,至于在API PROCEDURE NAME里面,我们又可以自己把头字段和行字段进行区分,以便插入到不同的表中。

可选字段是VIEW的字段,可以不进行显示。

14.4 对字段属性是否只读等进行设置,此处我们只设置行ID为只读。标题为“测试组织ID”,然后应用(设置为只读后,上传时此值为空)。



14.5 应用之后的界面如下:



14.6 验证:

SELECT BNI.APPLICATION_ID,

BNI.INTEGRATOR_CODE, --集成器CODE

BNI.USER_NAME, --集成器名称

BLV.LAYOUT_CODE, --布局代码

BLV.USER_NAME, --布局用户名称

BLC.SEQUENCE_NUM,

BIC.*

FROM BNE_INTEGRATORS_VL BNI,

BNE_LAYOUTS_VL BLV,

BNE_LAYOUT_COLS BLC,

BNE_INTERFACE_COLS_VL BIC

WHERE BNI.USER_NAME = 'SGQ_WEBADI_DEMO'

AND BLV.INTEGRATOR_APP_ID = BNI.APPLICATION_ID

AND BLV.INTEGRATOR_CODE = BNI.INTEGRATOR_CODE

AND BLV.LAYOUT_CODE = BLC.LAYOUT_CODE

AND BLC.INTERFACE_APP_ID = BIC.APPLICATION_ID

AND BLC.INTERFACE_CODE = BIC.INTERFACE_CODE

AND BLC.INTERFACE_SEQ_NUM = BIC.SEQUENCE_NUM;

十五、定义映射

15.1 Desktop Integrator -->定义映射



15.2 查找SGQ_WEBADI_DEMO,然后点“更新”,然后下一步。







15.3 更新映射,这里我们添加5行,和数据库视图列数保持一致。



这里显示界面定义的字段对应到数据库的哪个字段。我们增加4行,把视图出来的值传给API PROCEDURE NAME的参数。

15.4 验证:

SQL> SELECT BNI.APPLICATION_ID,

BNI.INTEGRATOR_CODE, --集成器CODE

BNI.USER_NAME, --集成器名称

BMV.MAPPING_CODE --映射CODE

FROM BNE_INTEGRATORS_VL BNI, BNE_MAPPINGS_VL BMV

WHERE BMV.INTEGRATOR_APP_ID = BNI.APPLICATION_ID

AND BMV.INTEGRATOR_CODE = BNI.INTEGRATOR_CODE

AND BNI.USER_NAME = 'SGQ_WEBADI_DEMO'

AND BMV.INTEGRATOR_APP_ID = BNI.APPLICATION_ID

AND BMV.INTEGRATOR_CODE = BNI.INTEGRATOR_CODE;

APPLICATION_ID INTEGRATOR_CODE USER_NAME MAPPING_CODE

---------------- ------------------------------ ------------------------------ ------------------------------

20003 GENERAL_141_INTG SGQ_WEBADI_DEMO GENERAL_141_MAP

十六、定义查询条件 ,用来定义过滤条件

16.1 Desktop Integrator -->创建文档



16.2 创建独立查询,下一步



注意:这里创建独立查询,以后要修改,则要HR 维护查询(HR Maintain Standalone Query)

16.3,选择EXCEL 2003 ,报告前面的框不选 ,下一步。



16.4 选择对应的应用程序简称和集成器用户名,下一步。



16.5 复查



16.6创建文档,保存并打开,并填写:



16.7 加载到EBS

十七、使用:

17.1 Desktop Integrator -->创建文档



17.2 选择集成器,下一步



17.3 选择EXCEL 2003,报告前面的框不选 ,下一步。



17.4 机构组织ID为83,即前面插入的SQL值,继续。



17.5 复查



17.6 创建文档,保存并打开。



进阶:客户化开发

十八、进阶EXCEL LOV

18.1 定义字段与LOV字段的关系

直接在APPS下面执行:

SELECT BIC.INTERFACE_COL_NAME, --字段名

BIC.VAL_TYPE, --填TABLE

BIC.VAL_ID_COL, --传递给程序参数的字段,填 ORGANIZATION_ID

BIC.VAL_MEAN_COL, --在EXCEL中显示的字段,填ORGANIZATION_ID

BIC.VAL_DESC_COL, --LOV中说明字段,填organization_code,organization_name

BIC.VAL_OBJ_NAME, --列表所在的表名,填 ORG_ORGANIZATION_DEFINITIONS

BIC.VAL_ADDL_W_C, --WHERE 语句,可不填

BIC.VAL_COMPONENT_APP_ID, --组件应用,填20003

BIC.VAL_COMPONENT_CODE, --组件代码,还未创建,先填一个,然后创建,填CUX_ORGANIZATION

BIC.LOV_TYPE, --填POPLIST或STANDARD,也可以填NONE

BIC.OFFLINE_LOV_ENABLED_FLAG --离线编辑EXCEL表格时是否可用,填Y

FROM BNE_INTERFACE_COLS_B BIC

WHERE EXISTS (SELECT NULL

FROM BNE_INTERFACES_VL INTF,BNE_INTEGRATORS_VL INTG --集成器

WHERE BIC.INTERFACE_CODE = INTF.INTERFACE_CODE

AND INTF.INTEGRATOR_CODE = INTG.INTEGRATOR_CODE

AND INTG.USER_NAME = 'SGQ_WEBADI_DEMO')

AND BIC.INTERFACE_COL_NAME = 'P_ORGANIZATION_ID'

FOR UPDATE;





注意字段分别填写为注释中标明的值

理解如下字段:

1.VAL_ID_COL 传递给程序参数的字段,本列中只需要传值给P_ORGANIZATION,所以只填写ORGANIZATION_ID,如果还定义了P_CODE,则需要填写CODE

2.VAL_MEAN_COL 在EXCEL中显示的字段,本列中需要显示代码机构组织ID,则需要填写ORGANIZATION_ID,如果还显示机构组织代码,则填写CODE(传值还是给ORGNIZATION_ID,只是在界面上显示的是机构组织代码)

3.VAL_DESC_COL LOV中的说明字段,可以是一个,也可以是多个。

18.2 创建组件

SQL> SELECT B.APPLICATION_ID, B.VAL_COMPONENT_APP_ID, B.VAL_COMPONENT_CODE

FROM BNE_INTERFACE_COLS_B B

WHERE B.VAL_COMPONENT_CODE = 'SGQ_ORGANIZATION';

APPLICATION_ID VAL_COMPONENT_APP_ID VAL_COMPONENT_CODE

---------------- -------------------- ------------------------------

20003 20003 SGQ_ORGANIZATION

18.3向组件表插入记录

SQL> 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

'SGQ_ORGANIZATION',--bne_interface_cols_b.val_component_CODE

1,

'oracle.apps.bne.integrator.component.BneOAValueSetComponent',--oraCLE标准代码

20003,--参数应用ID

'SGQ_ORGANIZATION',--参数的代码名称,重要

-1,

SYSDATE,

-1,

-1,

SYSDATE

);

1 row inserted

SQL> commit;

Commit complete

18.4 向组件语言表插入记录

SQL> 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

'SGQ_ORGANIZATION',--对应BNE_COMPONENTS_B.COMPONENT_CODE

'ZHS',

'ZHS',

'机构组织',

-1,

SYSDATE,

-1,

-1,

SYSDATE

);

1 row inserted

SQL> commit;

Commit complete

18.5 定义功能

路径:应用开发员-->功能,,

功能名称如下:SQL_WEBADI_PARAMETER

类型为:SSWA
servlet函数

参数:bne:page=BneParameter

HTML调用:BneApplicationService









18.6 加入菜单

应用开发员-->菜单,查找 DESKTOP INTEGRATION MENU 添加



18.7 定义参数

路径:Desktop Integrator--> SGQ_WEBADI_PARAMETER



18.8 选择Web应用产品桌面集成品,去掉Restrict to this application,下一步



18.9 下一界面



18.10 点击查找,使用Oracle系统的一个原有参数(比如COMP_AVG_JNL_FLAG)来创建客户应用的参数及属性。



18.11 点击右上角的复制 按钮



注意:Application 必须是当前系统应用的名称

code 必须与bne_components_b中的param_list_code一致。

保存退出。

18.12 再次进入 路径:Desktop Integrator--> SGQ_WEBADI_PARAMETER,进入当前系统客户化应用,去掉Restrict to the application



18.13 查找,输入SGQ_ORGANIZATION,查找后选择







18.14 修改Table Columns属性

SELECT T.VAL_OBJ_NAME,

T.VAL_ID_COL,

T.VAL_MEAN_COL,

T.VAL_DESC_COL,

T.INTERFACE_COL_NAME

FROM BNE_INTERFACE_COLS_B T

WHERE T.VAL_COMPONENT_CODE = 'SGQ_ORGANIZATION';



在VALUE中输入各个列名,用“,”分隔,注意这里的字段名必须是BNE_INTERFACE_COLS_B.VAL_OBJ_NAME,也就是ORG_ORGANIZATION_DEFINITIONS表的字段之一

并且出现在BNE_INTERFACE_COLS_B中的VAL_ID_COL,VAL_MEAN_COL或者VAL_DESC_COL中,否则不会显示。

18.15 修改TABLE_COLUMN_ALIASN属性



注意:这一步很重要,必须与18.14 table column的顺序相同,名称必须与以下相同 ,即PACKAGE的参数相同,否则不会返回EXCEL

SELECT BIC.INTERFACE_COL_NAME, BIC.VAL_OBJ_NAME, BIC.*

FROM BNE_INTERFACE_COLS_B BIC,

BNE_INTERFACES_VL INTF,

BNE_INTEGRATORS_VL INTG

WHERE BIC.INTERFACE_CODE = INTF.INTERFACE_CODE

AND INTF.INTEGRATOR_CODE = INTG.INTEGRATOR_CODE

AND BIC.INTERFACE_COL_TYPE = 1

AND INTG.USER_NAME = 'SGQ_WEBADI_DEMO';

18.16 修改table-select-column



注意:VALUE代表返回的字段,该字段必须与bne_interface_cols_b.interface_col_name保持完全一致。并且必须存在于bne_interface_col_b.val_obj_name所在的表的列中,或者使用在table column alias的参数属性中被指定假名。否则值列表挑选后,不会自动更新EXCEL表格中对应的项目。

18.17 修改table header



VALUE:机构组织ID(LOV中第一个字段题头的值)

18.18 修改 window-width



18.19 重启应用,因为LOV调用的是SERVLET类,必须重新加载方可生效,如果只修改了属性值,则不需要重启应用,只有UPDATE基表BNE_INTERFACE_COLS_B中的值的时候,才需要重启应用。

本示例环境为:(Oracle Applications 12.1.2 RDBMS 11.1.0.7.0)

系统应用名称为:XXT客户化应用

简称为:XXT

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: