0% found this document useful (0 votes)
45 views

Cae

Uploaded by

neelamadhaba.sh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

Cae

Uploaded by

neelamadhaba.sh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 25

X`x`-------------------------------------------------------------------------------

-----------------------------------------------------------------------------------
--------------------------------
-- Application Name : CHANNEL AUTO ENROLL 2.0
--
-- File Name : TDPRC_LOAD_CAE_RPTG.spl
--
-- Description : Script is used to load
Reseller_Auto_Enroll_Invoice table
--
-- This is an Incremental Procedure based on
BATCH_SK loads
--
-- data into invoice and delivery work
table.These two work
--
-- tables are joined with order table to get the
Final data.
--
-- The Semantic table contains transactional
dataof Resellers
--
-- Author : Cognizant
--
-- Date : 14/09/2020
--
-- Fields Passed in : none
--
-- Fields Passed out : lv_out_status
--
-- Return values : none
--
--
--
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------
-- Creation/Modification Details
--
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------
-- When Who What
--
-- 14-Sept-2020 CAE Dev Team Initial Version 1.0

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------

REPLACE PROCEDURE ARTEMIS_USER.TDPRC_LOAD_CAE_RPTG

(semantic_batch_sk INTEGER,IN i_v_etl_process_sk INTEGER,OUT lv_out_status


VARCHAR(10))
SQL SECURITY INVOKER
BEGIN

-- Variables required to hold the data in appropriate formats


DECLARE li_invoice_constant_id SMALLINT DEFAULT 1;
DECLARE li_delivery_constant_id SMALLINT DEFAULT 2;
DECLARE li_order_constant_id SMALLINT DEFAULT 3;
DECLARE li_price_constant_id SMALLINT DEFAULT 4;
declare li_grx_constant_id SMALLINT DEFAULT 5;
DECLARE li_invoice_min_bsk INTEGER;
DECLARE li_delivery_min_bsk INTEGER;
DECLARE li_order_min_bsk INTEGER;
DECLARE li_price_min_bsk INTEGER;
DECLARE li_invoice_max_bsk INTEGER;
DECLARE li_delivery_max_bsk INTEGER;
DECLARE li_order_max_bsk INTEGER;
DECLARE li_price_max_bsk INTEGER;
declare li_grx_max_bsk INTEGER;
declare li_grx_min_bsk INTEGER;
DECLARE li_roll_min_Dt DATE;
DECLARE li_roll_qtr_min_Dt DATE;
declare ld_run_time TIMESTAMP(6);
DECLARE ln_rows_added_tbl_1 DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_updated_tbl_1 DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_deleted_tbl_1 DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_Merged_tbl_1 DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_affected_tbl_1 DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_added_tbl_tmp DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_updated_tbl_tmp DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_deleted_tbl_tmp DECIMAL(18,0) DEFAULT 0;
DECLARE ln_rows_merged_tbl_tmp DECIMAL(18,0) DEFAULT 0;
DECLARE ld_start_ts TIMESTAMP(6);
DECLARE ld_end_ts TIMESTAMP(6);
DECLARE lv_msg VARCHAR(20000) DEFAULT '';
DECLARE ln_sql_code INTEGER;
DECLARE lv_err_msg VARCHAR(1000);
DECLARE ln_process_run_id DECIMAL(18,0) default 0;
DECLARE lv_source_application_name VARCHAR(50) DEFAULT 'ARTEMIS';
DECLARE ln_step_number INTEGER DEFAULT 0;
DECLARE lv_process_name VARCHAR(50) DEFAULT 'TDPRC_LOAD_CAE_RPTG';
DECLARE ln_current_user VARCHAR(50);
DECLARE lv_sql_state VARCHAR(5);
DECLARE li_proc_code VARCHAR(5);
DECLARE LI_OUT INTEGER;
DECLARE li_grx_order_min_bsk INTEGER;
DECLARE li_grx_order_max_bsk INTEGER;
-----------------------------------------------------------------------------------
-------------
-------------------------------Exception Handler
section----------------------------------------
-----------------------------------------------------------------------------------
-------------

DECLARE EXIT HANDLER FOR SQLEXCEPTION


BEGIN

SET lv_sql_state = SQLSTATE;


SET ln_sql_code = SQLCODE;
SET lv_out_status = 'ERROR';
ROLLBACK;
SELECT errortext INTO lv_err_msg FROM dbc.errormsgs WHERE
errorcode=ln_sql_code;
SET lv_msg = 'Error in : ' || lv_msg || ' - SQLSTATE: ' || lv_sql_state ||
', SQLERRM: ' || lv_err_msg;

CALL
ARTEMIS_USER.process_run_log_details('U',ln_step_number,lv_process_name,'artemis_ap
p.Reseller_Auto_Enroll_Invoice',ln_process_run_id,semantic_batch_sk,i_v_etl_process
_sk,2,lv_msg,CURRENT_TIMESTAMP,lv_Source_Application_Name,

0,0,0,0,0,ld_start_ts,ld_end_ts);

SELECT 1/0 INTO :LI_OUT ;

END;

SELECT CURRENT_TIMESTAMP INTO ld_start_ts;


SELECT CURRENT_TIMESTAMP INTO ld_end_ts;

--Generating the unix Process Run Id for a single instance of the process--

CALL ARTEMIS_USER.get_seq_nextval('ARTEMIS_PROCESS_RUN_SEQ',ln_process_run_id);

SET lv_out_status = 'RUNNING';


SET lv_msg = 'Procedure TDPRC_LOAD_CAE_RPTG started successfully';
SELECT CURRENT_TIMESTAMP INTO ld_end_ts;

CALL
ARTEMIS_USER.process_run_log_details('S',ln_step_number,lv_process_name,'artemis_ap
p.Reseller_Auto_Enroll_Invoice',ln_process_run_id,semantic_batch_sk,i_v_etl_process
_sk,0,lv_msg,CURRENT_TIMESTAMP,lv_Source_Application_Name,

ln_rows_added_tbl_1,ln_rows_updated_tbl_1,ln_rows_deleted_tbl_1,ln_rows_merged_tbl_
1,ln_rows_affected_tbl_1,ld_start_ts,ld_end_ts);
/************FETCHING PROC_CODE FROM PROC_LOG_MASTER FOR INCREMENTAL
PROCEDURE***********/

LOCK ROW FOR ACCESS


SELECT PROC_CODE INTO :li_proc_code
FROM artemis_app.proc_log_master
WHERE PROC_NAME = 'TDPRC_LOAD_CAE_RPTG';

-----------------------------------------------------------------------------------
-------------------------------------------------------------
-------------------------------------------------FINDING MIN & MAX
BATCH_SK---------------------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------------------

/*********GET LAST RUN BATCH SK FROM CAE_CONSTANT


TABLE***********************************/
/****Minimum ETL_BATCH_SK is used in loading data from transactional table
Incrementally**/
LOCKING ROW FOR ACCESS
SELECT CAST(constant_val AS INTEGER) INTO li_invoice_min_bsk
FROM artemis_app.cae_2_constant
WHERE constant_id =li_invoice_constant_id ;

LOCKING ROW FOR ACCESS


SELECT CAST(constant_val AS INTEGER) INTO li_delivery_min_bsk
FROM artemis_app.cae_2_constant
WHERE constant_id =li_delivery_constant_id ;

