|
eat, sleep, breath, SQL
-
Pada saat sedang training SharePoint 2010 di Singapura 25-29 Januari lalu saya mendapat kesempatan yang cukup langka, yaitu mengikuti SQL User Group Meeting yang diadakan pada 28 Januari di MS Singapura. Penyelenggara dan pengisi acaranya sendiri saya yakin sudah tidak asing lagi untuk community SQLServer-Indo, yaitu Mas Muhammad Choirul Amri, atau yang lebih ngetop dipanggil MCA.
Acaranya sendiri dimulai pada pukul 19.00 hingga 20.30 dengan jumlah peserta yang cukup banyak sekitar 30 peserta. Pada kesempatan kali ini MCA membawakan topik yang cukup menarik, yaitu mengenai BI Enhancement SQL Server 2008 R2. Mulai dari konsep Self-Service Business Intelligence, fitur-fitur baru SQL Server Reporting Services, hingga bagaimana melakukan Power Pivot di Excel dan SharePoint, dan membuat report dengan Report Builder 3.0.
Satu hal yang patut diacungi jempol dan kita tiru adalah bagaimana acara ini dilakukan secara konsisten setiap bulan dengan persiapan yang cukup dan pemilihan materi yang berbeda setiap bulannya walaupun beberapa group leader-nya telah pindah menjadi employee Microsoft. Jadi praktis pada saat ini group leader-nya hanya MCA. Super! Semoga kita dapat mencontoh apa yang dilakukan oleh rekan-rekan kita di Singapura yah. :)
Berikut adalah beberapa foto dari acara tersebut.

