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