LOCKING ROW FOR ACCESS


SELECT CAST(constant_val AS INTEGER) INTO li_order_min_bsk
FROM artemis_app.cae_2_constant
WHERE constant_id =li_order_constant_id ;

LOCKING ROW FOR ACCESS


SELECT CAST(constant_val AS INTEGER) INTO li_price_min_bsk
FROM artemis_app.cae_2_constant
WHERE constant_id =li_price_constant_id ;

LOCKING ROW FOR ACCESS


SELECT CAST(constant_val AS INTEGER) INTO li_grx_min_bsk
FROM artemis_app.cae_2_constant
WHERE constant_id =li_grx_constant_id ;

/*********GET MAX BATCH SK FROM


ETL_CONTROL_GROUP******************************************************************
****************************/
/*****Maximum ETL_BATCH_SK is used to update the constant_val column of constant
table CAE_CONSTANT********************************************/

SELECT
MAX(APPUTIL_USER.GREATEST(COALESCE(current_batch_sk,li_invoice_min_bsk),li_invoice_
min_bsk)) INTO li_invoice_max_bsk
FROM master.etl_control_group_cur
WHERE UPPER(TRIM(table_name))='INVOICE_ITEM_EXTENDED';

SELECT
MAX(APPUTIL_USER.GREATEST(COALESCE(current_batch_sk,li_delivery_min_bsk),li_deliver
y_min_bsk)) INTO li_delivery_max_bsk
FROM master.etl_control_group_cur
WHERE UPPER(TRIM(table_name))='DELIVERY_ITEM_EXTENDED';

SELECT
MAX(APPUTIL_USER.GREATEST(COALESCE(current_batch_sk,li_order_min_bsk),li_order_min_
bsk)) INTO li_order_max_bsk
FROM master.etl_control_group_cur
WHERE UPPER(TRIM(table_name))='ORDER_ITEM_EXTENDED';

SELECT
MAX(APPUTIL_USER.GREATEST(COALESCE(current_batch_sk,li_price_min_bsk),li_price_min_
bsk)) INTO li_price_max_bsk
FROM master.etl_control_group_cur
WHERE UPPER(TRIM(table_name))='INVOICE_PRICE_ITEM';
SELECT
MAX(APPUTIL_USER.GREATEST(COALESCE(current_batch_sk,li_price_min_bsk),li_price_min_
bsk)) INTO li_grx_max_bsk
FROM master.etl_control_group_cur
WHERE UPPER(TRIM(table_name))='ACC_GRX_ORDER_REG';

/**************GET MINIMUM DATE OF PREVIOUS


YEAR*******************************************************************************
****************************/
/************The Minimum date is fetched to delete all records from semantic table
which are prior to this date as we are storing 2 years of data *********/

Select MIN(roll.Rptg_Dt) INTO li_roll_min_Dt


FROM artemis.fiscal_rolling_calendar roll
WHERE roll.Roll_Year = -2;

select MIN(Rptg_Dt) INTO li_roll_qtr_min_Dt


FROM artemis.fiscal_rolling_calendar
WHERE Roll_Quarter=-1;

-----------------------------------------------------------------------------------
--------------------------------
--------------------------DELETING DATA FROM WORK
TABLE------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------

SET lv_msg='Deleting Data from ALL WORK TABLES';


SET ld_start_ts=CURRENT_TIMESTAMP;

DELETE FROM artemis_app.wrk_invoice_extnd;


DELETE FROM artemis_app.wrk_invoice_details;
DELETE FROM artemis_app.wrk_carrier_enroll_final;
DELETE FROM artemis_app.status_wrk_live;
DELETE FROM artemis_app.wrk_invoice_id_full_data;
Delete from artemis_app.wrk_order_id_full_data;

SET ln_rows_deleted_tbl_tmp = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'All_Work_T
ables',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,1,lv_msg,CURRENT_TIME
STAMP,lv_source_application_name
,
0,0,ln_rows_deleted_tbl_tmp,0,0,ld_start_ts,ld_end_ts);

--- Getting all the sold_to ids whose status is LIVE--------

insert into artemis_app.status_wrk_live


(
Sold_To_Cust_Id,
acc_stts
)
select distinct eac.account_id,eac.account_status
from ARTEMIS.ESK_TENANT_ACCOUNT_CUR ETAC
, ARTEMIS.ESK_ACCOUNT_CUR EAC
, ARTEMIS.ESK_PPM_OTH_ATTRS EPOA
WHERE etac.partner_id = eac.partner_id
and etac.partner_id = EPOA.partner_id
and eac.account_status <> 'INACTIVE'
and EPOA.attr_type = 'ACC_ATTR_PARTNER_TYPE';

SET ln_rows_added_tbl_tmp = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

SET lv_msg = 'Added records into Artemis_App.status_wrk_live';


CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'Artemis_Ap
p.status_wrk_live',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,1,lv_msg,
CURRENT_TIMESTAMP,lv_source_application_name
,ln
_rows_added_tbl_tmp,0,0,0,0,ld_start_ts,ld_end_ts);
/*
----- Inserting missing Active customers manually------------

insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values


('0001038504','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001038508','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001127233','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001144516','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001149053','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001252710','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001272530','ACTIVE');
insert into artemis_app.status_wrk_live (Sold_To_Cust_Id,acc_stts)values
('0001334757','ACTIVE');

*/
Collect stat on artemis_app.status_wrk_live;

-------Inserting invoice_id and Invoice_Item_Nr incremental data from


Invoice_item_extended into work table-------
SET ld_start_ts=CURRENT_TIMESTAMP;

Insert into artemis_app.wrk_order_id_full_data


(
order_id,
order_item_nr,
source_id
)
SELECT order_id,
cast(order_item_nr as INTEGER) as order_item_nr,
Source_Id
FROM artemis.delivery_item_extended
WHERE etl_batch_sk > li_delivery_min_bsk
AND etl_batch_sk <= li_delivery_max_bsk
AND Source_id = 'SC2'
UNION
SELECT order_id,
order_item_nr,
Source_Id
FROM artemis.order_item_extended
WHERE Source_id = 'SC2'
AND Etl_Change_Batch_Sk > li_order_min_bsk
AND Etl_Change_Batch_Sk <= li_order_max_bsk;

Insert into artemis_app.wrk_invoice_id_full_data


(
invoice_id,
Invoice_Item_Nr,
source_id
)
SELECT invoice_id,
Invoice_Item_Nr,
source_id
FROM artemis.Invoice_item_extended
WHERE Etl_Batch_Sk > li_invoice_min_bsk
AND Etl_Batch_Sk <= li_invoice_max_bsk
AND source_id = 'SC2'
UNION
SELECT invoice_id,
Item_Nr,
source_id
FROM sales.invoice_price_item_cur
WHERE etl_batch_sk > li_price_min_bsk
AND etl_batch_sk <= li_price_max_bsk
AND source_id = 'SC2'
UNION
SELECT invoice.invoice_id,
invoice.Invoice_Item_Nr,
invoice.source_id
FROM artemis.Invoice_item_extended invoice
INNER JOIN artemis_app.wrk_order_id_full_data ord
ON invoice.order_id = ord.order_id
AND invoice.order_item_nr = ord.order_item_nr
AND invoice.source_id = ord.source_id
and invoice.source_id='SC2'
UNION
SELECT invoice_id,
Invoice_Item_Nr,
source_id
FROM artemis_app.Adhoc_invoice_req;