|
-
Rilis terbaru SQL Server dijadualkan untuk hadir di tahun 2010 ini, yaitu SQL Server 2008 R2. R2 merupakan rilis minor dari SQL Server 2008 dan produknya sendiri sudah dapat kita coba dengan kehadiran Community Technical Preview pada bulan agustus dan november lalu. Mungkin ada banyak diantara Anda yang bertanya mengapa R2 dirilis dalam jeda yang cukup singkat dengan SQL Server 2008. Dalam keterangannya, tim SQL Server berkomitmen untuk mengeluarkan rilis major setiap 36 bulan dan mengeluarkan rilis minor diantara 36 bulan tersebut. Contoh rilis major seperti SQL Server 2005 dan SQL Server 2008, sedangkan rilis minor biasanya yang ada embel-embel “R” dibelakangnya seperti SQL Server 2008 R2. R2 dilandasi oleh review bagaimana end user dan tim IT dalam sebuah organisasi/perusahaan melakukan kegiatan operasional sehari-harinya terkait dengan database. Hal yang sering ditemukan di organisasi adalah bagaimana end user sering kali menyimpan data dalam file excel atau database access lalu melakukan analisis terhadap data tersebut, dan menyebabkan terdapat ratusan hingga ribuan file/database dalam organisasi tadi. Hal ini tentu saja dapat berakibat pada inkonsistensi data dan proses pencarian/organisasi data sulit dilakukan. Selain itu case yang lain yang sering ditemukan adalah bagaimana sebuah tim IT di suatu organisasi kewalahan dalam memenuhi permintaan end user untuk menyediakan data yang dibutuhkan. Mungkin tidak akan menjadi masalah jika hanya satu dua user yang meminta data dan satu atau dua kali dalam satu bulan, tapi bagaimana jika jika puluhan user melakukannya dan berlangsung setiap hari? Case-case diatas tadilah yang dijadikan acuan dalam rilis terbaru ini. R2 membawa sebuah goal atau paradigma baru yaitu Self-Service Business Intelligence, dimana user diberikan kemampuan bukan hanya melakukan analisis terhadap data tapi juga membuat data analisis-nya. Tools yang digunakan untuk melakukannya adalah tools yang telah familiar yaitu Excel, lalu hasilnya dapat di-publish ke SharePoint Server agar bisa di-share dengan team member yang lain.
|
-
Tidak terasa sebentar lagi tahun 2009 akan kita tinggalkan. Sebuah tahun yang menurut pendapat saya pribadi adalah tahun yang cukup sulit karena resesi yang melanda sejak awal, dan disadari atau tidak ada banyak diantara kita yang terkena dampaknya. Akan tetapi resesi tidak menghambat hadirnya teknologi baru yang terus bermunculan. Windows 7, Windows Server 2008 R2 dan Exchange 2010 adalah dua diantara teknologi yang dirilis di tahun ini, dan yang tidak boleh dilupakan adalah kehadiran SQL Server 2008 R2 dalam versi beta atau yang biasa disebut Community Technical Preview. Sebuah harapan dengan hadirnya tahun yang baru adalah pulihnya ekonomi dunia, seperti yang sudah mulai terlihat sejak kuartal keempat tahun 2009. Semoga tren positif ini terus berlanjut dan kondisinya kembali seperti sedia kala, atau bahkan lebih baik dari sebelum terjadinya resesi. Yang rasanya akan membantu mempercepat pemulihan ini adalah update teknologi-teknologi baru. Office 2010, Visual Studio 2010, SharePoint 2010, dan SQL Server 2008 R2 adalah sederet dari sebagian kecil teknologi yang akan dirilis di tahun depan. Di akhir tulisan, saya ingin mengucapkan selamat tahun baru 2010 untuk semua.
|
-
Untuk membuat Reporting Services terintegrasi dengan SharePoint, ada beberapa langkah yang harus kita kerjakan. Hal pertama yang harus dikonfigurasi adalah menjadikan Reporting Services berjalan dalam mode SharePoint Integrated Mode. Dalam contoh berikut, saya memiliki sebuah server dengan nama SharePoint dimana didalamnya sudah di-install SQL Server 2008 SP 1 dan MOSS 2007 dan saya akan melakukan konfigurasi Report Server-nya. Adapun fitur SQL Server yang saya install adalah database engine, Reporting Services, Analysis Services, dan Integration Services.
Pertama, jalankan Reporting Services Configuration Manager, dan connect ke report server instance.
Buka tab Database, lalu klik tombol Change Database
Pilih Create a new report server database pada step Action, lalu klik tombol Next
Pada step Database Server, lakukan konfigurasi nama server tempat database Report Server akan dibuat, dan tipe autentikasi yang akan digunakan untuk melakukan koneksi ke server tersebut, lalu klik Next
Pada step Database, beri nama database Report Server, pilih SharePoint Integrated Mode sebagai Report Server Mode, lalu klik Next
Pada step Credentials, tentukan credential yang nantinya akan digunakan untuk melakukan koneksi ke database server lalu klik Next.
Klik Next pada step Summary untuk mulai membuat database Report Server, lalu klik Finish ketika proses pembuatan database telah selesai dan berhasil.
Setelah selesai dengan konfigurasi database, selanjutnya adalah melakukan konfigurasi URL Report Server pada tab Web Service URL. Disini, saya memberi nama virtual directory-nya ReportServer pada port 800. Klik Apply apabila telah selesai.

