USE DATABASE PSR_PLAT_LPDM_DB;
USE SCHEMA "ABF8FE63-8405-45C6-8BEA-668BE7B73531";
/*** CHANGE SCHEMA as Needed. Change SAS_TOKEN to latest one if not working */
CREATE OR REPLACE TEMPORARY FILE FORMAT csv_format TYPE = 'CSV' COMPRESSION =
'GZIP' FIELD_DELIMITER = ',';
CREATE OR REPLACE TEMPORARY STAGE csv_stage
URL='azure://[Link]/psr-container/
rajneesh/100M-Retail-Kiran' CREDENTIALS=(AZURE_SAS_TOKEN= 'sp=racwdli&st=2025-04-
12T[Link]Z&se=2025-04-29T[Link]Z&spr=https&sv=2024-11-
04&sr=c&sig=CIe3z2R4FQiuOU%2BlNphDuAt8GKZTErYZMp%2F6pATrG04%3D') FILE_FORMAT =
csv_format;
--CRTD_ITEM
delete from crtd_item;
COPY INTO RAW_DIM_ITEM (ITEM,PLANLEVEL)
from (select t.$1,-1 FROM @csv_stage/ITEM/ t);
select count(1) from raw_dim_item;
select count(1) from dim_item;
}
{
--CRTD_LOCATION
COPY INTO RAW_DIM_LOCATION (LOCATION,TYPELOCATION )
from (select t.$1, t.$3 FROM @csv_stage/LOC/ t);
select count(1) from raw_dim_location;
select count(1) from dim_location;
}
{
-- CRTD_ITEM_LOCATION
COPY into RAW_INT_ITEMLOCATION(
ITEM, LOCATION, ITEMLOCATION_ARRIVALPOSTDATE,ITEMLOCATION_SHIPDATADUR,
ITEMLOCATION_FORECASTDURATION,
ITEMLOCATION_MSEMASKMINIMUMVALUE,
ITEMLOCATION_OHPOST, ITEMLOCATION_RECREPLENPOLICY, ITEMLOCATION_CALCULATEMSERULE,
ITEMLOCATION_AVGRQSNSIZE, ITEMLOCATION_STORABLESW,ITEMLOCATION_MSEMASKMAXIMUMVALUE,
ITEMLOCATION_DEMANDPOSTDATE, ITEMLOCATION_DISCONTINUEDATETIME,
ITEMLOCATION_LEADTIMEDMDVRNCSW,
ITEMLOCATION_SAFETYSTOCKCOVERAGEDURATION, ITEMLOCATION_MSELAG,
ITEMLOCATION_PLANLEVEL,
ITEMLOCATION_REPLENPOLICY, ITEMLOCATION_DEMANDCALENDAR, ITEMLOCATION_STATSSCSL,
ITEMLOCATION_ALLOWEARLYARRIVSW,ITEMLOCATION_FCSTSOURCE, ITEMLOCATION_SHIPLAG,
ITEMLOCATION_NETCHANGESWITCH, ITEMLOCATION_MSEMASKOPTION,
ITEMLOCATION_MSEPERIOD,ITEMLOCATION_SKUGROUP,ITEMLOCATION_SENSITIVITYID,
ITEMLOCATION_REVIEWGROUP,ITEMLOCATION_EFFECTIVEDATETIME,
ITEMLOCATION_SSTEMPLATE
) From
(select
t.$1 AS ITEM,
t.$2 AS LOCATION,
to_date('01/01/1970', 'dd/MM/yyyy') AS ITEMLOCATION_ARRIVALPOSTDATE,
10080 AS ITEMLOCATION_SHIPDATADUR,
10080 AS ITEMLOCATION_FORECASTDURATION,
0 AS ITEMLOCATION_MSEMASKMINIMUMVALUE,
to_date('01/04/2023', 'dd/MM/yyyy') AS ITEMLOCATION_OHPOST,
- 1 AS ITEMLOCATION_RECREPLENPOLICY,
6 AS ITEMLOCATION_CALCULATEMSERULE,
1 AS ITEMLOCATION_AVGRQSNSIZE,
TRUE AS ITEMLOCATION_STORABLESW,
0 AS ITEMLOCATION_MSEMASKMAXIMUMVALUE,
to_date('01/01/2024', 'dd/MM/yyyy') AS ITEMLOCATION_DEMANDPOSTDATE,
to_date('01/01/1970', 'dd/MM/yyyy') AS ITEMLOCATION_DISCONTINUEDATETIME,
0 AS ITEMLOCATION_LEADTIMEDMDVRNCSW,
0 AS ITEMLOCATION_SAFETYSTOCKCOVERAGEDURATION,
0 AS ITEMLOCATION_MSELAG,
-1 AS ITEMLOCATION_PLANLEVEL,
2 AS ITEMLOCATION_REPLENPOLICY,
'DMDWEEK' AS ITEMLOCATION_DEMANDCALENDAR,
0 AS ITEMLOCATION_STATSSCSL,
FALSE AS ITEMLOCATION_ALLOWEARLYARRIVSW,
1 AS ITEMLOCATION_FCSTSOURCE,
0 AS ITEMLOCATION_SHIPLAG,
FALSE AS ITEMLOCATION_NETCHANGESWITCH,
0 AS ITEMLOCATION_MSEMASKOPTION,
53 AS ITEMLOCATION_MSEPERIOD,
' ' AS ITEMLOCATION_SKUGROUP,
' ' AS ITEMLOCATION_SENSITIVITYID,
' ' as ITEMLOCATION_REVIEWGROUP,
to_date('01/01/1970', 'dd/MM/yyyy') AS ITEMLOCATION_EFFECTIVEDATETIME,
' ' as ITEMLOCATION_SSTEMPLATE
FROM @csv_stage/SKU/ t);
select count(1) from raw_int_itemlocation;
select count(1) from int_itemlocation;
{
-- CRTD_ITEMLOCATIONEFFECTIVEPARAMETER
COPY INTO RAW_INT_ITEMLOCATIONEFFECTIVEPARAMETER(
ITEM,LOCATION,ITEMLOCATIONEFFECTIVEPARAMETER_EFF,
ITEMLOCATIONEFFECTIVEPARAMETER_IOSERVICEPARAMETERID,ITEMLOCATIONEFFECTIVEPARAMETER_
REPLENPOLICY,
ITEMLOCATIONEFFECTIVEPARAMETER_BACKORDERPENALTY,ITEMLOCATIONEFFECTIVEPARAMETER_ORDE
RSIZE,
ITEMLOCATIONEFFECTIVEPARAMETER_REORDERQTYOPTION,ITEMLOCATIONEFFECTIVEPARAMETER_MINR
EORDERQTY,
ITEMLOCATIONEFFECTIVEPARAMETER_MAXREORDERQTY,ITEMLOCATIONEFFECTIVEPARAMETER_MINCOVD
UR,
ITEMLOCATIONEFFECTIVEPARAMETER_MAXCOVDUR,
ITEMLOCATIONEFFECTIVEPARAMETER_ENDOFLIFEDMD,
ITEMLOCATIONEFFECTIVEPARAMETER_STOCKOUTPENALTY,ITEMLOCATIONEFFECTIVEPARAMETER_HANDL
INGCOST,
ITEMLOCATIONEFFECTIVEPARAMETER_UNITCOST,ITEMLOCATIONEFFECTIVEPARAMETER_CELLWGT,
ITEMLOCATIONEFFECTIVEPARAMETER_EVENTTYPE,ITEMLOCATIONEFFECTIVEPARAMETER_HOLDINGCOST
,
ITEMLOCATIONEFFECTIVEPARAMETER_REVIEWPERIOD,ITEMLOCATIONEFFECTIVEPARAMETER_COEFFVAR
,
ITEMLOCATIONEFFECTIVEPARAMETER_ORDERCOST)
from(
select t.$1, t.$2, to_date('01/01/1970','dd/MM/yyyy'),
'95_cagserviceprofile', 2,
0, 1,
0,-1 ,
-1, -1,
-1, 0,
5, 5,
10, 0,
0, 5,
0, 0,
5,
FROM @csv_stage/SKU/ t);
select count(1) from RAW_INT_ITEMLOCATIONEFFECTIVEPARAMETER;
select count(1) from INT_ITEMLOCATIONEFFECTIVEPARAMETER;
--CRTD_DEMANDCHANNEL
COPY into raw_dim_customer(channel, customer)
from (
select
t.$1, t.$1
FROM @csv_stage/DMDGROUP/ t);
{
--CRTD_MFG_ITEMLOCCUST
copy into raw_int_itemlocationcustomerintersection(
ITEM,LOCATION,CUSTOMER,
ITEMLOCATIONCUSTOMERINTERSECTION_DEMANDPOSTDATE,
ITEMLOCATIONCUSTOMERINTERSECTION_ERRORPERIOD,
ITEMLOCATIONCUSTOMERINTERSECTION_FORECASTLAG,
ITEMLOCATIONCUSTOMERINTERSECTION_DEMANDCALENDAR)
from(SELECT
t.$1 AS ITEM,
t.$2 AS LOCATION,
t.$3 AS CUSTOMER,
to_date('01/01/2024', 'dd/MM/yyyy') AS DEMANDPOSTDATETIME,
53 AS ERRORPERIOD,
0 AS FORECASTLAG,
'DMDWEEK' AS DEMANDCALENDAR
FROM @csv_stage/SKUDMDGROUPPARAM/ t);
{
--CRTD_EXT_ITEMLOCATIONCUSTOMEREFFECTIVITY
COPY INTO RAW_INT_ITEMLOCATIONCUSTOMEREFFECTIVITY(
ITEM,LOCATION,CUSTOMER,ITEMLOCATIONCUSTOMEREFFECTIVITY_IOSERVICEPARAMETERID,ITEMLOC
ATIONCUSTOMEREFFECTIVITY_EFF,
ITEMLOCATIONCUSTOMEREFFECTIVITY_ORDERSIZE)
from(
SELECT
t.$1 AS ITEM,
t.$2 AS LOCATION,
t.$3 AS CUSTOMER,
'95_cagserviceprofile',
to_date('01/01/1970', 'dd/MM/yyyy'),
1 AS ORDERSIZE
FROM @csv_stage/SKUDMDGROUPPARAM/ t);
{
-- CRTD_DISTRIBUTIONNETWORK
COPY INTO RAW_INT_NETWORK(
NETWORK_TRANSMODE, NETWORK_SOURCELOCATION,LOCATION,
NETWORK_TRANSLEADTIME,NETWORK_TRANSLEADTIMESD,
NETWORK_LOADDURATION,NETWORK_UNLOADDURATION)
from (
select
t.$1 AS TRANSPORTEQUIPMENTTYPE,
t.$2 AS SOURCELOCATIONID,
t.$3 AS DESTINATIONLOCATIONID,
t.$4 AS TRANSITDURATION,
t.$5 AS EXT_TRANSITLEADTIMESTANDARDDEVIATION,
0,0
FROM @csv_stage/NETWORK/ t);
select count(1) from raw_int_network;
select count(1) from int_network;
{
--crtd_supplymethod (sourcing)
COPY INTO RAW_INT_SUPPLYMETHOD (
ITEM,SUPPLYMETHOD_SOURCELOCATION,LOCATION,SUPPLYMETHOD_EFF,SUPPLYMETHOD_DISC,
SUPPLYMETHOD_SPLITFACTOR,SUPPLYMETHOD_SUPPLYMETHOD,SUPPLYMETHOD_TRANSMODE,SUPPLYMET
HOD_TRANSCOST,
SUPPLYMETHOD_DELAYPROB,SUPPLYMETHOD_REPLENDUR,SUPPLYMETHOD_LOADDUR,SUPPLYMETHOD_UNL
OADDUR,SUPPLYMETHOD_UNITSUPPLYMETHODCOST,SUPPLYMETHOD_TYPE)
from (
select
t.$1 as ITEMID,
t.$3 AS SOURCELOCATIONID,
t.$2 AS LOCATIONID,
to_date('01/01/1970', 'dd/MM/yyyy') AS EFFECTIVEFROMDATE,
to_date('01/01/1970', 'dd/MM/yyyy') AS EFFECTIVEUPTODATETIME,
t.$6 as SPLITFACTOR,
t.$1||t.$2||t.$3 AS SUPPLYMETHOD,
t.$4 as TRANSPORTMODE,
0 AS EXT_TRANSCOST,
t.$5 as EXT_DELAYPROB,
0 AS EXT_REPLENDUR,
0 AS LOADDUR,
0 AS UNLOADDUR,
1 AS UNITCOST,
'DISTRIBUTION' AS SUPPLYMETHOD_TYPE
FROM @csv_stage/SOURCING/ t);
select count(1) from int_supplymethod;
--crtd_supplymethod (productionmethod)
COPY INTO RAW_INT_SUPPLYMETHOD (
ITEM,SUPPLYMETHOD_SOURCELOCATION,LOCATION, SUPPLYMETHOD_EFF,SUPPLYMETHOD_DISC,
SUPPLYMETHOD_SPLITFACTOR,SUPPLYMETHOD_SUPPLYMETHOD,
SUPPLYMETHOD_UNITSUPPLYMETHODCOST,SUPPLYMETHOD_BOMID,
SUPPLYMETHOD_LEADTIME,SUPPLYMETHOD_LEADTIMEVARIANCE,
SUPPLYMETHOD_TYPE,SUPPLYMETHOD_TRANSMODE,
SUPPLYMETHOD_DELAYPROB,SUPPLYMETHOD_REPLENDUR,SUPPLYMETHOD_LOADDUR,SUPPLYMETHOD_UNL
OADDUR, SUPPLYMETHOD_TRANSCOST)
FROM(
select
t.$2,
t.$3,
t.$3,
to_date('01/01/1970', 'dd/MM/yyyy') AS EFFECTIVEFROMDATE,
to_date('01/01/1970', 'dd/MM/yyyy') AS EFFECTIVEUPTODATETIME,
t.$8 as SPLITFACTOR,
t.$1 AS SUPPLYMETHOD,
t.$7 AS UNITCOST,
t.$4 AS BOMNUMBER,
t.$5 as LEADTIME,
t.$6 AS LEADTIMEVARIANCE,
'MANUFACTURING' AS SUPPLYMETHODTYPE,
'',
0,0,0,0,0
FROM @csv_stage/PRODUCTIONMETHOD/ t)
ON_ERROR = CONTINUE;
}
{
-- CRTD_BILLOFMATERIAL
COPY INTO RAW_INT_BOM (ITEM,LOCATION,BOM_CONSUMEITEM,BOM_CONSUMELOCATION,
BOM_BOMID,BOM_EFF,BOM_DISC,BOM_DRAWQTY,BOM_YIELDFACTOR,BOM_ALTCONSUMEITEM,BOM_OFFSE
T)
from (
select
t.$1 as ITEM,
t.$2 as LOC,
t.$3 as SUBORD,
t.$2 as SUBORDLOC,
t.$5 AS BOMNUM,
to_date('01/01/1970', 'dd/MM/yyyy') AS DISC,
to_date('01/01/1970', 'dd/MM/yyyy') AS EFF,
t.$4 AS DRAWQTY,
100 as YIELDFACTOR,
'',1
FROM @csv_stage/BOM/ t);
}
/**** IMPORTANT****/
--BEFORE CONTINUING FURTHER RUN THE MERGE WRITE BACK FIRST
/*******************/
{
--crtd_forecast
INSERT INTO
RAW_INT_FORECAST(ITEM,LOCATION,FORECAST_STARTDATE,FORECAST_QTY,FORECAST_FORECASTTYP
ECODE,FORECAST_DUR)
select [Link], [Link], dateadd('day', value, to_date('01/01/2024')),
uniform(5, 50, random()),
0,10080
from table(flatten(array_generate_range(0, 365, 7))) dd,
int_itemlocation cust
where [Link] like '%STORE%';
select count(1) from int_forecast;
{
--crtd_forecasthistory
insert into raw_int_forecasthistory(item, location,
FORECASTHISTORY_STARTDATE, FORECASTHISTORY_DURATION,
FORECASTHISTORY_BASEFORECASTQUANTITY,
FORECASTHISTORY_NONBASEFORECASTQUANTITY, FORECASTHISTORY_FORECASTLAG)
select [Link], [Link], dateadd('day', (-1*value), to_date('01/01/2024')),
10080,
uniform(500, 5000, random()),
0,0
from table(flatten(array_generate_range(0, 365, 7))) dd,
int_itemlocation cust
where [Link] like '%STORE%';
}
{
--crtd_forecasthistory
-- INSERT into raw_int_saleshistory(item, location, customer,
SALESHISTORY_CONFIRMEDDATE, SALESHISTORY_STARTDATE,SALESHISTORY_QUANTITY,
-- SALESHISTORY_ORDERLINEID, SALESHISTORY_CUSTOMERORDERID)
-- select [Link], [Link], '', dateadd('day', (-1*value),
to_date('01/01/2024')),
-- dateadd('day', (-1*value), to_date('01/01/2024')),
-- uniform(500, 5000, random()),
-- 1,1
-- from table(flatten(array_generate_range(0, 365, 7))) dd,
-- int_itemlocation cust
-- where [Link] like '%STORE%';
-- INSERT into crtd_inventory_transaction(item, location, STARTDATE,duration,
QUANTITY,
-- transactioncode)
-- select [Link], [Link], dateadd('day', (-1*value),
to_date('01/01/2024')),
-- 10080,
-- uniform(500, 5000, random()),
-- 11
-- from table(flatten(array_generate_range(0, 365, 7))) dd,
-- int_itemlocation cust
-- where [Link] like '%STORE%';
INSERT into raw_mgp_inventorytransactionweekly(item, location, STARTDATE,duration,
QUANTITY,
transactioncode)
select item, location, startdate, duration, qty, 11 from
(select [Link], [Link], dateadd('day', (-1*value), to_date('01/01/2024'))
startdate,
(select fiscalweek from dim_time where dim_time.fiscalweek_startdate =
dateadd('day', (-1*value), to_date('01/01/2024'))),
10080 as duration,
uniform(500, 5000, random()) as qty
from table(flatten(array_generate_range(0, 1, 7))) dd,
int_itemlocation cust, dim_time
where [Link] like '%STORE%NET1_1') history;, dim_time
where [Link] = dim_time.fiscalweek_startdate;
describe table raw_mgp_inventorytransactionweekly;
}
/** RUN MERGE WRITEBACK*/
/*** Data related to service profile calendar etc is in a separate folder. Creating
the stage to point to that folder*/
DROP STAGE csv_stage;
DROP FILE FORMAT csv_format;
CREATE OR REPLACE FILE FORMAT csv_format TYPE = 'CSV' COMPRESSION = 'GZIP'
FIELD_DELIMITER = ',';
CREATE OR REPLACE STAGE csv_stage
URL='azure://[Link]/psr-container/
rajneesh/CHANNEL-TEST' CREDENTIALS=(AZURE_SAS_TOKEN= 'sp=racwdli&st=2025-04-
12T[Link]Z&se=2025-04-29T[Link]Z&spr=https&sv=2024-11-
04&sr=c&sig=CIe3z2R4FQiuOU%2BlNphDuAt8GKZTErYZMp%2F6pATrG04%3D') FILE_FORMAT =
csv_format;
select * from RAW_INT_CALENDARPROFILE;
INSERT INTO RAW_INT_CALENDARPROFILE (profilename, CALENDARPROFILE_BUCKETSTART,
CALENDARPROFILE_TYPE, CALENDARPROFILE_BUCKETEND, CALENDARPROFILE_MASTERCALENDAR,
CALENDARPROFILE_DESCRIPTION, CALENDARPROFILE_RANK, CALENDARPROFILE_DAY,
CALENDARPROFILE_ATTRIBUTETYPE)
SELECT t.$1, t.$2, t.$3, t.$4, t.$5, t.$6, 1, 1, 1
FROM @csv_stage/CALENDARPROFILE t;
insert INTO RAW_DIM_PROFILE (profilename, PROFILETYPE)
select t.$1, t.$2 from @csv_stage/DIMPROFILE t,@csv_stage/CALENDARPROFILE t2 WHERE
t.$1 = t2.$1;
insert into raw_INT_CALDATA (profilename, CALDATA_PERIODWEIGHT, CALDATA_STARTDATE,
CALDATA_COVDUR, CALDATA_OPT, CALDATA_ALLOCWEIGHT, CALDATA_REPEAT)
select t.$1, t.$2, t.$3, t.$4, t.$5, t.$6, t.$7
from @csv_stage/CALDATA t,@csv_stage/CALENDARPROFILE t2 WHERE t.$1 = t2.$1;
insert into raw_DIM_IOSERVICEPARAMETER(ioserviceparameter)
select t.$1 from @csv_stage/DIMIOSERVICEPARAMETER t;
insert into raw_int_ioserviceparameter( IOSERVICEPARAMETER,
IOSERVICEPARAMETER_MAXRQSNCWT, IOSERVICEPARAMETER_MAXCWT,
IOSERVICEPARAMETER_MAXCSL,IOSERVICEPARAMETER_MINRQSNCWT, IOSERVICEPARAMETER_MINCWT,
IOSERVICEPARAMETER_MINCSL)
select t.$1, t.$2, t.$3, t.$4, t.$5, t.$6, t.$7 from @csv_stage/IOSERVICEPARAMETER
t;
create or replace file format my_csv_unload_format type=CSV skip_header=1
FIELD_DELIMITER = ',' COMPRESSION= NONE;
--USE SCHEMA IO_CBP_POC_NEW_PSR;
CREATE OR REPLACE TEMPORARY STAGE DATA_UPLOAD_STAGE
URL='azure://[Link]/psr-container/
CDSPDemoData'
CREDENTIALS=(AZURE_SAS_TOKEN='sp=racwdli&st=2025-04-12T[Link]Z&se=2025-04-
29T[Link]Z&spr=https&sv=2024-11-04&sr=c&sig=CIe3z2R4FQiuOU%2BlNphDuAt8GKZTErYZMp
%2F6pATrG04%3D')
FILE_FORMAT = my_csv_unload_format;
copy into t_dim_time(
day,day_StartDate,day_EndDate,partialWeek,partialWeek_StartDate,partialWeek_EndDate
,fiscalWeek,fiscalWeek_StartDate,fiscalWeek_EndDate,calendarMonth,calendarMonth_Sta
rtDate,calendarMonth_EndDate,fiscalMonth,fiscalMonth_StartDate,fiscalMonth_EndDate,
calendarQuarter,calendarQuarter_StartDate,calendarQuarter_EndDate,fiscalQuarter,fis
calQuarter_StartDate,fiscalQuarter_EndDate,calendarYear,calendarYear_StartDate,cale
ndarYear_EndDate,fiscalYear,fiscalYear_StartDate,fiscalYear_EndDate,allTime,allTime
_StartDate,allTime_EndDate,currentMonth,currentMonth_StartDate,currentMonth_EndDate
,currentQuarter,currentQuarter_StartDate,currentQuarter_EndDate,currentYear,current
Year_StartDate,currentYear_EndDate)
from (select t.$1,t.$2,t.$3,t.$4,t.$5,t.$6,t.$7,t.$8,t.$9,t.$10,t.$11,t.$12,t.
$13,t.$14,t.$15,t.$16,t.$17,t.$18,t.$19,t.$20,t.$21,t.$22,t.$23,t.$24,t.$25,t.
$26,t.$27,t.$28,t.$29,t.$30,t.$31,t.$32,t.$33,t.$34,t.$35,t.$36,t.$37,t.$38,t.$39
from @DATA_UPLOAD_STAGE/[Link] t);
SELECT DISTINCT
CALENDARYEAR,FISCALMONTH,FISCALYEAR,CALENDARMONTH,CALENDARQUARTER,FISCALWEEK,DAY,FI
SCALQUARTER,FISCALYEAR_STARTDATE,DAY_STARTDATE,FISCALQUARTER_ENDDATE,CALENDARYEAR_E
NDDATE,FISCALQUARTER_STARTDATE,CALENDARMONTH_STARTDATE,CALENDARQUARTER_STARTDATE,DA
Y_ENDDATE,FISCALWEEK_STARTDATE,CALENDARQUARTER_ENDDATE,FISCALWEEK_ENDDATE,FISCALMON
TH_ENDDATE,CALENDARYEAR_STARTDATE,CALENDARMONTH_ENDDATE,FISCALMONTH_STARTDATE,FISCA
LYEAR_ENDDATE
FROM CRTD_STATICTIMEHIERARCHY
WHERE (CRTD_STATICTIMEHIERARCHY.IS_ACTIVE = 'TRUE' OR
CRTD_STATICTIMEHIERARCHY.IS_ACTIVE is null);
select fiscalweek, fiscalweek_startdate from dim_time;
/** RUN MERGE WRITE BACK*/