--- Direct Unions


SET ln_rows_added_tbl_tmp = ACTIVITY_COUNT;
SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

SET lv_msg = 'Added records into Artemis_App.wrk_invoice_id_full_data';


CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'Artemis_Ap
p.wrk_invoice_id_full_data',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,
1,lv_msg,CURRENT_TIMESTAMP,lv_source_application_name
,ln
_rows_added_tbl_tmp,0,0,0,0,ld_start_ts,ld_end_ts);

collect stat on artemis_app.wrk_invoice_id_full_data;

INSERT INTO artemis_app.wrk_invoice_extnd


(
Invoice_Id,
Source_id,
Sold_To_Cust_Id,
Invoice_Type_Cd,
Invoice_Dt,
sales_org_cd,
Payment_Term_Cd,
Invoice_Item_Nr,
Payer_Cust_Id,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
prod_id,
Shipping_Qty,
Sub_Total_3_Amt,
Tax_Amt,
Total_net_amt,
Total_amt,
delivery_id,
order_id,
order_item_nr,
Billing_Qty,
Delivery_Item_Nr,
sold_to_cust_name,
INVOICE_TYPE_DESC,
cust_po_nr
)
SELECT invoice.Invoice_Id AS Invoice_Id,
invoice.Source_id AS Source_id,
invoice.sold_to_cust_id AS Sold_To_Cust_Id,
invoice.Invoice_Type_Cd AS Invoice_Type_Cd,
invoice.Billing_Dt AS Invoice_Dt,
invoice.sales_org_cd AS sales_org_cd,
invoice.Payment_Term_Cd AS Payment_Term_Cd,
invoice.Invoice_Item_Nr AS Invoice_Item_Nr,
invoice.Payer_Cust_Id AS Payer_Cust_Id,
invoice.Ship_To_Cust_Id AS Ship_To_Cust_Id,
invoice.Bill_To_Cust_Id AS Bill_To_Cust_Id,
invoice.prod_id AS prod_id,
SUM(invoice.Rptg_Qty) AS Shipping_Qty,
CASE WHEN Invoice_Type_Cd = 'G2' AND Sub_Total_3_Amt > 0 THEN
Sub_Total_3_Amt*-1 ELSE Sub_Total_3_Amt END AS Sub_Total_3_Amt,
SUM(CASE WHEN Invoice_Type_Cd = 'G2' AND invoice.total_tax_amt > 0 THEN
invoice.total_tax_amt*-1 ELSE invoice.total_tax_amt END) AS Tax_Amt,
SUM(CASE WHEN invoice.Invoice_Type_Cd = 'G2' AND Invoice.Net_Amt > 0 AND
Invoice.total_tax_amt > 0 THEN (Invoice.Net_Amt + Invoice.total_tax_amt)*-1 WHEN
invoice.Invoice_Type_Cd = 'G2' AND Invoice.Net_Amt <= 0 AND Invoice.total_tax_amt >
0 THEN Invoice.Net_Amt - Invoice.total_tax_amt WHEN invoice.Invoice_Type_Cd = 'G2'
AND Invoice.Net_Amt > 0 AND Invoice.total_tax_amt <= 0 THEN Invoice.total_tax_amt -
Invoice.Net_Amt ELSE Invoice.Net_Amt + Invoice.total_tax_amt END) AS Total_net_amt,
SUM(CASE WHEN Invoice_Type_Cd = 'G2' AND Net_Amt > 0 THEN Net_Amt*-1 ELSE
Net_Amt END) AS Total_amt,
COALESCE(invoice.delivery_id,-1) AS delivery_id,
invoice.order_id AS order_id,
invoice.order_item_nr AS order_item_nr,
SUM(invoice.billing_qty) AS Billing_Qty,
COALESCE(invoice.Delivery_Item_Nr,-1) AS Delivery_Item_Nr,
invoice.sold_to_cust_name AS sold_to_cust_name,
invoice.INVOICE_TYPE_DESC AS INVOICE_TYPE_DESC,
invoice.cust_po_nr AS cust_po_nr
FROM artemis.invoice_item_extended invoice
INNER JOIN artemis_app.wrk_invoice_id_full_data invoice_list
ON (invoice_list.invoice_id = invoice.invoice_id
AND invoice_list.invoice_item_Nr = invoice.Invoice_item_nr
AND invoice.source_id = invoice_list.source_id
AND invoice.Source_id = 'SC2')
group by 1,2,3,4,5,6,7,8,9,10,11,12,14,18,19,20,22,23,24,25
;

SET ln_rows_added_tbl_tmp = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

SET lv_msg = 'Added '||cast(ln_rows_added_tbl_tmp as varchar(11)) ||' records into


Artemis_App.wrk_invoice_extnd for the incremental load from
Sales.invoice_item_extended for batch_sk : '||cast(li_invoice_min_bsk as
varchar(11))||' to '||cast(li_invoice_max_bsk as varchar(11));
CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'Artemis_Ap
p.wrk_invoice_extnd',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,1,lv_ms
g,CURRENT_TIMESTAMP,lv_source_application_name
,ln
_rows_added_tbl_tmp,0,0,0,0,ld_start_ts,ld_end_ts);

Collect stat on Artemis_App.wrk_invoice_extnd;