Untuk mengetes koneksi ke Web Service Report Server, klik link yang terdapat pada URLs.
|
-
Beberapa tahun lalu saya pernah memiliki pengalaman buruk pada saat melakukan konfigurasi SharePoint Server 2003. Ketika itu salah satu hal yang menyebabkannya adalah masih sedikitnya artikel yang membahas mengenai SharePoint (atau saya yang tidak berhasil mendapatkan artikelnya yah? heuheuheu).
Sekarang SharePoint telah jauh lebih mudah untuk dikonfigurasi, dan artikelnya pun jauh lebih banyak dibandingkan pada waktu itu. Some says, cara terbaik untuk menghapus pengalaman buruk adalah datang kembali dan menghadapinya. Sejak beberapa bulan terakhir ini akhirnya saya memberanikan diri, secara sembunyi-sembunyi (loh) bekerja dengan Microsoft Office SharePoint Server 2007, dan sedikit demi sedikit menghapus kenangan buruk itu.
Salah satu hal yang saya *** dari SharePoint adalah bahwa kita dapat mengintegrasikan beragam product ataupun solusi kustom ke dalamnya. Contoh yang paling mudah adalah SQL Server Reporting Services (SSRS). SSRS dapat dinikmati oleh user nya lewat dua mode, yaitu native mode dan SharePoint Integrated Mode. Ketika SSSR di-set ke SharePoint Integrated Mode, SharePoint dapat kita gunakan untuk hampir semua hal yang berhubungan dengan SSRS. Secara garis besar SSRS dibagi menjadi dua bagian yaitu report manager dan report server. Pada native mode, Report manager menjadi http service yang digunakan untuk melihat report ataupun melakukan administrasi report. Sedangkan report server berfungsi sebagai service yang menjadi target mem-publish report yang telah dibuat di BIDS dan berfungsi untuk me-render report yang di-request dari Report Manager ataupun dari aplikasi kustom.
Pada SharePoint Integrated Mode, yang berfungsi menjadi report manager adalah SharePoint. Kita dapat membuat sebuah document library di Sharepoint dan menyimpan report pada document library tersebut. Untuk melihat report-nya, kita cukup membuka document library tadi. Untuk mem-publish report, target report folder-nya juga document library yang sama.
|
-
SSIS sedianya menjadi sebuah platform untuk melakukan proses ETL dari berbagai sumber data. Mulai dari text file, Excel, Access, SQL Server, DB2, dan masih banyak sumber data lainnya. Untuk dapat melakukan proses ETL yang sumber datanya di luar default yang disediakan oleh SQL Server, seperti DB2 atau Oracle, kita dapat menggunakan OLE DB Provider yang biasanya sudah disediakan oleh vendor-nya. Kemudian untuk dapat melakukan koneksi ke sumber data tersebut, kita membuat OLE DB Connection dengan menggunakan OLE DB Provider tadi lalu menggunakan OLE DB Source dan OLE DB Destination untuk melakukan Extract dan Load.
Akan tetapi pada case tertentu, saya sering menemukan bahwa untuk beberapa sumber data, performance SSIS menjadi tidak sebaik yang diharapkan. Sebagai contoh adalah ketika saya melakukan load data Oracle, performance nya menjadi sangat mengecewakan jika dibandingkan dengan load data yang sama ke SQL Server. Hal ini disebabkan karena untuk sumber data di luar sumber data default, SSIS akan melakukan commit untuk setiap baris data dan proses commit inilah yang menyebabkan performa nya menurun.
Adalah Attunity yang membuat konektor ke Oracle dan Teradata untuk SSIS yang membantu memecahkan masalah performa ini. Konektornya sendiri dapat diunduh disini dan menurut testimoninya dapat memproses 75000 rows dalam satu detik. Wow!
Beberapa hal yang harus diperhatikan adalah bahwa konektornya hanya dapat bekerja di SQL Server 2008 Enterprise/Developer Edition, dan tidak dapat dipakai pada Standard Edition. Selain itu juga Anda harus menginstal terlebih dahulu Oracle Client Software versi 10.x atau 11.x pada server SSIS apabila ingin melakukan koneksi ke Oracle, dan Teradata Parallel Transporter (TPT) version 12.0 dan Teradata ODBC driver (disarankan menggunakan versi 12) pada server SSIS apabila akan melakukan koneksi ke Teradata.
Didalam konektor yang diinstal tadi, Anda akan mendapatkan Connection, Source component dan Destination component di Data Flow Task. Untuk melakukan koneksi ke Oracle gunakan Oracle Connection Manager.

Oracle Source digunakan untuk meng-extract data dari Oracle.
Dan Oracle Destination digunakan untuk me-load data ke Oracle.

|
-
Kemarin dapat e-mail dari Microsoft bahwa SQL Server 2008 R2 November CTP sudah dapat diunduh disini. Pada CTP ini terdapat fitur baru yaitu: - Support untuk Windows Server® 2008 R2, termasuk Hyper-V with Live Migration
- Perbaikan kompresi data dengan support untuk Unicode UCS-2
- PowerPivot untuk Microsoft® Excel 2010 (yang sebelumnya dikenal dengan nama Project “Gemini”)
- Report Builder 3.0 dengan Report Part Gallery dan visualisasi yang baru (sparklines, databars)
- Master Data Services (MDS) dengan Master Data Hub dan Stewardship Portal
Selain itu terdapat juga perbaikan dari August CTP: - Control Point Explorer di SQL Server Management Studio untuk central multi-instance dan data-tier application management
- Dashboard untuk melihat dengan cepat kedalam aplikasi dan utilisasi instance
- StreamInsight untuk pemrosesan yang kompleks
- SQL Server System Preparation (sysprep)
- Support sampai 256 logical processors

