Oracle EBS Inventory Item 導入(庫存物料導入)


注:本文為原創,作為學習交流使用,轉載請標明作者及出處,作者保留追究法律責任的權力。
Lumen Su

lzsu1989#gmail.com

 

庫存物料(Inventory Item)導入

 

物料導入/導出主要的目的是在不同系統之間的數據的導入/導出,以某一種數據信息格式和某一種傳輸方式獲取數據。在不同系統間的數據導入/導出必須解決的最重要的問題是數據校驗,以滿足數據在不同系統間的可用性。根據這兩周的學習,總結一下Item導入遇到的一些問題和解決的方法。

數據導入在處理流程上大致分為三個部分:

(1)是處理數據文件,插入客戶化接口表;

(2)是處理客戶化接口表數據,插入標准接口表;

(3)是提交標准請求,導入標准表。

在導入的類型上來說,有三種情況:

(1)創建物料

(2)更新物料

(3)組織分配

 

API中主要涉及的都是客戶化和標准系統的銜接問題,所以熟悉標准系統表,接口表,客戶化表是一個非常重要的過程,在API中還會調用系統的標准導入請求,標准導入的數據必須是符合系統的數據,所以API中一個重要步驟就是驗證數據,處理數據。用一個Master Item 的導入作例子。

1.       API被調用及輸出關系

庫存Master Item 導入API的起點是客戶化接口表,終點是標准表,而客戶化接口表的數據來源可以是多種,取決於接口程序(平台)的整體架構,無論是文件還是信息流的形式,經過適當處理之后,導入客戶化接口表,並且有必有提供數據批次的唯一標識和數據行級別的唯一標識。導入程序所定義的並發程序應該在數據處理之后被調用,必要參數是數據的批次標識,並發程序應該返回數據導入處理的狀態和必要的錯誤/警告信息(如果有)。

 

2.       API偽代碼

Begin

           獲取參數;

           根據數據批次號,從客戶化接口表獲取數據;

           FOR EACH Record

                     驗證數據;

                     判斷數據創建/更新/分配標識位;

                     導入系統接口表;

           END FOR;

           提交系統導入系統標准請求;

           打印錯誤報告;

End

 

3.       Master Item 導入涉及到的主要的表/視圖及描述

Table Name

Select

Insert

Update

Delete

Description

 

 

 

 

 

 

org_organization_definitions

X

 

 

 

系統組織定義

mtl_system_items_b

X

X

X

 

系統標准物料基表

mtl_system_items_b_kfv

 

 

 

 

系統標准物料關鍵性彈性域視圖

mtl_item_revisions_b

X

X

X

 

系統標准物料修訂基表

mtl_item_categories_v

X

 

 

 

系統標准物料類別視圖

mtl_item_categories

X

X

X

 

系統標准物料類別表

mtl_system_items_interface

X

X

 

X

系統標准物料接口表

mtl_item_revisions_interface

X

X

 

X

系統標准物料修訂表

mtl_item_categories_interface

X

X

 

X

系統標准物料類別表

xxinv_item_int

X

 

X

 

客戶化接口表

mtl_interface_errors

X

X

 

 

系統標准接口錯誤表

mtl_units_of_measure_vl

X

 

 

 

系統標准物料度量單位多語言視圖

mtl_parameters

X

 

 

 

系統標准組織參數表

mtl_default_category_sets_fk_v

X

 

 

 

系統標准類別集視圖

mtl_category_sets

X

 

 

 

系統標准類別集表

mtl_categories_b_kfv

X

 

 

 

系統標准類別集視圖

mtl_categories_kfv

X

 

 

 

系統標准類別集關鍵性彈性域視圖

 

 

4.       特殊邏輯

(1)       驗證客戶化接口表數據

Item導入API是根據數據的批次號,從客戶化接口表獲取相應數據,驗證過程主要依據大致和標准物料的標准是一致的,雖說在提交標准請求時,系統也會驗證數據,但是標准請求只有輸入輸出,過程不可見,所以在客戶化接口表這個階段驗證可以保證數據錯誤的可控制性;另一方面,系統請求一般請款比較慢,特別是計划的周期請求,多個批次也容易混淆,所以在客戶化表中驗證,如果不符合要求,直接返回,省去標准請求所耗費的資源。

