2008年9月23日 星期二

Oracle Forms Trigger 執行順序

出處:https://metalink.oracle.com/

Action                 Trigger Firing Order                    Level
------                 --------------------                    -----
Runform                 1.  Pre-Logon                          Form
                        2.  On-Logon                           Form
                        3.  Post-Logon                         Form
                        4.  Pre-Form                           Form
                        5.  When-Create-Record                 Block
                        6.  Pre-Block                          Block
                        7.  Pre-Record                         Block
                        8.  Pre-Text-Item                      Item
                        9.  When-New-Form-Instance             Form
                        10. When-New-Block-Instance            Block
                        11. When-New-Record-Instance           Block
                        12. When-New-Item-Instance             Item

***********
Enter Query             1.  Post-Text-Item                     Item
                        2.  Post-Record                        Block
                        3.  When-Clear-Block                   Block
                        4.  When-New-Record-Instance           Block
                        5.  When-New-Item-Instance             Item

Note: If you define the Key-ENTQRY trigger, this is the only trigger
      which fires in an Enter Query situation.

*****************
Execute Query
After Enter Query       1.  Pre-Query                          Block
                        2.  Pre-Select                         Block
                        3.  On-Select                          Block
                        4.  When-Clear-Block                   Block
                        5.  Post-Select                        Block
                        6.  On-Fetch                           Block
                        7.  On-Close                           Form
                        8.  When-Clear-Block                   Block

Note: If you define the Key-EXEQRY trigger, this is the only trigger
      which fires in an Execute Query situation.

*************
Execute Query
Without Enter
Query                   1.  Post-Text-Item                     Block
                        2.  Pre-Query                          Block
                        3.  Pre-Select                         Block
                        4.  On-Select                          Block
                        5.  Post-Select                        Block
                        6.  On-Fetch                           Block
                        7.  On-Close                           Form
                        8.  When_Create_Record                 Block
                        9.  Pre-Record                         Block
                        10. Pre-Text-Item                      Item
                        11. When-New-Record-Instance           Block
                        12. When-New-Item-Instance             Item

****
Exit                    1.  Post-Text-Item                     Item
                        2.  Post-Record                        Block
                        3.  Post-Block                         Block
                        4.  Post-Form                          Form
                        5.  On-Rollback                        Form
                        6.  Pre-Logout                         Form
                        7.  On-Logout                          Form
                        8.  Post-Logout                        Form

**************
Next Field and
Previous field          1.  When-New-Item-Instance             Item

***************
Next Record and
Previous Record         1.  When-New-Record-Instance           Block
                        2.  When-New-Item-Instance             Item

**************
Next Block and
Previous Block          1.  Post-Text-Item                     Item
                        2.  Post-Record                        Block
                        3.  Post-Block                         Block
                        4.  When-Create-Record                 Block
                        5.  Pre-Block                          Block
                        6.  Pre-Record                         Block
                        7.  Pre-Text-Item                      Block
                        8.  When-New-Block-Instance            Block
                        9.  When-New-Record-Instance           Block
                        10. When-New-Item-Instance             Form

*******************
Records Are Queried     1.  Post-Query                         Block
                        2.  Post-Change                        Block
                        3.  Post-Change                        Item
                        4.  Post-Change                        Block
                        5.  Post-Change                        Block
                        Go back to Post-Query

NOTE: This cycle is repeated for each record retrieved.

**********************
No Records Are Queried  1.  When-New-Record-Instance           Block
                        2.  When-New-Item-Instance             Item

NOTE: To observe this Trigger Firing Order:
        a.  Enter a query.
        b.  Enter a nonexistent record.
        c.  Execute the query.

      The two triggers listed above, the Enter Query triggers, and
      the Execute Query triggers fire.

*************
Create Record           1.  Post-Change                         Block
                        2.  When-Validate-Item                  Block
                        3.  Post-Text-Item                      Block
                        4.  When-Validate-Record                Block
                        5.  Post-Record                         Block
                        6.  Post-Block                          Block
                        7.  On-Savepoint                        Form
                        8.  Pre-Commit                          Form
                        9.  Pre-Insert                          Block
                        10. On-Insert                           Form
                        11. Post-Insert                         Block
                        12. Post-Forms-Commit                   Form
                        13. On-Commit                           Form
                        14. Post-Database-Commit                Form
                        15. Pre-Block                           Block
                        16. Pre-Record                          Block
                        17. Pre-Text-Item                       Block
                        18. When-New-Item-Instance              Form

*************
Update Record           1.  When-Database-Record                Block
                        2.  Post-Change                         Block
                        3.  When-Validate-Item                  Block
                        4.  Post-Text-Item                      Block
                        5.  When-Validate-Record                Block
                        6.  Post-Record                         Block
                        7.  Post-Block                          Block
                        8.  On-Savepoint                        Form
                        9.  Pre-Commit                          Form
                        10. Pre-Update                          Block
                        11. On-Update                           Block
                        12. Post-Update                         Block
                        13. Post-Forms-Commit                   Form
                        14. On-Commit                           Form

                        Here the transaction is complete and one record added.

                        15. Post-Database-Commit                Form
                        16. Pre-Text-Item                       Block
                        17. When-New-Item-Instance              Form

NOTE: To observe this Trigger Firing Order:

        a.  Execute a query.
        b.  Change a value.
        c.  Choose Action->Save from the menu.
        d.  Record the triggers from that point.

*************
Delete Record           1.  On-Lock                             Block
                        2.  When-Remove-Record                  Block
                        3.  Post-Change                         Block
                        4.  Post-Change                         Block
                        5.  Post-Change                         Block
                        6.  Post-Change                         Block
                        7.  Post-Change                         Block
                        8.  Post-Change                         Block
                        9.  Post-Change                         Item
                        10. Post-Query                          Block
                        11. Post-Text-Item                      Block
                        12. Post-Record                         Block
                        13. Pre-Record                          Block
                        14. Pre-Text-Item                       Block
                        15. When-New-Record-Instance            Block
                        16. When-New-Item-Instance              Form

INV - 料號轉檔(新增/更新)