|
-
download sample code
Itulah error yang menghantui saya selama beberapa hari terakhir ketika ingin meng-export sebuah report di Reporting Services 2005 kedalam file Excel. Error ini terjadi karena jumlah baris yang terdapat report lebih dari 65636, yang merupakan limitasi Excel 97-2003.
Setelah mencari dan mencari, pencerahan pun muncul ketika berkunjung kesini. Agar pada saat melakukan export data ke Excel tidak terjadi error, kita harus melakukan grouping terhadap data dan memberi page break di akhir setiap group. Ketika melakukan page break, Excel akan menambahkan Worksheet baru, dan baris berikutnya yang di-export akan ditulis di Worksheet yang baru.
Dalam contoh berikut, saya menggunakan membuat sebuah report dengan data region Table dengan data Production.WorkdOrders di AdventureWorks yang memiliki 72591 rows.
Setelah menambahkan field-field pada data region table, tambahkan group baru kedalamnya.
Isi expression dengan =Int((RowNumber(Nothing)-1)/65000), beri centang pada Page break at end, dan hilangkan centang pada Include group footer, lalu klik OK.
Ketika report-nya di-export ke Excel, Anda akan mendapati data pada Sheet1 kurang dari 65536 baris, dan sisa data yang lain terdapat pada Sheet2.
|
-
Akhirnya, kembali menulis blog di SQLServer-Indo setelah beberapa bulan terakhir tenggelam dalam pekerjaan. Senang sekali dapat kembali dan menulis tentang banyak hal baru yang terjadi di SQL Server.
Salah satu perhelatan besar yang akan digelar untuk kita semua adalah PASS Summit Unite 2009 yang diselenggarakan oleh SQLPASS pada tanggal 2 hingga 5 November mendatang di Seattle, Washington. PASS Summit adalah sebuah konfrensi yang membahas teknologi terbaru di Microsoft SQL Server dan diperuntukkan untuk para DBA, application developer, BI dan IT Pro. Dalam event tersebut, kita mendapat kesempatan untuk bertemu secara langsung dan berinteraksi dengan tim pengembang Microsoft SQL Server, tim Microsoft BI, sesi teknikal, hands-on labs, dan masih banyak hal lain.
Sebagai salah satu chapter SQLPASS, semoga ada salah satu wakil dari SQLServer-Indo yang mengikuti event tersebut dan kembali untuk menceritakan apa yang dipelajarinya selama disana.
Untuk keterangan lebih lanjut mengenai event ini, silakan kunjungi http://summit2009.sqlpass.org