主要驗證有:非空驗證,組織驗證,單位驗證,修訂號驗證,類別驗證等,涉及到的表或視圖之前列過了。

 

(2)       是否是新物料(創建物料/更新物料/組織分配)

這里的判斷決定了導入程序需要往標准接口表里插入幾次,主要原因是,如果是一個新物料,系統中不存在,則需要往這個物料所對應的組織的主組織中也插入一條數據,即標准接口表里有兩條組織不一樣的相同物料信息。

  1. 創建物料:系統標准物料表中不存在,且標准接口表中不存在(這里需要判斷標准接口表這個中間表的原因是,如果同一批數據是同一個物料不同的組織,而且是新物料,如果不判斷系統接口表,就會有多個主組織數據存在於系統接口表中,提交標准請求時,就會出現重復記錄的錯誤
  2. 更新物料:同一個物料,同一個組織存在
  3. 組織分配:統一個物料,主組織物料存在,子組織物料不存在

 

(3)       標准請求

物料導入請求:Item Import(包括item和revision信息)

類別分配請求:Item Category Assignment Open Interface(category信息)

 

(4)       Revision處理

客戶化接口表的記錄有revision信息存在,則要處理revision。新/舊/分配 的判斷和(2)中基本一致。在做這一部分的時候,發現了一個問題,Revision在標准系統中是字符串類型的,所以在比較舊的修訂號和新的修訂號的時候,特別要注意數字的位數問題,例如 :‘9’ 這個字符串是比 ’10’ 這個字符串“大”,但 ’09’ 這個字符串比 ’10’ 這個字符串“小”。驗證通過之后直接往標准接口表里導入,修訂號取最“大”的一個。

Revision的標准請求合並在物料信息導入的標准請求(Item Import)。

 

(5)       Category處理

Category處理存的標准請求時單獨的,叫Item Category Assignment Open Interface,這里的特殊邏輯總結為如下幾種:

  1. 新物料,無category信息:分配當前category set 下得默認category
  2. 新物料,有category信息:分配這個category 給主組織物料和當前子組織物料
  3. 更新,無category信息:不處理
  4. 更新,有category信息:更新當前組織category信息
  5. 組織分配,有category信息,分配這個category信息給這個子組織
  6. 組織分配,無category信息,不處理

在處理Category標准請求的時候,與物料信息不同的是,這個標准請求沒有“1”或者“2”的標識參數標識創建或者更新操作模式,提交標准請求的順序是先提交物料信息請求(item import),再提交類別請求(category assignment),多次測試這個標准請求和物料信息的標准請求后發現,在物料信息的標准請求完成之后,已經有這category信息在標准類別表視圖(mtl_item_categories_v)中了,category信息是默認的category所以此時提交category assignment的標准請求,只能去update(以上a—f的6中情況都是這樣處理),而update操作必須有”old_category”這個信息,所以在update之前需要獲得這個物料老的category;如果是新物料,則更新default category。(default category就是當前category set 下的default category)

 

(6)       組織分配屬性沖突

導入程序常見的錯誤是,在物料組織分配的時候,有可能出現“master child conflict”。在標准Item的屬性控制中,有“master level”和“org level”兩種,如果某一屬性設置成了“master level”,則在導入時,要么不導入這個屬性信息,要么導入的必須和主組織的屬性信息一致,否則就會報這個錯誤(系統標准功能)。導入程序API中有必要判斷,在組織分配的情況下,從客戶化接口表到標准接口表導入的時候,並且把一些客戶化接口表里面沒有,但是屬性控制中為“master level”的屬性值,賦為主組織的屬性。

 

 

注:本文為原創,作為學習交流使用,轉載請標明作者及出處,作者保留追究法律責任的權力。
Lumen Su

lzsu1989#gmail.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM