2019年4月18日 星期四

Oracle EBS: 客製SO上預設之warehouse (Defaulting rules)

在OM模組的設定中, 有defaulting rules可以使用, 除了warehouse之外, 還有很多欄位可以設定.

路徑:
Setup
  -> Rules
    -> Defaulting


在Entity Order Line中, 有Warehouse這項(圖1).

圖1.


點擊右下的 [Defaulting Rules...] 按鈕, 進入設定(圖2), 系統中有一組預設的, 把原有的停用, 另新增一組.

圖2.


在Default Sourcing Rules中, [Source Type] 指定 PL/SQL.API, 移至 [Default Source/Value] 欄, 出現設定畫面(圖3), 指定客製的Package Name和Function Name就大功告成了.

圖3.


function所使用的parameter及其中取值的方式有點特別, 可參考以下:


   FUNCTION get_special_wh_id (p_database_object_name   IN VARCHAR2,

                               p_attribute_code         IN VARCHAR2)

      RETURN NUMBER

   IS

      v_warehouse_id    NUMBER;

      v_org_id          NUMBER;

      v_line_type_id    NUMBER;

      v_price_list_id   NUMBER;

      v_item_id         NUMBER;

      v_cust_id         NUMBER;

   BEGIN

      v_org_id := ont_line_def_hdlr.g_record.org_id;

      v_line_type_id := ont_line_def_hdlr.g_record.line_type_id;

      v_price_list_id := ont_line_def_hdlr.g_record.price_list_id;

      v_item_id := ont_line_def_hdlr.g_record.inventory_item_id;

      v_cust_id := ont_line_def_hdlr.g_record.sold_to_org_id;

      v_warehouse_id :=  get_df_wh_id (v_org_id,

                           v_price_list_id,

                           v_item_id,

                           v_cust_id,

                           v_line_type_id);

      RETURN (v_warehouse_id);

   END;


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。