WebADI_案例实施02_开发一个基于R12.1.3的复杂WebADI Desktop

简介: http://www.docin.com/p-922235111.html     --Created by Tony Liu.     CREATE TABLE APPS.BXJ_WEBADI_EMPLOYEES ( EMPLOYEE_ID NUMBER, E...

http://www.docin.com/p-922235111.html

 

 

--Created by Tony Liu.

 

 

CREATE TABLE APPS.BXJ_WEBADI_EMPLOYEES 
(  
  EMPLOYEE_ID NUMBER, 
  EMPLOYEE_NUM VARCHAR2(100), 
  EMPLOYEE_NAME VARCHAR2(100), 
  EMPLOYEE_COUNTRY VARCHAR2(100), 
  EMPLOYEE_ADDRESS VARCHAR2(500), 
  EMPLOYEE_TYPE VARCHAR2(10), 
  DESCRIPTION VARCHAR2(500), 
  MANAGER_ID NUMBER, 
  DEPARTMENT_ID NUMBER, 
  SALARY NUMBER, 
  HIRE_DATE DATE, 
  JOB_ID NUMBER, 
  LAST_UPDATE_DATE DATE NOT NULL ENABLE, 
  LAST_UPDATED_BY NUMBER(15,0) NOT NULL ENABLE, 
  LAST_UPDATE_LOGIN NUMBER(15,0), 
  CREATED_BY NUMBER(15,0) NOT NULL ENABLE, 
  CREATION_DATE DATE NOT NULL ENABLE
);

 

 

CREATE OR REPLACE PACKAGE bxj_webadi_emp_pkg AS
  PROCEDURE create_employee(p_employee_id       number,
                            p_employee_num      varchar2(100),
                            p_employee_name     varchar2(100),
                            p_employee_country  varchar2(100),
                            p_employee_address  varchar2(500),
                            p_employee_type     varchar2(100),
                            p_description       varchar2(500),
                            p_manager_id        number,
                            p_department_id     number,
                            p_salary            number,
                            p_hire_date         date,
                            p_job_id            number,
                            p_last_update_date  date,
                            p_last_updated_by   number,
                            p_last_update_login number,
                            p_created_by        number,
                            p_creation_date     date);
END bxj_webadi_emp_pkg;

 

 

CREATE OR REPLACE PACKAGE BODY bxj_webadi_emp_pkg AS
  PROCEDURE create_employee(p_employee_id       number,
                            p_employee_num      varchar2(100),
                            p_employee_name     varchar2(100),
                            p_employee_country  varchar2(100),
                            p_employee_address  varchar2(500),
                            p_employee_type     varchar2(100),
                            p_description       varchar2(500),
                            p_manager_id        number,
                            p_department_id     number,
                            p_salary            number,
                            p_hire_date         date,
                            p_job_id            number,
                            p_last_update_date  date,
                            p_last_updated_by   number,
                            p_last_update_login number,
                            p_created_by        number,
                            p_creation_date     date) IS
  BEGIN
    INSERT INTO apps.bxj_webadi_employees
    VALUES
      (p_employee_id,
       p_employee_num,
       p_employee_name,
       p_employee_country,
       p_employee_address,
       p_employee_type,
       p_description,
       p_manager_id,
       p_department_id,
       p_salary,
       p_hire_date,
       p_job_id,
       p_last_update_date,
       p_last_updated_by,
       p_last_update_login,
       p_created_by,
       p_creation_date);
    COMMIT;
  EXCEPTION
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE(errcode || errmsg);
  END;
END bxj_webadi_emp_pkg;

 

 

 

 

 

这两天做了一个R12 WEBADI的开发任务,任务描述如下:

 

1.  根据用户的data file, 导入数据至XLA, 生成Journals, 然后再调用标准请求,生成GL Journals

 

2.  建立staging table, 用来存放WEBADI导入的数据, 表名为c_xla_je_load_staging

 

3.  调用API 来生成XLA Journals

 

      xla_journal_entries_pub_pkg.create_journal_entry_header    生成Journal header

 

      xla_journal_entries_pub_pkg.create_journal_entry_line   生成Journal lines

 

4.  调用标准请求生成GL Journals

 

5.  建立Package :c_xla_je_load_pkg, 完成数据校验/数据导入到XLA/调用标准请求

 

6.  注册请求CUST XLA Journal Entry Load,调用上述package.

 

7.  在WEBADI 中调用上述请求.

 

如果上述工作在11i里做的话,估计得把我做吐血,因为11i的WEBADI还不是很完备,很多功能ORACLE没有提供开放的接口,只能用insert table来做。但是现在在R12中,做起来就简单多了。

 

R12 WEBADI比11i的强大了许多,反映在如下几方面:

1. 多了一个新的职责: Desktop integration manager, 在此职责下可完成所有的WEBADI的开发工作。

2. 现在可以在Excel 模板中定义Lov值验证

3. 增加了Interface 的定义,可以灵活定义Layout的数据源。

4. Layout中的定义多了一些选项,使得Layout的定义更加完善。

5. 增加了uploader的定义,可以灵活定义导入参数

6. 增加了importer的定义,可以灵活定义数据导入后的工作。

7. FNDLOAD 更加完善,可通过bneintegrator.lct 导出大多数的WEBADI定义。

 