|
-
Mungkin banyak yang tersinggung dengan pertanyaan diatas, akan tetapi dalam post ini saya serius menanyakannya. Beberapa waktu yang lalu saya bertemu seorang teman saya yang sedang belajar mengenai SSIS dan tampak kebingungan ketika sedang membaca e-book-nya, karena terlalu banyak konsep yang sulit dipahami olehnya.
Salah satu yang saya *** dari product Microsoft adalah fakta bahwa setiap product-nya dipersenjatai dengan Help atau tutorial yang cukup lengkap. Dengan dua amunisi tadi, tentunya akan memudahkan user untuk mempelajari dan mendapatkan petunjuk pada saat menggunakan productnya. Saya ingat, bertahun-tahun yang lalu pada saat menggunakan Windows 3.1 (duh dah lama sekali yah? hehe) terdapat tutorial mengenai cara menggunakan Mouse di dalamnya karena pada saat itu orang yang dapat menggunakan Mouse masih sangat jarang. Itu adalah masa transisi dimana orang berpindah dari DOS yang notabene semuanya menggunakan keyboard ke Windows dengan tampilan user interface yang dapat menggunakan Keyboard dan Mouse untuk berinteraksi.
Kembali ke pertanyaan tadi, Anda dapat menggunanya dari Start > All Programs > SQL Server 2008 > Documentation and Tutorials > SQL Server Tutorials
Apa saja isinya? Semua hal yang Anda butuhkan untuk belajar feature-feature SQL Server. Mulai dari Database Engine, Analysis Services, Integration Services, Reporting Services, Replication, dan Service Broker.
%2078922D40.png" width="510" height="297" />
|
-
SQL Server 2008 R2 August CTP sudah dapat diunduh oleh MSDN subscriber sejak 10 Agustus 2009, dan 12 Agustus 2009 untuk umum. Untuk mengunduh, silakan kesini. Untuk info lebih detail mengenai fitur-fitur baru SQL Server 2008 R2 dapat kesini.
|
-
download sample code
Apakah Anda pernah mengalami sebuah kasus dimana SSIS package yang telah Anda buat berhasil di-execute dengan menggunakan BIDS, tetapi fail pada saat di-execute dengan menggunakan Job? Apabila ya, mungkin Anda melewatkan satu hal kecil yang seperti kebanyakan orang sering lupa untuk dikerjakan yaitu mengatur ProtectionLevel SSIS Package.
Secara default, ProtectionLevel SSIS Package di-set dengan EncryptSensitiveWithUserKey. Dengan setting tersebut, informasi sensitive yang ada di sebuah package, seperti password database yang terdapat pada connection, akan di-encrypt berdasarkan user yang terakhir memodifikasi package. Apabila user lain akan membuka package atau meng-execute-nya, informasi sensitive tadi akan diganti dengan nilai kosong dan user tersebut harus mengisinya. Pada kasus execute package dengan menggunakan Job, apabila user account yang menjalankan service SQL Server Agent berbeda dengan user account yang terakhir memodifikasi package, informasi tadi tetap bernilai kosong dan mengakibatkan job fail.
Cara termudah untuk men-solve problem nya adalah mengubah user account service SQL Server Agent dengan user account yang terakhir memodifikasi package. Akan tetapi cara ini tentunya kurang engineering –kalau mengambil kata-kata teman saya- dan tidak disarankan. Karena bisa saja ada banyak orang yang memodifikasi package dan itu berarti kita harus mengubah account SQL Server Agent setiap kali akan meng-execute Job. Bayangkan apabila ada lima buah package yang dijadikan Job, dan kelima package-nya dibuat oleh orang yang berbeda. Hanya satu dari lima job tadi yang berhasil sedangkan sisanya fail di-execute.
SSIS telah menyediakan sebuah fitur bernama SSIS Package Configuration untuk menyimpan informasi/properti yang terdapat di sebuah package. Kita dapat menyimpan properti nya di database SQL Server, XML File, Registry, atau Environment Variable.
Dalam contoh yang dapat Anda download, saya memiliki sebuah SSIS Package untuk mengambil data Product dari database AdventureWorks. Untuk melakukan koneksi ke database tersebut, saya menggunakan SQL Server Authentication sebagai Authentication Mode-nya.
Setelah connection, Data Flow Task beserta ETL nya selesai dibuat, hal yang saya lakukan adalah menge-set properti Protection Level Package dengan DontSaveSensitive
Kemudian saya membuka menu Package Configurations dari menu SSIS > Package Configuration. Setelah terbuka, centang Enable package configurations, lalu klik tombol Add
Klik Next pada Welcome to the Package Configuration Wizard
Pada Select Configuration Type, pilih XML configuration file sebagai configuration type, lalu klik browse untuk membuat sebuah config file dengan nama AdventureWorksConnection.dtsConfig, kemudian klik tombol Next
Pada Select Properties to Export, beri tanda centang pada properti ConnectionString untuk koneksi AdventureWorks2008 lalu klik Next.
Beri nama configuration-nya dengan AdventureWorksConnection lalu klik Finish. Klik Close untuk menutup Package Configuration
Dengan konfigurasi ini connection string AdventureWorks disimpan di dalam file AdventureWorksConnection.dtsConfig, dan setiap kali package-nya dibuka atau di-execute, properti ConnectionString AdventureWorks akan diisi dengan nilai yang terdapat pada config file.
Sebelum Anda membuka atau meng-execute package, ada baiknya membuka file AdventureWorksConnection.dtsConfig karena pada ConfiguredValue untuk Configuration AdventureWorks2008 belum terdapat Password. Anda dapat menambahkan password-nya setelah User ID=sa;Password=***, *** adalah password untuk User sa.

