Proses transformasi data dimulai dari tabel DimBahanBaku, DimBarang, DimCustomer, DimGroupBarang, DimSupplier, DimTipeSupplier, DimWaktu, FactPenjualan, FactPembelian, FactProduksi yang akan dijabarkan sebagai berikut :
a. DimBahanBaku
Gambar 3.5 Gambar Rancangan Package DTS Dim BahanBaku
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBahanBaku' )
SELECT KodeBahan, NamaBahan
FROM [Artha_Operasional].[dbo].MsBahanBaku AS B WHERE
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBahanBaku'
)
ELSE
SELECT KodeBahan, NamaBahan
FROM [Artha_Operasional].[dbo].MsBahanBaku AS B
b. DimBarang
Gambar 3.6 Gambar Rancangan Package DTS Dim Barang
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBarang' )
FROM [Artha_Operasional].[dbo].MsBarang AS B, [AE_DW].[dbo].DimGroupBarang AS GB
WHERE
B.KodeGroupBarang = GB.KodeGroupBarang AND InsertedDate >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBarang'
) ELSE
SELECT GroupBarangID, KodeBarang, NamaBarang FROM [Artha_Operasional].[dbo].MsBarang AS B, [AE_DW].[dbo].DimGroupBarang AS GB
WHERE B.KodeGroupBarang = GB.KodeGroupBarang
c. DimCustomer
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsCustomer' )
SELECT TipeCustomerID,KodeCustomer, NamaCustomer FROM [Artha_Operasional].[dbo].MsCustomer as M, [AE_DW].[dbo].DimTipeCustomer as TC
WHERE M.KodeTipeCustomer = TC.KodeTipeCustomer AND InsertedDate >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsCustomer' )
ELSE
SELECT TipeCustomerID, KodeCustomer, NamaCustomer FROM [Artha_Operasional].[dbo].MsCustomer as M, [AE_DW].[dbo].DimTipeCustomer as TC
WHERE M.KodeTipeCustomer = TC.KodeTipeCustomer
Gambar 3.8 Gambar Rancangan Package DTS Dim GroupBarang
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsGroupBarang' )
SELECT KodeGroupBarang, NamaGroupBarang FROM [Artha_Operasional].[dbo].MsGroupBarang
WHERE InsertedDate >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsGroupBarang' )
ELSE
SELECT KodeGroupBarang, NamaGroupBarang FROM [Artha_Operasional].[dbo].MsGroupBarang
e. DimSupplier
Gambar 3.9 Gambar Rancangan Package DTS Dim Supplier
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsSupplier' )
SELECT KodeSupplier, NamaSupplier
FROM [Artha_Operasional].[dbo].MsSupplier AS S WHERE
InsertedDate >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsSupplier' )
SELECT KodeSupplier, NamaSupplier
FROM [Artha_Operasional].[dbo].MsSupplier AS S
f. DimTipeCustomer
Gambar 3.10 Gambar Rancangan Package DTS Dim TipeCustomer
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsTipeCustomer' )
SELECT KodeTipeCustomer, TipeCustomer FROM [Artha_Operasional].[dbo].MsTipeCustomer
WHERE InsertedDate >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsTipeCustomer'
) ELSE
SELECT KodeTipeCustomer, TipeCustomer FROM [Artha_Operasional].[dbo].MsTipeCustomer
g. DimWaktu
Gambar 3.11 Gambar Rancangan Package DTS Dim Waktu
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Waktu'
)
SELECT
YEAR( Tgl ) AS [Tahun], [Kuartal] =
WHEN MONTH( Tgl ) BETWEEN 1 AND 3 THEN 1 WHEN MONTH( Tgl ) BETWEEN 4 AND 6 THEN 2 WHEN MONTH( Tgl ) BETWEEN 7 AND 9 THEN 3 WHEN MONTH( Tgl ) BETWEEN 10 AND 12 THEN 4 END,
MONTH( Tgl ) AS [Bulan] FROM
( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPembelian UNION
SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPenjualan UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderProduksi UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturJual UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturBeli ) AS Tgl
WHERE
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Waktu'
) ELSE SELECT YEAR( Tgl ) AS [Tahun], [Kuartal] = CASE
WHEN MONTH( Tgl ) BETWEEN 1 AND 3 THEN 1 WHEN MONTH( Tgl ) BETWEEN 4 AND 6 THEN 2 WHEN MONTH( Tgl ) BETWEEN 7 AND 9 THEN 3 WHEN MONTH( Tgl ) BETWEEN 10 AND 12 THEN 4 END,
MONTH( Tgl ) AS [Bulan] FROM
( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPembelian UNION
SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPenjualan UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderProduksi
UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturJual UNION
SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturBeli ) AS Tgl
h. FactPenjualan
Gambar 3.12 Gambar Rancangan Package DTS Fact Penjualan
IF EXISTS
( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Penjualan'
)
SUM(DP.JmlJual) AS Jumlah,
SUM(DP.JmlJual * B.hargajual) AS [Total Jual], SUM(DR.JmlReturJual)as JumlahRetur, SUM(DR.JmlReturJual*B.hargajual) AS [Total Retur]
FROM [Artha_Operasional].[dbo].TrHeaderPenjualan AS HP, [Artha_Operasional].[dbo].TrDetailPenjualan AS DP, [Artha_Operasional].[dbo].TrHeaderReturJual AS HR, [Artha_Operasional].[dbo].TrDetailReturJual AS DR, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsCustomer AS C, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimCustomer AS DimCm WHERE
HP.NoFakturJual = DP.NoFakturJual AND HP.KodeCustomer = C.KodeCustomer AND C.KodeCustomer = DimCm.KodeCustomer AND DP.KodeBarang = B.KodeBarang AND
B.KodeBarang = DimBr.KodeBarang AND HP.NoFakturJual = HR.NoFakturJual AND HR.KodeReturJual = DR.KodeReturJual AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan AND
HP.Tanggal >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Penjualan'
)
GROUP BY WaktuID, BarangID, CustomerID ELSE
SELECT WaktuID, BarangID, CustomerID,
SUM(DP.JmlJual) AS Jumlah,
SUM(DP.JmlJual * B.hargajual) AS [Total Jual], SUM(DR.JmlReturJual)as JumlahRetur,
SUM(DR.JmlReturJual*B.hargajual)AS [Total Retur]
FROM [Artha_Operasional].[dbo].TrHeaderPenjualan AS HP, [Artha_Operasional].[dbo].TrDetailPenjualan AS DP, [Artha_Operasional].[dbo].TrHeaderReturJual AS HR, [Artha_Operasional].[dbo].TrDetailReturJual AS DR, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsCustomer AS C, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimCustomer AS DimCm WHERE
HP.KodeCustomer = C.KodeCustomer AND C.KodeCustomer= DimCm.KodeCustomer AND DP.KodeBarang = B.KodeBarang AND
B.KodeBarang = DimBr.KodeBarang AND HP.NoFakturJual = HR.NoFakturJual AND HR.KodeReturJual = DR.KodeReturJual AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan GROUP BY WaktuID, BarangID, CustomerID i. FactPembelian
Gambar 3.13 Gambar Rancangan Package DTS Fact Pembelian
IF EXISTS ( SELECT *
FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Pembelian' )
SELECT WaktuID, BahanID,SupplierID, SUM(DP.JmlBeli) AS Jumlah,
SUM(DP.JmlBeli * BB.hargabeli) AS [Total Beli], SUM(DR.JmlReturBeli)as JumlahRetur,
SUM(DR.JmlReturBeli*BB.hargabeli)AS [Total Retur] FROM [Artha_Operasional].[dbo].TrHeaderPembelian AS HP, [Artha_Operasional].[dbo].TrDetailPembelian AS DP, [Artha_Operasional].[dbo].TrHeaderReturBeli AS HR, [Artha_Operasional].[dbo].TrDetailReturBeli AS DR, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [Artha_Operasional].[dbo].MsSupplier AS S, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBahanBaku AS DimBb, [AE_DW].[dbo].DimSupplier AS DimSp WHERE
HP.NoFakturBeli = DP.NoFakturBeli AND HP.KodeSupplier = S.KodeSupplier AND S.KodeSupplier = DimSp.KodeSupplier AND DP.KodeBahan = BB.KodeBahan AND
BB.KodeBahan = DimBb.KodeBahan AND HP.NoFakturBeli = HR.NoFakturBeli AND HR.KodeReturBeli = Dr.KodeReturBeli AND YEAR( HP.Tanggal ) = DimWk.Tahun AND
MONTH( HP.Tanggal ) = DimWk.Bulan AND HP.Tanggal >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Pembelian'
)
GROUP BY WaktuID, BahanID, SupplierID ELSE
SELECT WaktuID, BahanID, SupplierID, SUM (DP.JmlBeli) AS Jumlah,
SUM (DP.JmlBeli * BB.hargabeli) AS [Total Beli], SUM (DR.JmlReturBeli)as JumlahRetur,
SUM (DR.JmlReturBeli*BB.hargabeli)AS [Total Retur] FROM [Artha_Operasional].[dbo].TrHeaderPembelian AS HP, [Artha_Operasional].[dbo].TrDetailPembelian AS DP, [Artha_Operasional].[dbo].TrHeaderReturBeli AS HR, [Artha_Operasional].[dbo].TrDetailReturBeli AS DR, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [Artha_Operasional].[dbo].MsSupplier AS S, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBahanBaku AS DimBb, [AE_DW].[dbo].DimSupplier AS DimSp WHERE
HP.NoFakturBeli = DP.NoFakturBeli AND HP.KodeSupplier = S.KodeSupplier AND S.KodeSupplier = DimSp.KodeSupplier AND DP.KodeBahan = BB.KodeBahan AND
BB.KodeBahan = DimBb.KodeBahan AND HP.NoFakturBeli = HR.NoFakturBeli AND HR.KodeReturBeli = Dr.KodeReturBeli AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan GROUP BY WaktuID, BahanID, SupplierID
j. FactProduksi
Gambar 3.14 Gambar Rancangan Package DTS Fact Produksi
IF EXISTS
( SELECT *
WHERE Table_Name = 'Produksi' ) SELECT WaktuID, BahanID, BarangID,
SUM(DP.JumlahBahan)as [Jumlah Bahan],
SUM(DP.JumlahBahanTakTerpakai) as [Jumlah Bahan Tak Terpakai],
SUM(DP.JumlahProduksiJadi) AS [Jumlah Produksi Jadi], SUM(DP.JumlahProduksiCacat) as [Jumlah Produksi Cacat] FROM [Artha_Operasional].[dbo].TrHeaderProduksi AS HP, [Artha_Operasional].[dbo].TrDetailProduksi AS DP, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimBahanBaku AS DimBn WHERE
HP.KodeProduksi = DP.KodeProduksi AND DP.KodeBahan = BB.KodeBahan AND BB.KodeBahan = DimBn.KodeBahan AND DP.KodeBarang = B.KodeBarang AND
B.KodeBarang = DimBr.KodeBarang AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan AND
HP.Tanggal >
( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Produksi'
) GROUP BY WaktuID, BahanID, BarangID ELSE SELECT WaktuID, BahanID, BarangID,
SUM(DP.JumlahBahan)as [Jumlah Bahan],
SUM(DP.JumlahBahanTakTerpakai) as [Jumlah Bahan Tak Terpakai], SUM(DP.JumlahProduksiJadi) AS [Jumlah Produksi Jadi],
SUM(DP.JumlahProduksiCacat)as [Jumlah Produksi Cacat] FROM
[Artha_Operasional].[dbo].TrHeaderProduksi AS HP, [Artha_Operasional].[dbo].TrDetailProduksi AS DP,
[Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimBahanBaku AS DimBn WHERE
HP.KodeProduksi = DP.KodeProduksi AND DP.KodeBahan = BB.KodeBahan AND BB.KodeBahan = DimBn.KodeBahan AND DP.KodeBarang = B.KodeBarang AND B.KodeBarang = DimBr.KodeBarang AND year( HP.Tanggal ) = DimWk.Tahun AND month( HP.Tanggal ) = DimWk.Bulan
GROUP BY
WaktuID,
BahanID,
BarangID