--- Filtering out invoice data for Invlaid customers by joining with
artemis_app.status_wrk_live-----------
INSERT INTO artemis_app.wrk_invoice_details
(
Invoice_Id,
Source_id,
Sold_To_Cust_Id,
Invoice_Type_Cd,
Invoice_Dt,
sales_org_cd,
Payment_Term_Cd,
Invoice_Item_Nr,
Payer_Cust_Id,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
prod_id,
Shipping_Qty,
VAT_Amt,
Srvc_tx_amt,
Edu_CESS_AMt,
High_Edu_CESS_Amt,
Commsn_amt,
Total_Net_amt,
Total_amt,
Sub_Total_3_Amt,
Tax_Amt,
ref_doc_id,
order_id,
order_item_nr,
Billing_Qty,
Delivery_Item_Nr,
sold_to_cust_name,
INVOICE_TYPE_DESC,
cust_po_nr,
Condition_Flag_Cd,
Item_LC_Amt,
line_item_nr
)
SELECT invoice.Invoice_Id AS Invoice_Id,
invoice.Source_id AS Source_id,
invoice.Sold_To_Cust_Id AS Sold_To_Cust_Id,
invoice.Invoice_Type_Cd AS Invoice_Type_Cd,
invoice.Invoice_Dt AS Invoice_Dt,
invoice.sales_org_cd AS sales_org_cd,
invoice.Payment_Term_Cd AS Payment_Term_Cd,
invoice.Invoice_Item_Nr AS Invoice_Item_Nr,
invoice.Payer_Cust_Id AS Payer_Cust_Id,
invoice.Ship_To_Cust_Id AS Ship_To_Cust_Id,
invoice.Bill_To_Cust_Id AS Bill_To_Cust_Id,
invoice.prod_id AS prod_id,
invoice.Shipping_Qty AS Shipping_Qty,
MAX(CASE WHEN price_item.Condition_Type_Cd = 'ZVAT' THEN price_item.Item_Amt
ELSE NULL END) AS VAT_Amt,
MAX(CASE WHEN price_item.Condition_Type_Cd = 'ZSTI' THEN price_item.Item_Amt
ELSE NULL END) AS Service_Tax_Amt,
MAX(CASE WHEN price_item.Condition_Type_Cd = 'ZECS' THEN price_item.Item_Amt
ELSE NULL END) AS Edu_CESS_AMt,
MAX(CASE WHEN price_item.Condition_Type_Cd = 'ZHCS' THEN price_item.Item_Amt
ELSE NULL END) AS High_Edu_CESS_Amt,
MAX(CASE WHEN price_item.Condition_Type_Cd = 'ZDS3' THEN price_item.Item_Amt
ELSE NULL END) AS Commsn_amt,
SUM(Total_Net_amt) AS Total_Net_amt,
SUM(Total_amt) AS Total_amt,
Sub_Total_3_Amt AS Sub_Total_3_Amt,
invoice.Tax_Amt AS Tax_Amt,
COALESCE(invoice.delivery_id,-1) AS ref_doc_id,
invoice.order_id AS order_id,
invoice.order_item_nr AS order_item_nr,
invoice.billing_qty AS Billing_Qty,
COALESCE(invoice.Delivery_Item_Nr,-1) AS Delivery_Item_Nr,
invoice.sold_to_cust_name AS sold_to_cust_name,
invoice.INVOICE_TYPE_DESC AS INVOICE_TYPE_DESC,
invoice.cust_po_nr AS cust_po_nr,
CASE
WHEN invoice.Invoice_Type_Cd = 'G2' OR invoice.Invoice_Type_Cd = 'F2' THEN
price_item.Condition_Type_Cd
END AS Condition_Flag_Cd,
SUM(CASE WHEN invoice.Invoice_Type_Cd = 'G2' OR invoice.Invoice_Type_Cd =
'F2' THEN price_item.Item_Amt END) AS Item_LC_Amt,
-1 AS line_item_nr
FROM artemis_app.wrk_invoice_extnd invoice
LEFT OUTER JOIN sales.invoice_price_item_cur price_item
ON invoice.invoice_id = price_item.invoice_id
AND invoice.Invoice_Item_Nr = price_item.Item_Nr
AND invoice.source_id = price_item.source_id
AND price_item.Condition_Type_Cd = 'ZRCC'
AND price_item.Calc_Type_Cd = 'A'
INNER JOIN artemis_app.status_wrk_live st ON invoice.Sold_To_Cust_Id =
st.Sold_To_Cust_Id
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,21,22,23,24,25,26,27,28,29,30,31;

--- Getting all previous records from main table where delivery/any other details
were missing----
----We will process these records again------------------
/*
INSERT INTO artemis_app.wrk_invoice_details
(
Invoice_Id,
Source_id,
Sold_To_Cust_Id,
Invoice_Type_Cd,
Invoice_Dt,
Payment_Term_Cd,
Payer_Cust_Id,
Invoice_Item_Nr,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
prod_id,
sales_order_id,
line_item_nr,
MRC_Flag_cd,
Market_Data_Field_name,
Agmt_id,
Intl_Mobile_Equip_Identity_Nr,
Mobile_Equip_Id_Nr,
Payment_Term_Desc,
MSA_Nr,
Total_Amt,
Total_Net_amt,
Sub_Total_3_Amt,
Tax_Amt,
order_id,
order_item_nr,
Billing_Qty,
sold_to_cust_name,
INVOICE_TYPE_DESC,
cust_po_nr,
Item_LC_Amt
)
SELECT Invoice_Id,
'SC2',
Sold_To_Cust_Id,
Invoice_Type_Cd,
Invoice_Dt,
Payment_Term_Cd,
Payer_Cust_Id,
Invoice_Item_Nr,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
prod_id,
sales_order_id,
coalesce(line_item_nr,-1),
MRC_Flag_cd,
Market_Data_Field_name,
Agmt_id,
Intl_Mobile_Equip_Identity_Nr,
Mobile_Equip_Id_Nr,
Payment_Term_Desc,
MSA_Nr,
Total_Amt,
Total_Net_amt,
Unit_price_amt,
Tax_Amt,
order_id,
order_item_nr,
Billing_Qty,
cust_name,
INVOICE_TYPE_DESC,
cust_po_nr,
Item_LC_Amt
FROM artemis_app.Reseller_Auto_Enroll_Invoice main
WHERE (main.Sales_order_id IS NULL OR main.line_item_nr =-1);
*/

SET ln_rows_added_tbl_tmp = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

SET lv_msg = 'Added records into Artemis_App.wrk_invoice_details';


CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'Artemis_Ap
p.wrk_invoice_details',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,1,lv_
msg,CURRENT_TIMESTAMP,lv_source_application_name
,ln
_rows_added_tbl_tmp,0,0,0,0,ld_start_ts,ld_end_ts);
COLLECT STATISTICS ON artemis_app.wrk_invoice_details;

------Joining invoice,delivery,order work tables with other tables-------

SET ld_start_ts=CURRENT_TIMESTAMP;

Insert into artemis_app.wrk_carrier_enroll_final


