DBA Data[Home] [Help]

TRIGGER: APPS.FEM_LEDGERS_ATTR_TI1

Source

Description
FEM_LEDGERS_ATTR_TI1
after insert on FEM_LEDGERS_ATTR
referencing new as FEM_LEDGERS_ATTR
for each row
Type
AFTER EACH ROW
Event
INSERT
Column
When
Referencing
REFERENCING NEW AS FEM_LEDGERS_ATTR OLD AS OLD
Body
declare

v_global_vs_attr_id fem_dim_attributes_b.attribute_id%type;

v_global_vs_combo_id fem_ledger_dim_vs_maps.GLOBAL_VS_COMBO_ID%type;

v_channel_vs_id fem_ledger_dim_vs_maps.CHANNEL_VS_ID%type;
v_cctr_org_vs_id fem_ledger_dim_vs_maps.COMPANY_COST_CENTER_ORG_VS_ID%type;
v_company_vs_id fem_ledger_dim_vs_maps.COMPANY_VS_ID%type;
v_cost_ctr_vs_id fem_ledger_dim_vs_maps.COST_CENTER_VS_ID%type;
v_customer_vs_id fem_ledger_dim_vs_maps.CUSTOMER_VS_ID%type;
v_entity_vs_id fem_ledger_dim_vs_maps.ENTITY_VS_ID%type;
v_fin_elem_vs_id fem_ledger_dim_vs_maps.FINANCIAL_ELEM_VS_ID%type;
v_geography_vs_id fem_ledger_dim_vs_maps.GEOGRAPHY_VS_ID%type;
v_line_item_vs_id fem_ledger_dim_vs_maps.LINE_ITEM_VS_ID%type;
v_natural_account_vs_id fem_ledger_dim_vs_maps.NATURAL_ACCOUNT_VS_ID%type;
v_product_vs_id fem_ledger_dim_vs_maps.PRODUCT_VS_ID%type;
v_project_vs_id fem_ledger_dim_vs_maps.PROJECT_VS_ID%type;
v_task_vs_id fem_ledger_dim_vs_maps.TASK_VS_ID%type;
v_user_dim1_vs_id fem_ledger_dim_vs_maps.USER_DIM1_VS_ID%type;
v_user_dim2_vs_id fem_ledger_dim_vs_maps.USER_DIM2_VS_ID%type;
v_user_dim3_vs_id fem_ledger_dim_vs_maps.USER_DIM3_VS_ID%type;
v_user_dim4_vs_id fem_ledger_dim_vs_maps.USER_DIM4_VS_ID%type;
v_user_dim5_vs_id fem_ledger_dim_vs_maps.USER_DIM5_VS_ID%type;
v_user_dim6_vs_id fem_ledger_dim_vs_maps.USER_DIM6_VS_ID%type;
v_user_dim7_vs_id fem_ledger_dim_vs_maps.USER_DIM7_VS_ID%type;
v_user_dim8_vs_id fem_ledger_dim_vs_maps.USER_DIM8_VS_ID%type;
v_user_dim9_vs_id fem_ledger_dim_vs_maps.USER_DIM9_VS_ID%type;
v_user_dim10_vs_id fem_ledger_dim_vs_maps.USER_DIM10_VS_ID%type;

cursor c1 (p_global_vs_combo_id IN NUMBER) is
   SELECT D.dimension_varchar_label, G.value_set_id
   FROM fem_dimensions_b D, fem_global_vs_combo_defs G
   WHERE G.dimension_id = D.dimension_id
   AND G.global_vs_combo_id = p_global_vs_combo_id;


 ---
begin

-- Get the attribute_ids
SELECT A.attribute_id
INTO v_global_vs_attr_id
FROM fem_dim_attributes_b A, fem_dimensions_b D
WHERE D.dimension_varchar_label='LEDGER'
AND D.dimension_id = A.dimension_id
AND A.attribute_varchar_label='GLOBAL_VS_COMBO';



