天天看點

WebADI_案例實施02_開發一個基于R12.1.3的複雜WebADI Desktop

--Created by Tony Liu.

這兩天做了一個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