(
Invoice_id,
Invoice_Item_Nr,
Invoice_dt,
Sold_To_Cust_Id,
cust_name,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
Invoice_Type_Cd,
INVOICE_TYPE_DESC,
cust_po_nr,
Serial_Nr,
Line_Item_Nr,
prod_id,
prod_desc,
MRC_Flag_cd,
Market_Data_Field_name,
Sales_order_id,
Agmt_id,
Intl_Mobile_Equip_Identity_Nr,
Mobile_Equip_Id_Nr,
order_id,
Payment_Term_Cd,
Payment_Term_Desc,
MSA_Nr,
Unit_price_Amt,
order_item_nr,
Payer_Cust_Id,
Univesral_Prod_Cd,----------Added as Part of rdar://71249209 (Add Sales date to GBI
Auto Enroll CAE-2.0 report)
AppleCare_Sales_Dt,----------Added as Part of rdar://71249209 (Add Sales date to
GBI Auto Enroll CAE-2.0 report)
Tax_Amt,
Item_LC_Amt,
Total_Net_amt,
Total_Amt,
Billing_Qty
)
SELECT invoice.Invoice_Id AS Invoice_Id,
invoice.Invoice_Item_Nr AS Invoice_Item_Nr,
invoice.invoice_dt AS Invoice_dt,
invoice.Sold_To_Cust_Id AS Sold_To_Cust_Id,
invoice.sold_to_cust_name AS Customer_Name,
invoice.Ship_To_Cust_Id AS Ship_To_Cust_Id,
invoice.Bill_To_Cust_Id AS Bill_To_Cust_Id,
invoice.Invoice_Type_Cd AS Invoice_Type_Cd,
invoice.INVOICE_TYPE_DESC AS INVOICE_TYPE_DESC,
order_reg.cust_po_nr AS cust_po_nr,
order_reg.Serviced_Serial_Nr AS Serial_Nr,
delivery.ref_item_nr AS Line_Item_Nr,
invoice.prod_id AS prod_id,
prod.prod_desc AS prod_desc,
grx_reg.Mthly_Payment_Cd AS MRC_Flag,
grx_reg.Mkt_Field_Val AS Market_Data_Field,
delivery.ref_doc_id AS Sales_order_id,
order_reg.Web_Order_Id AS Agreement_id,
iphone_extd.imei AS Intl_Mobile_Equip_Identity_Nr,
iphone_extd.meid AS Mobile_Equip_Id_Nr,
invoice.order_id AS order_id,
invoice.Payment_Term_Cd AS Payment_Term_Cd,
payment.Pmnt_Sk_Desc AS Payment_Term_Desc,
grx_reg.MSA_Nr AS MSA_Nr,
invoice.Sub_Total_3_Amt AS Unit_price,
order_reg.order_item_nr AS order_item_nr,
invoice.Payer_Cust_Id AS Payer_Cust_Id,
prod.Univeral_Prod_Cd as Univesral_Prod_Cd, ----------Added as Part of
rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
cast(grx_reg.apc_sales_ts as date) as AppleCare_Sales_Dt,
--------------------Added as Part of rdar://71249209 (Add Sales date to GBI Auto
Enroll CAE-2.0 report)
SUM(invoice.Tax_Amt) AS Tax_Amt,
SUM(invoice.Item_LC_Amt) AS Item_LC_Amt,
SUM(invoice.Total_Net_amt) AS Total_Net_amt,
SUM(Total_amt) AS Total_amt,
SUM(invoice.billing_qty) AS Billing_Qty
FROM artemis_app.wrk_invoice_details invoice
LEFT OUTER JOIN (SELECT distinct delivery.ref_item_nr,
delivery.source_id,
delivery.order_id,
delivery.order_item_nr,
delivery.ref_doc_id
FROM artemis_app.wrk_invoice_details invoice
LEFT JOIN artemis.delivery_item_extended delivery
ON (invoice.order_id = delivery.order_id
AND invoice.order_item_nr = delivery.order_item_nr
AND invoice.source_id = delivery.source_id
AND invoice.Source_id = 'SC2'
)
where delivery.etl_action_cd <> 'D'
QUALIFY ROW_NUMBER () OVER (PARTITION BY
delivery.Delivery_Id,delivery.Delivery_Item_Nr,delivery.Source_Id
ORDER BY delivery.ETL_Batch_Sk DESC) = 1) delivery
ON (invoice.order_id = delivery.order_id
AND invoice.order_item_nr = delivery.order_item_nr
AND invoice.source_id = delivery.source_id
AND invoice.Source_id = 'SC2')
LEFT OUTER JOIN master.master_cust_payterms payment
ON (invoice.Payment_Term_Cd = payment.Terms_Pmnt_Sk
AND payment.Lang_Sk = 'E')
Inner JOIN artemis.order_item_extended order_reg
ON (invoice.order_id = order_reg.order_id
AND invoice.source_id = order_reg.source_id
AND invoice.order_item_nr = order_reg.order_item_nr
AND order_reg.source_id = 'SC2')
LEFT OUTER JOIN Artemis.Ac_Grx_Order_Reg grx_reg
ON (grx_reg.Agmt_Id = order_reg.Web_Order_Id
AND order_reg.source_id = 'SC2')
INNER JOIN artemis.product_hierarchy prod ON (invoice.prod_id = prod.prod_id)
LEFT OUTER JOIN artemis.fact_install_base iphone_extd ON
coalesce(order_reg.Serviced_Serial_Nr,-1)= iphone_extd.Serial_Nr
WHERE prod.Prod_Class_Id='S' OR prod.Prod_Desc like '%APP%' -----------Added as
part of CR <CHG000338376>
GROUP BY 1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,28,29;

SET ln_rows_added_tbl_tmp = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

SET lv_msg = 'Added records into artemis_app.wrk_carrier_enroll_final';


CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'artemis_ap
p.wrk_carrier_enroll_final',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,
1,lv_msg,CURRENT_TIMESTAMP,lv_source_application_name
,ln
_rows_added_tbl_tmp,0,0,0,0,ld_start_ts,ld_end_ts);
----If Delivery data was not there earlier but populated in current run----
-- Then we have to overwrite the previous records in main table where delivery
data was updated as NULL(casted to -1)--
/*
DELETE
FROM artemis_app.Reseller_Auto_Enroll_Invoice main
WHERE (Invoice_id,Invoice_item_nr,prod_id,order_id) IN (SELECT Invoice_id,
Invoice_item_nr,
prod_id,
order_id
FROM
artemis_app.wrk_carrier_enroll_final
and line_item_nr<>=-1)
AND main.line_item_nr = -1;

*/

COLLECT STATISTICS ON artemis_app.wrk_carrier_enroll_final;

--set ld_run_time = CURRENT_TIMESTAMP;


--SELECT CURRENT_TIMESTAMP into ld_run_time;

-----Merging into Main Table------------

MERGE
INTO artemis_app.Reseller_Auto_Enroll_Invoice maintable
USING artemis_app.wrk_carrier_enroll_final wrktable
ON
maintable.Invoice_Id = wrktable.Invoice_Id
AND maintable.Order_Id = wrktable.Order_Id
and maintable.order_Item_Nr =wrktable.order_Item_Nr
and maintable.Invoice_Item_Nr=wrktable.Invoice_Item_Nr
WHEN MATCHED THEN
UPDATE SET
Invoice_dt= wrktable.Invoice_dt,
Sold_To_Cust_Id= wrktable.Sold_To_Cust_Id,
cust_name= wrktable.cust_name,
Ship_To_Cust_Id= wrktable.Ship_To_Cust_Id,
Bill_To_Cust_Id= wrktable.Bill_To_Cust_Id,
Invoice_Type_Cd= wrktable.Invoice_Type_Cd,
Payer_Cust_Id=wrktable.Payer_Cust_Id,
INVOICE_TYPE_DESC= wrktable.INVOICE_TYPE_DESC,
cust_po_nr= wrktable.cust_po_nr,
Serial_Nr= wrktable.Serial_Nr,
prod_desc= wrktable.prod_desc,
Total_Amt= wrktable.Total_Amt,
Total_net_amt=wrktable.Total_net_amt,
MRC_Flag_cd= wrktable.MRC_Flag_cd,
line_Item_nr=wrktable.line_Item_nr,
prod_id=wrktable.prod_id,
Market_Data_Field_name= wrktable.Market_Data_Field_name,
Sales_order_id= wrktable.Sales_order_id,
Agmt_id= wrktable.Agmt_id,
Intl_Mobile_Equip_Identity_Nr=
wrktable.Intl_Mobile_Equip_Identity_Nr,
Mobile_Equip_Id_Nr= wrktable.Mobile_Equip_Id_Nr,
Payment_Term_Cd= wrktable.Payment_Term_Cd,
Payment_Term_Desc= wrktable.Payment_Term_Desc,
Item_LC_Amt= wrktable.Item_LC_Amt,
MSA_Nr= wrktable.MSA_Nr,
Univesral_Prod_Cd=wrktable.Univesral_Prod_Cd,----------Added as
Part of rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
AppleCare_Sales_Dt=wrktable.AppleCare_Sales_Dt,----------Added as
Part of rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
Unit_price_amt= wrktable.Unit_price_amt,
Tax_Amt= wrktable.Tax_Amt,
Billing_Qty= wrktable.Billing_Qty,
ETL_Change_Batch_Sk= semantic_batch_sk,
ETL_Change_Ts = current_timestamp(0),
ETL_Action_Cd='U'
WHEN NOT MATCHED THEN
INSERT
(
Invoice_id,
Invoice_Item_Nr,
Invoice_dt,
Sold_To_Cust_Id,
cust_name,
Ship_To_Cust_Id,
Bill_To_Cust_Id,
Invoice_Type_Cd,
Payer_Cust_Id,
INVOICE_TYPE_DESC,
cust_po_nr,
Serial_Nr,
Line_Item_Nr,
prod_id,
prod_desc,
Total_Amt,
Total_net_amt,
MRC_Flag_cd,
Market_Data_Field_name,
Sales_order_id,
Agmt_id,
Intl_Mobile_Equip_Identity_Nr,
Mobile_Equip_Id_Nr,
order_id,
Order_Item_nr,
Payment_Term_Cd,
Payment_Term_Desc,
Item_LC_Amt,
MSA_Nr,
Univesral_Prod_Cd,----------Added as Part of rdar://71249209 (Add
Sales date to GBI Auto Enroll CAE-2.0 report)
AppleCare_Sales_Dt,----------Added as Part of rdar://71249209
(Add Sales date to GBI Auto Enroll CAE-2.0 report)
Unit_price_amt,
Tax_Amt,
Billing_Qty,
ETL_Change_Ts,
ETL_Change_Batch_Sk,
ETL_Action_Cd
)
VALUES
(
wrktable.Invoice_id,
wrktable.Invoice_Item_Nr,
wrktable.Invoice_dt,
wrktable.Sold_To_Cust_Id,
wrktable.cust_name,
wrktable.Ship_To_Cust_Id,
wrktable.Bill_To_Cust_Id,
wrktable.Invoice_Type_Cd,
wrktable.Payer_Cust_Id,
wrktable.INVOICE_TYPE_DESC,
wrktable.cust_po_nr,
wrktable.Serial_Nr,
wrktable.Line_Item_Nr,
wrktable.prod_id,
wrktable.prod_desc,
wrktable.Total_Amt,
wrktable.Total_net_amt,
wrktable.MRC_Flag_cd,
wrktable.Market_Data_Field_name,
wrktable.Sales_order_id,
wrktable.Agmt_id,
wrktable.Intl_Mobile_Equip_Identity_Nr,
wrktable.Mobile_Equip_Id_Nr,
wrktable.order_id,
wrktable.Order_Item_nr,
wrktable.Payment_Term_Cd,
wrktable.Payment_Term_Desc,
wrktable.Item_LC_Amt,
wrktable.MSA_Nr,
wrktable.Univesral_Prod_Cd,----------Added as Part of
rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
wrktable.AppleCare_Sales_Dt,----------Added as Part of
rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
wrktable.Unit_price_amt,
wrktable.Tax_Amt,
wrktable.Billing_Qty,
current_timestamp(0),
semantic_batch_sk,
'I'
);

