270 likes | 383 Views
Platinum. Learn & Enjoy [Put your phone on Vibrate!]. www.sqlbits.com. Group BY: [Food and Drink at Reading Bowl, see you there!]. Gold. Feedback Forms: [Voucher for £30 book on return of Form]. Silver. Lunch Time Sessions: [Idera in Everest, Quest in Memphis, Grok in Chic 1 and 2].
E N D
Platinum Learn & Enjoy [Put your phone on Vibrate!] www.sqlbits.com Group BY: [Food and Drink at Reading Bowl, see you there!] Gold Feedback Forms: [Voucher for £30 book on return of Form] Silver Lunch Time Sessions: [Idera in Everest, Quest in Memphis, Grok in Chic 1 and 2] Ask The Experts[Sessions need to finish on time, take questions to the ATE area] Extending SSIS with Custom Tasks
Extending SSIS with Custom Tasks Darren Green Konesans Ltd
Agenda • Extending SSIS • Types • Six Steps • Tasks • Debugging • Installation • When and Why?
Types • Task • Pipeline Component • Source • Destination • Transform • Log Provider • For Each Enumerator • Connection Manager
Six Steps • Create project • Add references • Add signing key • Write code • Compile • Install
References • Microsoft.SQLServer.ManagedDTS • Microsoft.SqlServer.Dts.Runtime • Microsoft.SQLServer.DTSRuntimeWrap • Microsoft.SqlServer.Dts.Runtime.Wrapper • Microsoft.SqlServer.PipelineHost • Microsoft.SqlServer.Dts.Pipeline • Microsoft.SqlServer.DTSPipelineWrap • Microsoft.SqlServer.Dts.Pipeline.Wrapper • Microsoft.SqlServer.Dts.Design • Microsoft.SqlServer.Dts.Runtime.Design
Custom Objects - Template [ObjectAttribute(Information)] public class MyCustomObject : BaseClass { public override void BaseMethod() { // Custom code } }
Demo Simple Task
Tasks • Methods • InitializeTask • Validate • Execute • Properties • Use attributes, editors and type converters • Use connection GUID • Write only for security when required • Custom persistence for sensitive data or complex types
More Task Features • Custom Events • Custom Log Entries • Breakpoints (IDTSBreakpointSite)
Create a Task User Interface • Create UI class (Implement IDtsTaskUI) • Create UI form • Set task’s UITypeName attribute
Demo Simple Task User Interface
Advanced Task User Interfaces • Microsoft.DataTransformationServices.Controls Microsoft.DataTransformationServices.Controls.dll • DTSBaseTaskUI Base Form Class • DTSTaskUIHost Control, paged control • Class per page, implement IDTSTaskUIView
Debugging • Designer – Design time • Attach to devenv.exe • Designer – Runtime • Attach to DTSDebugHost.exe • Component Project – Runtime • Start external program C:\Program...\DTExec.exe /F "C:\...TestPackage.dtsx”
Debugging Tips • Ensure class and strong name is fixed at start • Must restart BIDS between builds, slow! • Use DTExec for all runtime • Use Post Build Event for install • copy "$(TargetPath)“ C:\Program... • gacutil.exe" /if "$(TargetPath)“ • Ensure persistence complete
Installation Locations • Designer Enumeration Folder • Designer location only (x86 Only) C:\Program Files\Microsoft SQL Server\90\DTS\<Object> \Connections \LogProviders \ForEachEnumerators \PipelineComponents \Tasks • Global Assembly Cache • Runtime loading by execution host
Install Platform Target 32-bit (x86) • Install in Program Files for Designer • Install in GAC for run-time • Support for x86 specific targeted assemblies • Support for Any CPU / MSIL
Install Platform Target 64-bit (x64) • Support for x86 only targeted assemblies • Support for x64 only targeted assemblies • Support for Any CPU / MSIL • Designer is x86/MSIL only • Can side by side target assemblies
Install Platform Target Itanium (IA64) • Support for IA64 • Support for Any CPU / MSIL • No designer support
64-bit Tools Only • No x86 file requirement • No x86 DTSPath registry key • MSI registry search is 32-bit • No key, no tools, no designer, no file required!
Install Tips • Use MSI builder of choice, e.g. VS, WiX • Registry Search for DTS folder location HKLM\SOFTWARE\Microsoft\MSDTS\Setup\DTSPath C:\Program Files\Microsoft SQL Server\90\DTS\ • Allow tools only installs, don’t require 32-bit key • User Interfaces & Support Assemblies? • GAC Only • Support Files? • Use special folders, CommonApplicationData • Minimal UI, no options required
When to extend • Reuse in multiple packages • Increased Development vs Lower Maintenance • Access legacy resources (COM) • Complex business logic • More advanced code requirements • Powerful IDE • Language choice
Resources - Samples • Microsoft Download Center http://www.microsoft.com/downloads/ Search for “SQL Server SSIS Sample Component” • Professional SQL Server 2005 Integration Services – WROX (Ch 14 – 15 – Samples) http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764584359.html • Microsoft SQL Server 2005 Integration Services – SAMS (Ch 24 – 25 - Samples) http://www.samspublishing.com/bookstore/product.asp?isbn=0672327813
Thank You! Darren Green Konesans Ltd darren.green@konesans.com http://www.konesans.com http://www.sqldts.com http://www.sqlis.com
Platinum www.SQLBits.com[Conference Web site] www.sqlbits.com www.SQLBlogCasts.com[Becoming the premier Blogging site for SQL professionals] Gold www.SQLServerFAQ.com[UK SQL Server Community Website] Silver UK SQL Bloggers cwebbbi.spaces.live.comsqlblogcasts.com/blogs/simonssqlblogcasts.com/blogs/tonyrogerson Feedback Forms!!