Sie sind auf Seite 1von 27

Platinum

Learn & Enjoy


[Put your phone on Vibrate!] www.sqlbits.com

Group BY:
Gold

[Food and Drink at Reading Bowl, see you there!]

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
}
}
Classes & Attributes

Base Class Attribute

ConnectionManagerBase DtsConnectionAttribute

PipelineComponent DtsPipelineComponentAttribute

ForEachEnumerator DtsForEachEnumeratorAttribute

LogProviderBase DtsLogProviderAttribute

Task DtsTaskAttribute
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
UI Classes & Attributes

Interface / Class Notes

IDtsConnectionManagerUI Use Win Form

Use Win Form


IDtsComponentUI
CManagedComponentWrapper

ForEachEnumeratorUI UserControl

IDtsLogProviderUI Not Supported

Use Win Form


IDtsTaskUI
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)

Location x86 x64 IA64 MSIL

Program Files Design Design

GAC Run Run

• 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)

Location x86 x64 IA64 MSIL

Program Files (x86) Design Design

GAC Run Run Run

• 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)

Location x86 x64 IA64 MSIL

GAC Run Run

• Support for IA64


• Support for Any CPU / MSIL
• No designer support
64-bit Tools Only

Location x86 x64 IA64 MSIL

Program Files (x86)

GAC Run Run

• 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.a
sp?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
Gold

[Becoming the premier Blogging site for SQL professionals]


www.SQLServerFAQ.com
[UK SQL Server Community Website]
Silver

UK SQL Bloggers
cwebbbi.spaces.live.com
sqlblogcasts.com/blogs/simons
sqlblogcasts.com/blogs/tonyrogerson

Feedback Forms!!

Das könnte Ihnen auch gefallen