SET ln_rows_merged_tbl_1 = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET LN_STEP_NUMBER = LN_STEP_NUMBER+1;
SET lv_msg = 'MERGED RECORDS INTO artemis_app.Reseller_Auto_Enroll_Invoice';
CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',LN_STEP_NUMBER,LV_PROCESS_NAME,'artemis_ap
p.Reseller_Auto_Enroll_Invoice',LN_PROCESS_RUN_ID,semantic_batch_sk,i_v_etl_process
_sk,1,lv_msg,CURRENT_TIMESTAMP,lv_Source_application_name,

0,0,0,ln_rows_merged_tbl_1,0,LD_START_TS,LD_END_TS);

----Updating the main table from Ac_Grx_Order_Reg where Ac_Grx_Order_Reg values are
NULL------

UPDATE main
FROM artemis_app.Reseller_Auto_Enroll_Invoice main,
(SELECT distinct grx_reg.Mthly_Payment_Cd,
grx_reg.Mkt_Field_Val,
grx_reg.Agmt_Id,
grx_reg.MSA_Nr,
order_reg.web_order_id,
cast(grx_reg.apc_sales_ts as date) as AppleCare_Sales_Dt----------Added as
Part of rdar://71249209 (Add Sales date to GBI Auto Enroll CAE-2.0 report)
FROM Artemis.Ac_Grx_Order_Reg grx_reg
LEFT JOIN artemis.order_item_extended order_reg
ON grx_reg.Agmt_Id = order_reg.Web_Order_Id
AND order_reg.source_id = 'SC2'
where (Mthly_Payment_Cd IS NOT NULL
OR Mkt_Field_Val IS NOT NULL
OR Agmt_Id IS NOT NULL
OR MSA_Nr IS NOT NULL
OR apc_sales_ts is NOT NULL)
and grx_reg.etl_change_batch_sk BETWEEN li_grx_min_bsk AND li_grx_max_bsk
) grx_reg
SET MRC_Flag_cd = grx_reg.Mthly_Payment_Cd,
Market_Data_Field_name = grx_reg.Mkt_Field_Val,
Agmt_id = grx_reg.Agmt_Id,
MSA_Nr = grx_reg.MSA_Nr,
AppleCare_Sales_Dt=grx_reg.AppleCare_Sales_Dt,
ETL_Change_Ts = CURRENT_TIMESTAMP(0),
ETL_Change_Batch_Sk = semantic_batch_sk,
ETL_Action_Cd = 'U'
WHERE main.Agmt_Id = grx_reg.Web_Order_Id
AND (main.MRC_Flag_cd IS NULL OR main.Market_Data_Field_name IS NULL OR
main.MSA_Nr IS NULL OR main.Agmt_id IS NULL or main.AppleCare_Sales_Dt is NULL);

----Updating the main table from fact_install_base where fact_install_base values


are NULL------
UPDATE main
FROM artemis_app.Reseller_Auto_Enroll_Invoice main,
artemis.fact_install_base iphone_extd
SET Intl_Mobile_Equip_Identity_Nr = iphone_extd.imei,
Mobile_Equip_Id_Nr = iphone_extd.meid,
ETL_Change_Ts = CURRENT_TIMESTAMP(0),
ETL_Change_Batch_Sk = semantic_batch_sk,
ETL_Action_Cd = 'U'
WHERE coalesce(main.Serial_Nr,-1) = iphone_extd.Serial_Nr
AND (main.Intl_Mobile_Equip_Identity_Nr IS NULL )
AND (iphone_extd.imei IS NOT NULL );

UPDATE main
FROM artemis_app.Reseller_Auto_Enroll_Invoice main,
artemis.fact_install_base iphone_extd
SET Intl_Mobile_Equip_Identity_Nr = iphone_extd.imei,
Mobile_Equip_Id_Nr = iphone_extd.meid,
ETL_Change_Ts = CURRENT_TIMESTAMP(0),
ETL_Change_Batch_Sk = semantic_batch_sk,
ETL_Action_Cd = 'U'
WHERE coalesce(main.Serial_Nr,-1) = iphone_extd.Serial_Nr
AND ( main.Mobile_Equip_Id_Nr IS NULL)
AND (iphone_extd.meid IS NOT NULL);

Collect stat on artemis_app.Reseller_Auto_Enroll_Invoice column


ETL_Change_Batch_Sk;

--- Fiscal table is populated for replication it to Vertica------

Delete from artemis_app.fiscal_table all;

MERGE INTO artemis_app.fiscal_table fisc