-- process the Global combo attribute
IF :FEM_LEDGERS_ATTR.attribute_id = v_global_vs_attr_id THEN

   v_global_vs_combo_id := :FEM_LEDGERS_ATTR.dim_attribute_numeric_member;

   FOR dim IN c1 (v_global_vs_combo_id) LOOP
      CASE dim.dimension_varchar_label
         WHEN 'CHANNEL' THEN v_channel_vs_id := dim.value_set_id;
         WHEN 'COMPANY_COST_CENTER_ORG' THEN v_cctr_org_vs_id := dim.value_set_id;
         WHEN 'COMPANY' THEN v_company_vs_id := dim.value_set_id;
         WHEN 'COST_CENTER' THEN v_cost_ctr_vs_id := dim.value_set_id;
         WHEN 'CUSTOMER' THEN v_customer_vs_id := dim.value_set_id;
         WHEN 'ENTITY' THEN v_entity_vs_id := dim.value_set_id;
         WHEN 'FINANCIAL_ELEMENT' THEN v_fin_elem_vs_id := dim.value_set_id;
         WHEN 'GEOGRAPHY' THEN v_geography_vs_id := dim.value_set_id;
         WHEN 'LINE_ITEM' THEN v_line_item_vs_id := dim.value_set_id;
         WHEN 'NATURAL_ACCOUNT' THEN v_natural_account_vs_id := dim.value_set_id;
         WHEN 'PRODUCT' THEN v_product_vs_id := dim.value_set_id;
         WHEN 'PROJECT' THEN v_project_vs_id := dim.value_set_id;
         WHEN 'TASK' THEN v_task_vs_id := dim.value_set_id;
         WHEN 'USER_DIM1' THEN v_user_dim1_vs_id := dim.value_set_id;
         WHEN 'USER_DIM10' THEN v_user_dim10_vs_id := dim.value_set_id;
         WHEN 'USER_DIM2' THEN v_user_dim2_vs_id := dim.value_set_id;
         WHEN 'USER_DIM3' THEN v_user_dim3_vs_id := dim.value_set_id;
         WHEN 'USER_DIM4' THEN v_user_dim4_vs_id := dim.value_set_id;
         WHEN 'USER_DIM5' THEN v_user_dim5_vs_id := dim.value_set_id;
         WHEN 'USER_DIM6' THEN v_user_dim6_vs_id := dim.value_set_id;
         WHEN 'USER_DIM7' THEN v_user_dim7_vs_id := dim.value_set_id;
         WHEN 'USER_DIM8' THEN v_user_dim8_vs_id := dim.value_set_id;
         WHEN 'USER_DIM9' THEN v_user_dim9_vs_id := dim.value_set_id;
      END CASE;

   END LOOP;


      MERGE INTO fem_ledger_dim_vs_maps L
      USING (SELECT
        :FEM_LEDGERS_ATTR.ledger_id as ledger_id
	             ,v_global_vs_combo_id as global_vs_combo
	             ,v_channel_vs_id as channel
	             ,v_cctr_org_vs_id as cctr
	             ,v_company_vs_id as company
	             ,v_cost_ctr_vs_id as cost_ctr
	             ,v_customer_vs_id as customer
	             ,v_entity_vs_id as entity
	             ,v_fin_elem_vs_id as fin_elem
	             ,v_geography_vs_id as geography
	             ,v_line_item_vs_id as line_item
	             ,v_natural_account_vs_id as natural_acct
	             ,v_product_vs_id as product
	             ,v_project_vs_id as project
	             ,v_task_vs_id as task
	             ,v_user_dim1_vs_id as user_dim1
	             ,v_user_dim2_vs_id as user_dim2
	             ,v_user_dim3_vs_id as user_dim3
	             ,v_user_dim4_vs_id as user_dim4
	             ,v_user_dim5_vs_id as user_dim5
	             ,v_user_dim6_vs_id as user_dim6
	             ,v_user_dim7_vs_id as user_dim7
	             ,v_user_dim8_vs_id as user_dim8
	             ,v_user_dim9_vs_id as user_dim9
	             ,v_user_dim10_vs_id as user_dim10
        FROM dual) A
       ON (A.ledger_id = L.ledger_id)
       WHEN MATCHED THEN UPDATE SET
               L.GLOBAL_VS_COMBO_ID = v_global_vs_combo_id,
               L.CHANNEL_VS_ID = v_channel_vs_id,
               L.COMPANY_COST_CENTER_ORG_VS_ID = v_cctr_org_vs_id,
	           L.COMPANY_VS_ID = v_company_vs_id,
	           L.COST_CENTER_VS_ID = v_cost_ctr_vs_id,
	           L.CUSTOMER_VS_ID = v_customer_vs_id,
	           L.ENTITY_VS_ID = v_entity_vs_id,
	           L.FINANCIAL_ELEM_VS_ID = v_fin_elem_vs_id,
	           L.GEOGRAPHY_VS_ID = v_geography_vs_id,
	           L.LINE_ITEM_VS_ID = v_line_item_vs_id,
	           L.NATURAL_ACCOUNT_VS_ID = v_natural_account_vs_id,
	           L.PRODUCT_VS_ID  = v_product_vs_id,
	           L.PROJECT_VS_ID  = v_project_vs_id,
	           L.TASK_VS_ID  = v_task_vs_id,
	           L.USER_DIM1_VS_ID = v_user_dim1_vs_id,
	           L.USER_DIM2_VS_ID = v_user_dim2_vs_id,
	           L.USER_DIM3_VS_ID = v_user_dim3_vs_id,
	           L.USER_DIM4_VS_ID = v_user_dim4_vs_id,
	           L.USER_DIM5_VS_ID = v_user_dim5_vs_id,
	           L.USER_DIM6_VS_ID = v_user_dim6_vs_id,
	           L.USER_DIM7_VS_ID = v_user_dim7_vs_id,
	           L.USER_DIM8_VS_ID = v_user_dim8_vs_id,
	           L.USER_DIM9_VS_ID = v_user_dim9_vs_id,
	           L.USER_DIM10_VS_ID= v_user_dim10_vs_id
      WHEN NOT MATCHED THEN INSERT (
      L.LEDGER_ID,
      L.GLOBAL_VS_COMBO_ID,
      L.CHANNEL_VS_ID,
      L.COMPANY_COST_CENTER_ORG_VS_ID,
      L.COMPANY_VS_ID,
      L.COST_CENTER_VS_ID,
      L.CUSTOMER_VS_ID,
      L.ENTITY_VS_ID,
      L.FINANCIAL_ELEM_VS_ID,
      L.GEOGRAPHY_VS_ID,
      L.LINE_ITEM_VS_ID,
      L.NATURAL_ACCOUNT_VS_ID,
      L.PRODUCT_VS_ID,
      L.PROJECT_VS_ID,
      L.TASK_VS_ID,
      L.USER_DIM1_VS_ID,
      L.USER_DIM2_VS_ID,
      L.USER_DIM3_VS_ID,
      L.USER_DIM4_VS_ID,
      L.USER_DIM5_VS_ID,
      L.USER_DIM6_VS_ID,
      L.USER_DIM7_VS_ID,
      L.USER_DIM8_VS_ID,
      L.USER_DIM9_VS_ID,
      L.USER_DIM10_VS_ID
      )
      VALUES    (:FEM_LEDGERS_ATTR.ledger_id
                 ,v_global_vs_combo_id
                 ,v_channel_vs_id
                 ,v_cctr_org_vs_id
                 ,v_company_vs_id
                 ,v_cost_ctr_vs_id
                 ,v_customer_vs_id
                 ,v_entity_vs_id
                 ,v_fin_elem_vs_id
                 ,v_geography_vs_id
                 ,v_line_item_vs_id
                 ,v_natural_account_vs_id
                 ,v_product_vs_id
                 ,v_project_vs_id
                 ,v_task_vs_id
                 ,v_user_dim1_vs_id
                 ,v_user_dim2_vs_id
                 ,v_user_dim3_vs_id
                 ,v_user_dim4_vs_id
                 ,v_user_dim5_vs_id
                 ,v_user_dim6_vs_id
                 ,v_user_dim7_vs_id
                 ,v_user_dim8_vs_id
                 ,v_user_dim9_vs_id
                 ,v_user_dim10_vs_id
 );




END IF;


end;