SQL Query untuk pembuatan tabel OLTP USE [DW1]
GO
/****** Object: Table [dbo].[DimensiActionOffice] Script Date: 01/21/2011 08:08:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiActionOffice](
[ActionOfficeID] [int] IDENTITY(1,1) NOT NULL, [fldActionOfficeGUID] [uniqueidentifier] NULL, [ActionOfficeType] [varchar](100) NULL, PRIM ARY KEY CLUSTERED
(
[ActionOfficeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
/****** Object: Table [dbo].[DimensiStatus] Script Date: 01/21/2011 08:08:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiStatus](
[StatusID] [int] IDENTITY(1,1) NOT NULL, [fldEServicesStatusKey] [int] NULL,
[StatusDesc] [varchar](100) NULL, PRIM ARY KEY CLUSTERED
(
[StatusID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
GO
/****** Object: Table [dbo].[DimensiSurvey] Script Date: 01/21/2011 08:08:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiSurvey](
[SurveyID] [int] IDENTITY(1,1) NOT NULL, [fldEServicesKey] [int] NULL,
[fldEServicesSurveyKey] [int] NULL, [SurveyRating] [smallint] NULL,
[SurveyComment] [varchar](1000) NULL, PRIM ARY KEY CLUSTERED
(
[SurveyID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
GO
/****** Object: Table [dbo].[DimensiPost] Script Date: 01/21/2011 08:08:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiPost](
[PostID] [int] IDENTITY(1,1) NOT NULL,
[fldPostKey] [int] NULL,
[PostDesc] [varchar](100) NULL, PRIM ARY KEY CLUSTERED
(
[PostID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
/****** Object: Table [dbo].[FilterTimeStamp] Script Date: 01/21/2011 08:09:01 ******/
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[FilterTimeStamp]( [TableName] [varchar](100) NOT NULL, [Last_ETL] [datetime] NULL,
PRIM ARY KEY CLUSTERED (
[TableName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
/****** Object: Table [dbo].[DimensiTime] Script Date: 01/21/2011 08:08:54 ******/
SET ANSI_NULLS ON GO
GO
CREATE TABLE [dbo].[DimensiTime](
[TimeID] [int] IDENTITY(1,1) NOT NULL, [Date] [datetime] NULL,
[Day] [int] NULL,
[M onth] [int] NULL,
[Quarter] [int] NULL, [Year] [int] NULL, PRIM ARY KEY CLUSTERED (
[TimeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
/****** Object: Table [dbo].[DimensiRequestor] Script Date: 01/21/2011 08:08:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiRequestor](
[RequestorID] [int] IDENTITY(1,1) NOT NULL, [fldEServicesReqUserKey] [int] NULL,
[RequestorName] [varchar](100) NULL, PRIM ARY KEY CLUSTERED
(
[RequestorID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
/****** Object: Table [dbo].[DimensiRequestType] Script Date: 01/21/2011 08:08:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[DimensiRequestType](
[fldEServicesReqTypeKey] [int] NULL,
[RequestType] [varchar](100) NULL, PRIM ARY KEY CLUSTERED
(
[RequestTypeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOM PUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
/****** Object: Table [dbo].[FaktaRequest] Script Date: 01/21/2011 08:08:59 ******/
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE TABLE [dbo].[FaktaRequest]( [TimeID] [int] NULL,
[RequestorID] [int] NULL,
[RequestTypeID] [int] NULL,
[ActionOfficeID] [int] NULL,
[SurveyID] [int] NULL,
[PostID] [int] NULL,
[AverageCompletionTime] [decimal](6, 2) NULL, [AverageRatingScore] [decimal](3, 2) NULL, [TotalRequests] [int] NULL
) ON [PRIMARY] GO
/****** Object: ForeignKey [FK__FaktaRequ__Actio__2E1BDC42] Script Date: 01/21/2011 08:08:59 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN KEY([ActionOfficeID])
REFERENCES [dbo].[DimensiActionOffice] ([ActionOfficeID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__PostI__30F848ED] Script Date: 01/21/2011 08:08:59 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN KEY([PostID]) REFERENCES [dbo].[DimensiPost] ([PostID])
ON UPDATE CASCADE ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__Reque__2C3393D0] Script Date: 01/21/2011 08:08:59 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN
KEY([RequestorID])
REFERENCES [dbo].[DimensiRequestor] ([RequestorID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__Reque__2D27B809] Script Date: 01/21/2011 08:08:59 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN KEY([RequestTypeID])
REFERENCES [dbo].[DimensiRequestType] ([RequestTypeID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__Statu__2F10007B] Script Date: 01/21/2011 08:09:00 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN KEY([StatusID])
REFERENCES [dbo].[DimensiStatus] ([StatusID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__Surve__300424B4] Script Date: 01/21/2011 08:09:00 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN
KEY([SurveyID])
REFERENCES [dbo].[DimensiSurvey] ([SurveyID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
/****** Object: ForeignKey [FK__FaktaRequ__TimeI__2B3F6F97] Script Date: 01/21/2011 08:09:00 ******/
ALTER TABLE [dbo].[FaktaRequest] WITH CHECK ADD FOREIGN KEY([TimeID])
REFERENCES [dbo].[DimensiTime] ([TimeID]) ON UPDATE CASCADE
ON DELETE CASCADE GO
Query transformasi pada proses ETL //Dimensi Waktu
Select Date AS [Date],year(Date) AS [Year],
[Quarter] =
case
WHEN month(Date) Between 1 And 3 THEN 1 WHEN month(Date) Between 4 And 6 THEN 2 WHEN month(Date) Between 7 And 9 THEN 3 WHEN month(Date) Between 10 And 12 THEN 4
END, month(Date) AS [M onth], day(Date) AS [Day] FROM (
SELECT DISTINCT fldEServicesRequestedDT AS Date FROM [DW].[dbo].tblEServices )AS Date //Fakta Request SELECT DISTINCT TimeID, RequestorID, RequestTypeID, ActionOfficeID, StatusID, SurveyID, PostID, AVG(v.BusinessHours)/COUNT(header.fldEServicesKey) as [AverageCompletionTime], AVG(survey.fldEServicesSurveyRating)/COUNT(header.fldEServicesKey) as [AverageRatingScore], COUNT(header.fldEServicesKey) as [TotalRequests]
FROM [DW].[dbo].tblEServices as header, [DW1].[dbo].DimensiTime as DTime, [DW1].[dbo].DimensiRequestor as DRequestor, [DW1].[dbo].DimensiRequestType as DRequestType, [DW1].[dbo].DimensiActionOffice as DActionOffice, [DW1].[dbo].DimensiStatus as DStatus, [DW1].[dbo].DimensiSurvey as DSurvey, [DW1].[dbo].DimensiPost as DPost, [DW].[dbo].tblEServicesSurvey as survey, [DW].[dbo].vwCompleted as v, [DW].[dbo].tblGenericServiceRequest as generic, [DW].[dbo].rtblActionOffice as action WHERE
header.fldEServicesRequestedDT = DTime.Date AND
header.fldEServicesReqUserKey=DRequestor.fldEServicesReqUserKey AND header.fldEServicesReqTypeKey=DRequestType.fldEServicesReqTypeKey AND header.fldEServicesStatusKey=DStatus.fldEServicesStatusKey AND header.fldPostKey=DPost.fldPostKey AND header.fldEServicesKey=survey.fldEServicesKey AND DSurvey.fldEServicesKey=survey.fldEServicesKey AND header.fldEServicesKey=DSurvey.fldEServicesKey AND header.fldEServicesKey=v.fldEServicesKey AND
header.fldEServicesKey=generic.fldEServicesKey AND generic.fldActionOfficeGUID=action.fldActionOfficeGUID AND DActionOffice.fldActionOfficeGUID=action.fldActionOfficeGUID GROUP BY TimeID, RequestorID, RequestTypeID, ActionOfficeID, StatusID, SurveyID, PostID
//Pengaturan Last ETL FaktaRequest
if exists (SELECT * FROM [DW1].[dbo].FilterTimeStamp WHERE TableName ='FaktaRequest')
begin
update filtertimestamp set Last_ETL = getdate() where TableName = 'FaktaRequest'
end else begin
insert into [DW1].[dbo].FilterTimeStamp values('FaktaRequest',getdate()) end
Langkah-langkah yang harus dilakukan oleh pengguna untuk dapat mengoperasikan system dengan baik sesuai dengan tujuannya adalah sebagai berikut:
1. Pengguna harus melakukan login terlebih dahulu untuk dapat mengakses
account Institusi miliknya.
Tampilan halaman login
2. Jika pengguna salah memasukkan username dan atau password, sistem akan
memberikan peringatan dan petunjuk untuk membantu pengguna memasukkan informasi yang benar.
Tampilan halaman login jika data yang dimasukkan salah
3. Setelah berhasil masuk ke dalam sistem, pengguna kemudian membuka web
browser yang ada pada station yang digunakan misalnya Internet Explorer 8.
pada address bar web browser dan menekan Enter untuk membuka aplikasi seperti yang ditunjukkan pada gambar di bawah. Pengguna kemudian memilih folder report yang ingin dilihat, sebagai contoh FrontEnd.
Halaman utama Report Manager
5. Report Manager kemudian akan menampilkan semua laporan yang ada pada folder FrontEnd. Pengguna dapat memilih laporan yang ingin dilihat dan melakukan klik pada nama laporan.
Daftar laporan-laporan yang ada pada folder laporan
6. Pengguna akan diminta untuk memasukkan beberapa parameter untuk
menentukan isi dari laporan yang akan dilihat. Parameter-parameter yang
diminta adalah parameter tahun (Year), parameter kuarter (Quarter), dan
parameter bulan (Month). Setelah selesai memasukkan parameter-parameter yang dibutuhkan, pengguna melakukan klik pada button View Report untuk memulai proses pembuatan laporan.
Pemasukan parameter oleh pengguna untuk menentukan isi laporan Completion Time
7. Tampilan laporan yang muncul adalah seperti yang tampak pada gambar di
bawah. Di sebelah kiri akan ditampilkan tabel yang berisi informasi sesuai dengan jenis laporan yang dipilih. Sedangkan di sebelah kanan akan muncul
sebuah grafik dengan tipe bar sehingga pengguna bisa melihat perbandingan
tiap data. Selain itu, di atas tabel juga ditunjukkan waktu laporan dibuat. Pengguna dapat berpindah halaman dengan menggunakan tombol navigasi
yang berada di bawah parameter dan melakukan operasi export laporan ke
Tampilan halaman pertama dari laporan Completion Time
Pemasukan parameter oleh pengguna untuk menentukan isi laporan Survey Rating
Pemasukan parameter oleh pengguna untuk menentukan isi laporan Total Requests
Tampilan halaman dua dari laporan Total Requests
8. Setelah pengguna memilih salah satu format dan menekan link Export, akan
terbuka sebuah jendela baru yang memberikan pilihan operasi yang ingin
dilakukan oleh pengguna. Pilihan Open akan langsung membuka dokumen
hasil ekspor, pilihan Save akan meminta lokasi tempat dokumen ekspor akan
disimpan sebelum nantinya dibuka, dan opsi Cancel akan membatalkan
Pilihan operasi berkaitan dengan prosedur Export Report
9. Laporan hasil ekspor ke format lain, contohnya PDF, akan muncul seperti
gambar di bawah ini.