USING artemis.fiscal_calendar wrk ON fisc.fiscal_dt = wrk.fiscal_dt
and wrk.fiscal_dt >= '2018-01-01'
WHEN MATCHED THEN UPDATE
SET Fiscal_Ts = wrk.Fiscal_Ts,
Day_Name = wrk.Day_Name,
Weekday_Ind = wrk.Weekday_Ind,
Day_In_Fiscal_Week = wrk.Day_In_Fiscal_Week,
Day_In_Fiscal_Period = wrk.Day_In_Fiscal_Period,
Day_In_Fiscal_Quarter = wrk.Day_In_Fiscal_Quarter,
Day_In_Fiscal_Year = wrk.Day_In_Fiscal_Year,
Week_In_Fiscal_Period = wrk.Week_In_Fiscal_Period,
Week_In_Fiscal_Quarter = wrk.Week_In_Fiscal_Quarter,
Fiscal_Period_Weeks_Cnt = wrk.Fiscal_Period_Weeks_Cnt,
Fiscal_Quarter_Weeks_Cnt = wrk.Fiscal_Quarter_Weeks_Cnt,
Fiscal_Year = wrk.Fiscal_Year,
Fiscal_Quarter = wrk.Fiscal_Quarter,
Fiscal_Period = wrk.Fiscal_Period,
Fiscal_Week = wrk.Fiscal_Week,
Week_Begin_Dt = wrk.Week_Begin_Dt,
Week_End_Dt = wrk.Week_End_Dt,
Period_Begin_Dt = wrk.Period_Begin_Dt,
Period_End_Dt = wrk.Period_End_Dt,
Quarter_Begin_Dt = wrk.Quarter_Begin_Dt,
Qtr_End_Dt = wrk.Qtr_End_Dt,
Year_Begin_Dt = wrk.Year_Begin_Dt,
Year_End_Dt = wrk.Year_End_Dt,
Std_Fiscal_Year_Period = wrk.Std_Fiscal_Year_Period,
Std_Fiscal_Year_Quarter = wrk.Std_Fiscal_Year_Quarter,
Std_Fiscal_Year_Week = wrk.Std_Fiscal_Year_Week,
Std_Fiscal_Year_Name = wrk.Std_Fiscal_Year_Name,
Std_Fiscal_Year_Quarter_Name = wrk.Std_Fiscal_Year_Quarter_Name,
Std_Fiscal_Year_Period_Name = wrk.Std_Fiscal_Year_Period_Name,
Std_Fiscal_Year_Week_Name = wrk.Std_Fiscal_Year_Week_Name,
Std_Fiscal_Period_Week_Name = wrk.Std_Fiscal_Period_Week_Name,
Std_Fiscal_Period_Name = wrk.Std_Fiscal_Period_Name,
std_year_begin_dt = wrk.std_year_begin_dt,
std_year_end_dt = wrk.std_year_end_dt,
std_quarter_begin_dt = wrk.std_quarter_begin_dt,
std_quarter_End_Dt = wrk.std_quarter_End_Dt,
std_period_begin_dt = wrk.std_period_begin_dt,
std_period_end_dt = wrk.std_period_end_dt,
std_Week_Begin_Dt = wrk.std_Week_Begin_Dt,
std_Week_End_Dt = wrk.std_Week_End_Dt,
ETL_Batch_Sk = semantic_batch_sk,
ETL_Action_Cd = 'U',
ETL_Change_Ts = CURRENT_TIMESTAMP(0)
WHEN NOT MATCHED THEN
INSERT
(
Fiscal_Dt,
Fiscal_Ts,
Day_Name,
Weekday_Ind,
Day_In_Fiscal_Week,
Day_In_Fiscal_Period,
Day_In_Fiscal_Quarter,
Day_In_Fiscal_Year,
Week_In_Fiscal_Period,
Week_In_Fiscal_Quarter,
Fiscal_Period_Weeks_Cnt,
Fiscal_Quarter_Weeks_Cnt,
Fiscal_Year,
Fiscal_Quarter,
Fiscal_Period,
Fiscal_Week,
Week_Begin_Dt,
Week_End_Dt,
Period_Begin_Dt,
Period_End_Dt,
Quarter_Begin_Dt,
Qtr_End_Dt,
Year_Begin_Dt,
Year_End_Dt,
Std_Fiscal_Year_Period,
Std_Fiscal_Year_Quarter,
Std_Fiscal_Year_Week,
Std_Fiscal_Year_Name,
Std_Fiscal_Year_Quarter_Name,
Std_Fiscal_Year_Period_Name,
Std_Fiscal_Year_Week_Name,
Std_Fiscal_Period_Week_Name,
Std_Fiscal_Period_Name,
std_year_begin_dt,
std_year_end_dt,
std_quarter_begin_dt,
std_quarter_End_Dt,
std_period_begin_dt,
std_period_end_dt,
std_Week_Begin_Dt,
std_Week_End_Dt,
ETL_Batch_Sk,
ETL_Action_Cd,
ETL_Change_Ts

)
VALUES
(
wrk.Fiscal_Dt,
wrk.Fiscal_Ts,
wrk.Day_Name,
wrk.Weekday_Ind,
wrk.Day_In_Fiscal_Week,
wrk.Day_In_Fiscal_Period,
wrk.Day_In_Fiscal_Quarter,
wrk.Day_In_Fiscal_Year,
wrk.Week_In_Fiscal_Period,
wrk.Week_In_Fiscal_Quarter,
wrk.Fiscal_Period_Weeks_Cnt,
wrk.Fiscal_Quarter_Weeks_Cnt,
wrk.Fiscal_Year,
wrk.Fiscal_Quarter,
wrk.Fiscal_Period,
wrk.Fiscal_Week,
wrk.Week_Begin_Dt,
wrk.Week_End_Dt,
wrk.Period_Begin_Dt,
wrk.Period_End_Dt,
wrk.Quarter_Begin_Dt,
wrk.Qtr_End_Dt,
wrk.Year_Begin_Dt,
wrk.Year_End_Dt,
wrk.Std_Fiscal_Year_Period,
wrk.Std_Fiscal_Year_Quarter,
wrk.Std_Fiscal_Year_Week,
wrk.Std_Fiscal_Year_Name,
wrk.Std_Fiscal_Year_Quarter_Name,
wrk.Std_Fiscal_Year_Period_Name,
wrk.Std_Fiscal_Year_Week_Name,
wrk.Std_Fiscal_Period_Week_Name,
wrk.Std_Fiscal_Period_Name,
wrk.std_year_begin_dt,
wrk.std_year_end_dt,
wrk.std_quarter_begin_dt,
wrk.std_quarter_End_Dt,
wrk.std_period_begin_dt,
wrk.std_period_end_dt,
wrk.std_Week_Begin_Dt,
wrk.std_Week_End_Dt,
semantic_batch_sk,
'I',
CURRENT_TIMESTAMP(0)

);