利用 mtl_system_items_interface 達到新增或更新料號目的。
1.新增
a. 將需新增的品號匯入mtl_system_items_interface:
insert into mtl_system_items_interface
(Organization_id, Segment1, Description, process_flag, Transaction_type...)
values (x_Org_id, '00-00-001', '品號說明', 1, 'CREATE'....
b.執行INV/Import/Import Items

image

c.查看log及mtl_interface_errors看看有無錯誤或警告。

2.更新
a. 將需更新的品號欄位匯入mtl_system_items_interface:
insert into mtl_system_items_interface
(Organization_id, Segment1, Description, process_flag, Transaction_type...)
values (x_Org_id, '00-00-001', '品號說明', 1, 'UPDATE'....

b.執行INV/Import/Import Items

image

c.查看log及mtl_interface_errors看看有無錯誤或警告。

2008年9月19日 星期五

INV - 料品基本建檔 (Items)

料品建檔

clip_image002

(B) 開啟Open

clip_image004

說明:利用料品樣版或現有料品的屬性複製新料品資料,可促進效率。

Main(基本設定) Tab

說明:

a. Item:輸入料號。

b. Description:輸入敘述。

c. Primary:Item的庫存計量單位,一旦存檔不允許修改。

d. User Item Type:先不輸入,可套用料品樣版。

e. Item Status:料號狀態,Active表示使用中,Inactive表示失效中,預設為Active。

clip_image006

(M) 工具Tools > 複製來源Copy From

clip_image008

說明:

1.樣版Template:參照料品樣板的屬性。

clip_image010

依料號屬性選擇系統或自訂料建屬性樣板,完成Done。

2.料號Item (Copy From):參照現有其它料號的屬性。

在Item欄位中輸入被複製的料號,按Done。

clip_image012

以上畫面出現後,確認User Item Type是否出現預期內容,若沒問題,按 clip_image014 (存檔),即完成父階料品資料建檔。

以下為各個Tab重要欄位說明

clip_image016

Inventory(庫存設定) Tab

說明:

a. 存貨料號Inventory Item:是否為倉庫料號,若打勾,則”Stockable”與”Tracsactable”皆會自動打勾。

b. 可庫存Stockable:是否可以儲存。

c. 可異動Transactable:是否可以做庫存異動,WIP、PO、OM及INV模組皆受其控制。

d. 可預留Reservable:是否可做庫存保留。

e. 批號控制Lot Control:”No Control”表示不控管;”Full Control”表示入出庫時必須指定。

f. 批號到期控制Lot Expiration(Shelf Life) Control:有效期控制。”No Control”表示不控管;”Shelf Life days”表示受下方之”Shelf Life Days”控制,若入庫天數超過指定天數,會有一個Warming;”User-Defined”表示在入庫時指定。

clip_image018

Bills of Material(BOM屬性設定) Tab

說明:

a. BOM Allowed:若此料號要建BOM必須打勾,不論其為Assembly或Component。

b. BOM Item Type:BOM表中的料項型態,此欄僅可在Master Item中控制。

Standard表示為採購件、半成品與成品。

Model表示在Sales Order中以此Model Item接單,可列出下階的Option Class及Options。

Option Class表示在Sales Order中,登打特定的Model Item,可列出下階的Option Class,一旦選擇此特定的Option Class Item後,可列出下階的Option Items。

Planning表示此Item的BOM包括料號及計畫百分比,一個Planning Item可代表產品系列或需求通路,它的BOM表有助於MPS/MRP的執行。Component的計畫百分比之和可大於100%,OM模組不允許針對Planning BOM作接單。

Product Family表示為Planning時可對產品系列計畫有集合階層的運作。

c. Effectivity Control:固定選”Date”。

clip_image020

Costing(成本屬性設定) Tab

說明:

a. 若此料號會計算成本則3個選項(Costing Enabled、Inventory Asset Value及Include In Rollup)都要打勾。如:委外料號及勞務收入料號不算成本,故委外料號及勞務收入料號這3個選項均不打勾。

clip_image022

Purchasing(採購屬性設定) Tab

說明:

a. 採購Purchased:若此料號為採購專案則打勾(同時右方之可採購Purchasable也會打勾)。前者表示本質上可否採購;後者表示目前可否採購。

b. 使用核准的供應商Use Approved Supplier:是否使用合格供應商。

c. 允許摘要更新Allow Description Update:是否允許採購檔中的料號品規欄修改,僅影響該份採購檔,不會調整回Item Description中。

d. 委外加工料號Outside Processing Item:若料號為委外料號,則這裡要打勾,並在Unit Type選擇”Assembly”,表示論件計酬。

clip_image024

Receiving(收貨屬性設定) Tab

說明:

a. 收貨程式Receipt Routing:有四種選擇方式

標準Standard:先收料,後入庫,簡稱兩段式。

驗收Inspection:先收料,再檢驗,後入庫,簡稱三段式。

直接Direct:直接入庫,簡稱一段式。

“空白”:表示不指定,而以上階Receiving Option設定為准。

收貨程式Receipt Routing在供應商基本資料設定即可,此處可不用設定。

clip_image026

General Planning(一般計畫屬性) Tab

說明:

a. 存貨計畫方式Inventory Planning Method:庫存存貨補充計畫方式

未計畫Not Planned表示不採用,一般採用MPS/MRP Planning的Item在此欄會選此選項。

上下限Min-Max表示採用最低最高存量計畫。

再訂購點Reorder Point表示採用再訂購點計畫,不建議採用。

b. 供需規劃員Planner:若需要登打此欄必須在Org Item中選定。

c. 自製或外購Make or Buy:此料號是生產料(Make)或採購料(Buy),僅用於Planner Workbench產生Planned Order時依此設定決定建議產生工單或請購單。

clip_image028

MPS/MRP Planning(MPS/MRP計畫屬性) Tab

說明:

a. 計畫方式Planning Method:通常成品及半成品採用MPS Planning;採購原料採用MRP Planning。

b. 耗損率Shrinkage Rate:輸入不良率。

clip_image030

Lead Times(前置時間屬性設定) Tab

說明:

a. Preprocessing:下採購單或開工單的前置天數,為Org Item控制。

b. Processing:採購單或製造的所需天數,為Org Item控制。

c. Postprocessing:採購收料到存倉所需天數,製造Item無此定義。為Org Item控制。

clip_image032

Work in Process(在製品屬性設定) Tab

說明:

a. 建立於在製品Build in WIP:若可開工單生產,請打勾。

b. 供給型態Supply Type(供料方式)

推移Push:發料生產。

作業拉引Operation Pull:過站回溯扣料帳。

拉引式組裝料號Assembly Pull:完工回溯扣料帳。

c. 供給倉庫Supply Subinventory:發料倉,須在Org level設定。

clip_image034

Order Management(訂單管理屬性設定) Tab

說明:

a. 客戶訂購Customer Ordered:是否為客戶訂單料號,若打勾,則右方之”啟用客戶訂單Customer Orders Enabled” 也會打勾。前者是本質上可否對外銷售,後者是目前可否對外銷售。

b. 可出貨Shippable:可否出貨。

c. 內部訂購Internal Ordered:是否為關係人交易料號,若打勾,則右方之” 啟用內部訂單Internal Orders Enabled” 也會打勾。前者是本質上可否對內銷售,後者是目前可否對內銷售。

d. OE 可異動OE Transactable:訂單資料是否可產生Item的Demand以及是否揀貨/出貨異動拋轉至庫存模組。

e. 接單組裝Assemble To Order:可否接單組裝,原本用在ATO Model Item需求功能,新功能Back To Back 訂單流程可業務訂單轉成請購單/採購單,可利用此欄位及BOM Allowed及Build in WIP欄位設定來控制。

f. 可退回Returnable:可否退貨。

基本上只要是成品料號,上述a, b, c, d, f之5項都要打勾。

clip_image036

Invoice(開立商業發票屬性設定) Tab

說明:

a. Invoiceable Item:是否為帳單料號,若打勾,則下方之”Invoice Enabled”也會打勾。前者本質上是否可Charge客戶,後者目前是否可Charge客戶。

設定完成後按clip_image038,產生父階料品基本資料(Master Item),若未按存檔無法執行週邊性資料如料品分類 (Item Category)、料品目錄 (Item Catalog)等資料建立動作。

clip_image040

(M) 工具Tools > 分類Categories

說明:

a. Purchasing Category Set:採購專用的分類集,包括無料號的費用性請採購亦可透過採購分類作處理。若採購分類可與全公司共用分類整合,則不必另訂採購專用之分類及分類集。

b. Inventory Category Set:全公司共用的分類集,依產品類別選訂。

c. Costing Category Set:成本專用的分類集,Cost Update時可依此作過濾執行的條件,依料號類別選訂,例如製造業區分成原物料、成品、半成品。其它產業依特性區分成本分類,例如工程、機械、軟體、維護。

d. 控制層級Control Level:,若為Master應在Master Item維護料品分類,若為Org應在Org Item維護料品分類。

分類選項可按空白欄位右方之 clip_image042 帶出選擇視窗(如下頁)

選取 料號分類Item Category後按 確定。

clip_image044

(M) 工具Tools > 組織指定Organization Assignment

在Org對應的已指定Assigned核取方塊打勾後按存檔。

按『組織屬性』,準備設定Org Item特定資料欄位。

針對 控制層級Control Level為 組織Org之 分類集Category可在Org Item中維護料品分類。

2008年9月17日 星期三

INV - 多組織架構

image

多組織 (Multi-Org)

Multi-org通常用在單一執行環境中,以設定方式啟用多個獨立企業單位。

一個企業集團在單一執行環境中可利用Multi-org建構不同會計帳本 (Set of Book),不同公司法人 (Legal Entity) ,不同營運中心 (Operating Unit) 。

有Multi-org,產品可由一個OU/LE接單,而由另外的OU/LE出貨,且系統會處理關係人(Intercompany)交易資料及會計分錄。

企業集團 (Business Group)

企業集團 (Business Group)可管轄多家公司法人 (Legal Entity) 。

企業集團影響到Employee,Location,Organization相關資料的建置。不同的企業集團區隔相關的Employee,Location,Organization資料。

法人 (Legal Entity)

一家法人 (Legal Entity)對應一套會計帳本 (Set of Book)。

會計帳本 (Set of Book)本身並非組織 (Organization),而是與法人有對應關係。

一家法人可管轄多個營運中心 (Operating Unit)。

營運中心 (Operating Unit)

營運中心 (Operating Unit) 階層的運作執行包括:業務訂單(OM),採購訂單(PO),應收帳款(AR),應付帳款(AP) ,項目 (Project)等模組功能。

Customer Site與Supplier Site屬於營運中心階層維護的重要基本資料。

虛擬建料父階組織 (Item Master Organization)

任何庫存組織皆必須有建料父階組織。建料父階組織不會有庫存異動,不會有庫存期間開關帳。

利用兩階式(父階集中建置料品基本資料,子階個別授權使用料品基本資料。

庫存組織 (Inventory Organization)

庫存組織(Inventory Organization)有獨立的庫存異動及存貨管理及庫存期間開關帳。

庫存組織階層運作執行的模組功能包括:業務訂單的出貨(Shipping),採購訂單的收料(Receiving),庫存(Inventory),成本(Cost),用料表/工程研發(BOM/ENG),生產管理(WIP) ,計畫(Planning)等。

一個庫存組織下轄多個倉庫(Subinventory)。

倉庫 (Subinventory)

倉庫必須定義其用途規範,使得不同的作業流程使用特定的倉庫作進出管理。

儲位 (Locator)

選擇性建構階層,可以By倉庫決定是否啟動儲位控制,或由進出倉庫的料品個別決定是否啟動儲位控制。

儲位可用來表示實際的存放點,亦可用來表示虛擬的控制區分。

2008年9月11日 星期四

WIP - APP-FND-01048: Use of this combination restricted by WHERE clause

wip工單一個典型的小bug。存檔時遇到

APP-FND-01048: Use of this combination restricted by WHERE clause '
( (DISABLE_DATE > SYSDATE or DISABLE_DATE IS NULL)
AND NVL(SUBINVENTORY_CODE,'Z') = NVL('XXX','Z') )

image

後來仔細一看才知道倉庫儲位關係已被改過,routing完工倉沒被重新設定,

所以帶到工單的倉庫儲位造成form上的檢核sql error。修正一下倉庫儲位就可以存檔了。

2008年9月8日 星期一

INV - 安全庫存設置兩種方法

安全庫存設置兩種方法:

1. 動態安全庫存

Item選擇 MRP PLANNED%

clip_image002

設置Bucket Days和Percent

計算方式:系統依所設定安全庫存天數,累積這個天數的平均需求量,再乘安全庫存百分比即安當天的安全庫存。

2. 靜態安全庫存

Item選擇Non-MRP Planned%

clip_image004

然後在INV > Planning > Safety Stocks中設置相應安全庫存量

clip_image006