|
-
Sepertinya itulah kata yang tepat untuk mendefinisikan Expression. Expression dapat dijumpai di banyak tempat di sebuah SSIS package. Mulai dari variable; property sebuah Package, Task, dan Connection; Derived Column; Conditional Split; dan masih banyak lagi. Apabila Anda melihat property Package, Anda akan menemui property Expressions.
Klik tombol … yang akan menampilkan Property Expressions Editor
Pilih properti yang value-nya akan di-set sebagai expression pada kolom Property, lalu klik tombol … yang terletak pada sebelah kanan kolom Expression untuk menampilkan Expression Builder.
Apabila value properti yang akan di-set berupa string, maka isi expression-nya harus menghasilkan nilai string, dan seterusnya.Hal yang sama juga akan Anda temui apabila meng-klik tombol … pada properti Expressions di Task dan Connection.
Pada Derived Column, selain Variables, kita juga dapat menambahkan Columns yang terdapat pada transformasi ke dalam expression yang akan kita buat untuk membuat sebuah column baru atau me-replace nilai sebuah column yang sudah ada.

|
-
Beberapa hari terakhir ini saya mendapat tugas untuk melakukan review sebuah project BI di salah satu client. Project tersebut dikerjakan oleh sebuah vendor dan telah berusia satu tahun. Akan tetapi, project-nya belum selesai dan memiliki performance yang buruk. Pada hari pertama melakukan review saya cukup terkagum-kagum demi melihat code-nya yang kompleks dan tidak optimal. Tidak heran apabila project-nya belum selesai, dan memiliki performance yang tidak acceptable. Biasanya code yang kompleks akan menyebabkan bugs bermunculan, dan membuat code menjadi sulit untuk diperbaiki. Saya jadi teringat dengan sebuah artikel yang saya baca beberapa tahun lalu tentang banyaknya project IT yang waktu pengerjaannya molor, dan beberapa diantaranya bahkan dianggap sebagai project gagal. Persentase project IT yang gagal tadi cukup tinggi, mencapai lebih dari 50%, dan menyebabkan company mengalami kerugian pada investasi yang dilakukan pada project tersebut. Tentu ada banyak faktor yang dapat menyebabkan kegagalan. Bisa jadi memang requirement yang terlalu banyak dan selalu berubah-ubah, atau karena waktu pengerjaan yang sempit, atau -dan ini yang sering membuat saya sedih- karena ada team member yang tidak tahan dengan project yang dikerjakannya dan memilih untuk keluar di tengah jalan. Saya sendiri sadar apabila project yang telah saya kerjakan sering molor dan jauh dari sempurna. Tetapi, pada saat saya mengerjakannya, ada beberapa pakem yang selalu saya lakukan agar tidak terlalu molor atau gagal. Yang pertama adalah saya harus memahami problem, dan tujuan dari project. Dengan memahaminya berarti mengetahui apa yang harus dikerjakan untuk menyelesaikannya. Selalu memikirkan kemungkinan terburuk agar dapat menghasilkan solusi terbaik. Saya gak pernah mau membuat project yang asal jadi, karena saya ingin hasil project yang saya buat digunakan dan dinikmati untuk waktu yang lama. Be a smart worker, not a hard worker. Ini berarti kita harus tahu bagaimana cara mengerjakannya, dan bukan berusaha keras mengerjakannya. Ada orang yang bekerja sangat keras sampai tidak sadar apakah yang dikerjakannya itu benar atau tidak. Biasanya saya akan menghabiskan waktu beberapa hari untuk melakukan research apabila tidak tahu bagaimana mengerjakan sebuah code. Selain itu juga saya akan berhenti sejenak, entah itu dengan membuat kopi, atau pulang ke rumah untuk mengistirahatkan pikiran dan tubuh saya. Dengan pikiran yang sedikit teralihkan dari project dan istirahat yang cukup akan membuat kita kembali dengan ide-ide segar. Mengerjakan project adalah kerja tim. Selalu berbagi knowledge dengan team member yang lain tentu akan membantu team member lain berkembang dan mendapatkan experience. Selain itu juga jangan membiasakan diri untuk tergantung dengan team member lain, sebab setiap team member sudah memiliki task list nya sendiri-sendiri. Apabila kita menggantungkan diri, tentu akan membuat team member yang lain tidak dapat mengerjakan task nya tepat waktu. Selalu ingat bahwa ada banyak orang yang tergantung dari keberhasilan project. Ada stake holder, user, dan masih banyak lagi. Keterlambatan project tentu akan mengecewakan mereka semua, dan sedikit banyak berpengaruh pada KPI-nya masing-masing. Selain itu juga, selalu ingat dengan besarnya dana yang dikucurkan untuk project. Entah untuk membeli server, license, meng-hire consultant, dan hal-hal lainnya. Akan sangat disayangkan apabila dana yang sudah dikeluarkan tadi terbuang sia-sia. Setelah selesai sebuah project, biasanya saya akan melakukan review terhadap project saya tadi agar project selanjutnya lebih baik dari project yang sebelumnya. Code saya adalah kebanggaan saya. Saya selalu berusaha melakukannya dengan sepenuh hati dan memberikan yang terbaik agar hasilnya maksimal dan sesuai dengan harapan. Memang terkadang saya harus bekerja hingga larut malam selama beberapa waktu, tapi tidak ada yang dapat melebihi kepuasan sebuah project yang selesai dengan baik. How about you? How do you build your code?
|
-
Download sample code
Terkadang saat mengerjakan sebuah SSIS project, saya menemui case dimana suatu task hanya boleh dieksekusi apabila memenuhi kondisi tertentu. Salah satu case-nya adalah task yang hanya boleh dieksekusi pada akhir bulan atau setiap tanggal satu saja setiap bulannya.
Di SSIS, kita mengenal precedence constraint -yang bentuknya seperti anak panah-, yang menghubungkan antara executable, container, dan task dalam control flow. Di dalam precedence constraint tersebut kita dapat memasang kondisi dengan menggunakan expression untuk menentukan apakah task-nya dapat dieksekusi atau tidak. Untuk mempermudah contoh yang saya ceritakan tadi, saya akan menggunakan package yang telah saya buat pada post sebelumnya.
Pertama, saya menambahkan sebuah variable dengan nama LogicalDate dengan tipe data Datetime yang expression-nya berupa konversi variable ModifiedDate kedalam tipe data DT_DATE.
Kemudian saya menambahkan dua buah script task kedalam control flow dengan nama Daily Task dan Monthly Task, lalu menghubungkan Daily Task dengan Monthly Task.
Klik ganda pada precedence contraint yang menghubungkan antara kedua task tadi untuk menampilkan Precedence Constraint Editor. Pada Evaluation Expression pilih Expression and Constraint. Berhubung kita akan mengisi kondisi agar Monthly Task hanya boleh berjalan pada tanggal satu saja, isi Expression-nya dengan expression Day(@[User::LogicalDate]) == 1 lalu klik OK. Anda dapat mengklik tombol Test untuk mengecek apakah expression yang Anda masukkan sudah benar atau belum.
Sekarang, apabila kita mengisi variable UserModifiedDate dengan 2009-07-20 lalu mengeksekusi package-nya, hanya Daily Task yang dieksekusi. Hal ini dapat Anda lihat dari warna Daily Task yang berwarna hijau, sedangkan Monthly Task-nya tetap berwarna putih.
Bandingkan jika Anda mengeksekusi package dengan mengisi nilai variable UserModifiedDate dengan 2009-08-01, kedua task tadi akan berwarna hijau yang artinya keduanya dieksekusi.

|
More Posts Next page »
|
|
|