/*
INSERT into artemis_app.fiscal_table
(
Fiscal_Dt,
Fiscal_Ts,
Day_Name,
Weekday_Ind,
Day_In_Fiscal_Week,
Day_In_Fiscal_Period,
Day_In_Fiscal_Quarter,
Day_In_Fiscal_Year,
Week_In_Fiscal_Period,
Week_In_Fiscal_Quarter,
Fiscal_Period_Weeks_Cnt,
Fiscal_Quarter_Weeks_Cnt,
Fiscal_Year,
Fiscal_Quarter,
Fiscal_Period,
Fiscal_Week,
Week_Begin_Dt,
Week_End_Dt,
Period_Begin_Dt,
Period_End_Dt,
Quarter_Begin_Dt,
Qtr_End_Dt,
Year_Begin_Dt,
Year_End_Dt,
Std_Fiscal_Year_Period,
Std_Fiscal_Year_Quarter,
Std_Fiscal_Year_Week,
Std_Fiscal_Year_Name,
Std_Fiscal_Year_Quarter_Name,
Std_Fiscal_Year_Period_Name,
Std_Fiscal_Year_Week_Name,
Std_Fiscal_Period_Week_Name,
Std_Fiscal_Period_Name,
std_year_begin_dt,
std_year_end_dt,
std_quarter_begin_dt,
std_quarter_End_Dt,
std_period_begin_dt,
std_period_end_dt,
std_Week_Begin_Dt,
std_Week_End_Dt,
ETL_Batch_Sk,
ETL_Action_Cd,
ETL_Change_Ts

)
SELECT wrk.Fiscal_Dt,
wrk.Fiscal_Ts,
wrk.Day_Name,
wrk.Weekday_Ind,
wrk.Day_In_Fiscal_Week,
wrk.Day_In_Fiscal_Period,
wrk.Day_In_Fiscal_Quarter,
wrk.Day_In_Fiscal_Year,
wrk.Week_In_Fiscal_Period,
wrk.Week_In_Fiscal_Quarter,
wrk.Fiscal_Period_Weeks_Cnt,
wrk.Fiscal_Quarter_Weeks_Cnt,
wrk.Fiscal_Year,
wrk.Fiscal_Quarter,
wrk.Fiscal_Period,
wrk.Fiscal_Week,
wrk.Week_Begin_Dt,
wrk.Week_End_Dt,
wrk.Period_Begin_Dt,
wrk.Period_End_Dt,
wrk.Quarter_Begin_Dt,
wrk.Qtr_End_Dt,
wrk.Year_Begin_Dt,
wrk.Year_End_Dt,
wrk.Std_Fiscal_Year_Period,
wrk.Std_Fiscal_Year_Quarter,
wrk.Std_Fiscal_Year_Week,
wrk.Std_Fiscal_Year_Name,
wrk.Std_Fiscal_Year_Quarter_Name,
wrk.Std_Fiscal_Year_Period_Name,
wrk.Std_Fiscal_Year_Week_Name,
wrk.Std_Fiscal_Period_Week_Name,
wrk.Std_Fiscal_Period_Name,
wrk.std_year_begin_dt,
wrk.std_year_end_dt,
wrk.std_quarter_begin_dt,
wrk.std_quarter_End_Dt,
wrk.std_period_begin_dt,
wrk.std_period_end_dt,
wrk.std_Week_Begin_Dt,
wrk.std_Week_End_Dt,
semantic_batch_sk,
'I',
CURRENT_TIMESTAMP(0)
FROM artemis.fiscal_calendar wrk
WHERE wrk.fiscal_dt >= '2018-01-01'
AND fiscal_dt NOT IN (SELECT fiscal_dt FROM artemis_app.fiscal_table);
*/

--------Purging Main table data for data older than 1 Year-----------

SET lv_msg='Deleting Data from artemis_app.Reseller_Auto_Enroll_Invoice';


SET ld_start_ts=CURRENT_TIMESTAMP;

DELETE FROM artemis_app.Reseller_Auto_Enroll_Invoice carrier


Where carrier.Invoice_Dt < li_roll_min_Dt;

SET ln_rows_deleted_tbl_1 = ACTIVITY_COUNT;


SET ln_step_number = ln_step_number+1;
SET ld_end_ts=CURRENT_TIMESTAMP;

SET lv_msg='Deleted Records from artemis_app.Reseller_Auto_Enroll_Invoice';


CALL
ARTEMIS_USER.process_run_log_details('D',ln_step_number,lv_process_name,'artemis_ap
p.Reseller_Auto_Enroll_Invoice',ln_process_run_id,semantic_batch_sk,i_v_etl_process
_sk , 1 ,lv_msg,CURRENT_TIMESTAMP(6),lv_Source_application_name

,0,0,ln_rows_deleted_tbl_1,0,0,ld_start_ts,ld_end_ts);

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------
---------------------------------------------UPDATE METADATA TO REFLECT RUN
COMPLETED---------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------

SET lv_msg='Updating artemis_app.cae_2_constant ';


SET ld_start_ts=CURRENT_TIMESTAMP;

UPDATE artemis_app.cae_2_constant
SET constant_val = COALESCE(CAST(li_invoice_max_bsk AS CHAR(1000)),-1),
batch_processed_ts = CURRENT_TIMESTAMP(0)
WHERE constant_id =li_invoice_constant_id ;

UPDATE artemis_app.cae_2_constant
SET constant_val = COALESCE(CAST(li_delivery_max_bsk AS CHAR(1000)),-1),
batch_processed_ts = CURRENT_TIMESTAMP(0)
WHERE constant_id =li_delivery_constant_id ;

UPDATE artemis_app.cae_2_constant
SET constant_val = COALESCE(CAST(li_order_max_bsk AS CHAR(1000)),-1),
batch_processed_ts = CURRENT_TIMESTAMP(0)
WHERE constant_id =li_order_constant_id ;

UPDATE artemis_app.cae_2_constant
SET constant_val = COALESCE(CAST(li_price_max_bsk AS CHAR(1000)),-1),
batch_processed_ts = CURRENT_TIMESTAMP(0)
WHERE constant_id =li_price_constant_id ;

UPDATE artemis_app.cae_2_constant
SET constant_val = COALESCE(CAST(li_grx_max_bsk AS CHAR(1000)),-1),
batch_processed_ts = CURRENT_TIMESTAMP(0)
WHERE constant_id =li_grx_constant_id ;

SET ln_rows_updated_tbl_1 = ACTIVITY_COUNT;


SET ld_end_ts=CURRENT_TIMESTAMP;
SET ln_step_number = ln_step_number+1;

CALL
ARTEMIS_USER.PROCESS_RUN_LOG_DETAILS('D',ln_step_number,lv_process_name,'artemis_ap
p.cae_2_constant',ln_process_run_id,semantic_batch_sk,i_v_etl_process_sk,1,lv_msg,C
URRENT_TIMESTAMP,lv_source_application_name

,0,ln_rows_updated_tbl_1,0,0,0,ld_start_ts,ld_end_ts);
-- Deleting from Adhoc request Table-----

DELETE FROM artemis_app.Adhoc_invoice_req ALL;


SET lv_out_status = 'COMPLETED';
SET lv_msg = 'DML performed on tables and the rows affected by them are recorded:
Procedure Ended';

SELECT CURRENT_TIMESTAMP(6) INTO ld_end_ts;

CALL
ARTEMIS_USER.process_run_log_details('U',ln_step_number,lv_process_name,'artemis_ap
p.Reseller_Auto_Enroll_Invoice',ln_process_run_id,semantic_batch_sk,i_v_etl_process
_sk,1,lv_msg,CURRENT_TIMESTAMP,lv_Source_Application_Name,

ln_rows_added_tbl_1,ln_rows_updated_tbl_1,ln_rows_deleted_tbl_1,ln_rows_merged_tbl_
1,ln_rows_affected_tbl_1,ld_start_ts,ld_end_ts);

END;

You might also like