所以这个Task 还真没花多少时间,就完成了。

 

---------------------------------以下是WEBADI 定义-----------------------------------

Navigater: Desktop Integration Manager/Manager Integrators

 

1. Integrator

 

   Name: CUST XLA Journal Entry Load

 

   Code: C_XLA_JE_LOAD

 

   Application:  Custom Application

 

   Enabled: Y

 

   Display in Create Document Page: Y

 

   Security ruls:  function: C_XLA_JE_LOAD

 

2. Interfaces

 

   Name: C_XLA_JE_LOAD_STAGING

 

   Type: Table

 

   Entity name: C_XLA_JE_LOAD_STAGING (实际表名,注意,需在数据库中注册此表,否则找不到)

 

   无任何default value and LOV validation

 

3. Contents

 

   此步根据需要设置,如果希望用户导出的是空的模板文件,则无需设置,如果希望用户在导出的同时把数据文件加进去,则需设置,我这里设了一下:

 

   Name: C_XLA_JE_LOAD_CONTENT

 

   Type: TEXT

 

   Reporting: N

 

   做了这个设置后,后面还要做Mapping的设置,设置数据文件列与Interface列的对应关系

 

4. Uploader

 

   Select " Copy from Template "

 

   Uplaoder name: do not change

 

   Title: do not change

 

   Header: do not change

 

   修改bne: import (用来启动后面的importer 的运行)的定义

 

   Description: Automatically Submit CUST XLA Journal Import

 

   Prompt left: Automatically Submit CUST XLA Journal Import

 

   Default value : Y

 

   Enabled: N (必选且用户无法修改,因为如用户不选的话,后面的Request无法调用,需要人为手工调用)

 

5. Importer

 

   Importer type: Asynchronous concurrent request (导步请求,WEBADI无需等待请求执行结果)

 

   Importer name: C_XLA_JE_LOAD_IMPORTER

 

   Concurrent Program Request Submission: Program: CUST XLA Journal Entry Load (注意: 使用此WEBADI的职责需要能够调用此请求)

 

   Success Message Definition: CUST XLA Journal Import Request ID $import$.requestid

 

保存生成Integrator

 

----------------以下是Layout (必须)  及 Mapping(不必须) 的定义-------------------

 

最后需要定义Layout 及 Mapping (如无Contents定义,无需定义Mapping)

 

1. Layout

 

   Layout name: C_XLA_JE_LOAD_LAYOUT

 

   Set all columns to LINES

 

   Protect sheet: Y (Excel模板是否保护)

 

   Style. sheet: Default

 

   Apply filter: Y

 

   Data entry rows: 2000(此项是很大的一个改进,可以定义模板的初始行数,不再受10行的困扰了)

 

   定义字段顺序(此项定义本人觉得设计的很垃圾,直接用sequence number就行了,非要搞两个按钮去点,麻烦死了)

 

   定义显示宽度(此项也是很好的一个改进,增加了用户体验)

 

Mapping 定义略。

 

FNDLOAD  DOWNLOAD:

 

FNDLOAD apps/apps 0 Y DOWNLOAD bneintegrator.lct C_XLA_JE_LOAD.ldt

BNE_INTEGRATORS INTEGRATOR_ASN=C_APPS

INTEGRATOR_CODE=C_XLA_JE_LOAD_XINTG

 

 

http://blog.itpub.net/10359218/viewspace-682043/

http://blog.itpub.net/10359218/viewspace-702819/

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
6月前
|
监控 安全 开发者
Pascal 语言在公司监控软件中的价值
在数字化企业环境中,有效的监控软件对安全、效率和合规性至关重要。尽管帕斯卡语言(Pascal)不是最流行的编程语言,但其严谨的语法结构和强类型特性使其在开发可靠的监控软件方面独具优势。通过示例代码展示了帕斯卡语言在网络连接监测和内部设备状态检查中的应用,其结构化编程风格有助于提高代码可读性和可维护性,同时编译时错误检查机制有助于早期发现问题,减少调试时间,是开发高质量监控软件的有力工具。
46 2
|
程序员
祖传shi山代码重构实战(01)-Extract Class提炼类
某个类做了应该由两个类做的事。 建立一个新类,将相关的字段和函数从旧类移到新类。
169 0
|
算法 定位技术 C++
TE二次开发:简说LOD
skyline二次开发:简说LOD
136 0
|
存储 监控 Oracle
外行假装内行,我也来谈谈SAP BAPI和BADI
外行假装内行,我也来谈谈SAP BAPI和BADI
零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术
原文:零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术 本章所介绍的是便利且快速的内建工具Clone ? 本章所介绍的是便利且快速的内建工具Clone ? ? 为什麽会说像是影分身之术呢? ? 请参照火影忍者(NARUTO): 《分身术》会分身术者,能以一身分出几身,几十身,乃至千百身。
1237 0
零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果
原文:零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果 本章将教你如何运用笔刷与简单线条,只要5分钟,就能做出设计感效果 ...
1214 0
零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷、钢笔、渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要教你如何建立自己的笔刷。
1473 0
|
架构师 程序员
从Code Review 谈如何做技术(zz)酷 壳
这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。
1773 0

热门文章

最新文章