Sviluppo di oggetti personalizzati per Integration Services

Quando gli oggetti del flusso di controllo e del flusso di dati inclusi in SQL Server Integration Services non soddisfano completamente specifici requisiti, è possibile sviluppare molti tipi di oggetti personalizzati, tra cui:

  • Attività personalizzate.

  • Gestioni connessioni personalizzate.   Consentono la connessione a origini dati esterne attualmente non supportate.

  • Provider di log personalizzati.    Consentono di registrare eventi dei pacchetti in formati attualmente non supportati.

  • Enumeratori personalizzati.   Supportano l'iterazione in un set di oggetti o valori in formati attualmente non supportati.

  • Componenti del flusso di dati personalizzati.   Possono essere configurati come origini, trasformazioni o destinazioni.

Il modello a oggetti di Integration Services facilita questo sviluppo personalizzato con classi di base che forniscono un framework coerente e affidabile per l'implementazione personalizzata.

Se non è necessario riutilizzare la funzionalità personalizzata in più pacchetti, l'attività Script e il componente script offrono tutte le funzionalità di un linguaggio di programmazione gestito con una quantità decisamente minore di codice dell'infrastruttura da scrivere Per ulteriori informazioni, vedere Confronto tra soluzioni di scripting e oggetti personalizzati.

Passaggi per lo sviluppo di un oggetto personalizzato Integration Services

Quando si sviluppa un oggetto personalizzato per l'utilizzo in Integration Services, è necessario sviluppare una libreria di classi (DLL) che verrà caricata in fase di progettazione e di esecuzione da Progettazione SSIS e dal runtime di Integration Services. I metodi più importanti che è necessario implementare non sono quelli che lo sviluppatore chiama dal codice personalizzato, ma quelli chiamati dal runtime nei momenti appropriati per inizializzare e convalidare i componenti e richiamarne le funzionalità.

Di seguito sono riportati i passaggi che è necessario completare per lo sviluppo di un oggetto personalizzato:

  1. Creare un nuovo progetto di tipo Libreria di classi nel linguaggio di programmazione gestito preferito.

  2. Ereditare dalla classe di base appropriata, come illustrato nella tabella seguente.

  3. Applicare l'attributo appropriato alla nuova classe, come illustrato nella tabella seguente.

  4. Eseguire l'override dei metodi della classe di base, se necessario, e scrivere codice per la funzionalità personalizzata dell'oggetto.

  5. Facoltativamente, compilare un'interfaccia utente personalizzata per il componente. Per agevolare la distribuzione, è possibile sviluppare l'interfaccia utente come progetto distinto nella stessa soluzione e compilarla come assembly distinto.

  6. Facoltativamente, visualizzare un collegamento a esempi e contenuto della Guida per l'oggetto personalizzato nella Casella degli strumenti SSIS.

  7. Compilare, distribuire ed eseguire il debug del nuovo oggetto personalizzato come descritto in Compilazione, distribuzione e debug di oggetti personalizzati.

Classi di base, attributi e metodi importanti

In questa tabella viene fornito un riferimento rapido agli elementi più importanti del modello a oggetti Integration Services per ogni tipo di oggetto personalizzato che è possibile sviluppare.

Oggetto personalizzato

Classe di base

Attributo

Metodi importanti

Attività

Task

DtsTaskAttribute

Execute

Gestione connessione

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

Provider di log

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

Enumeratore

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

Componente del flusso di dati

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

Collegamenti a esempi e contenuto della Guida

Per visualizzare un collegamento nella Casella degli strumenti SSIS a esempi e contenuto della Guida per un oggetto personalizzato scritto in codice gestito, utilizzare le proprietà seguenti.

Per visualizzare un collegamento a esempi e contenuto della Guida per un oggetto personalizzato scritto in codice nativo, aggiungere voci nel file (con estensione rgs) dello script del Registro di sistema per SamplesTag, HelpKeyword e HelpCollection. Di seguito è riportato un esempio.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Sviluppo di un'interfaccia utente personalizzata

Per consentire agli utenti dell'oggetto personalizzato di configurarne le proprietà, può essere necessario sviluppare anche un'interfaccia utente personalizzata. Nei casi in cui un'interfaccia utente personalizzata non sia strettamente necessaria, è possibile scegliere di crearne una per fornire un'interfaccia più intuitiva rispetto all'editor predefinito.

In un progetto o assembly di interfaccia utente personalizzata sono in genere incluse due classi: una classe che implementa un'interfaccia Integration Services per le interfacce utente per il tipo specifico di oggetto personalizzato e il Windows Form che l'interfaccia visualizza per raccogliere informazioni dall'utente. Le interfacce che si implementano includono solo alcuni metodi e un'interfaccia utente personalizzata non è difficile da sviluppare.

[!NOTA]

Molti provider di log di Integration Services dispongono di un'interfaccia utente personalizzata che implementa IDtsLogProviderUI e sostituisce la casella di testo Configurazione con un elenco a discesa filtrato di gestioni connessioni disponibili. Tuttavia, le interfacce utente personalizzate per i provider di log personalizzati non sono implementate in questa versione di Integration Services. L'impostazione di un valore per la proprietà UITypeName di DtsLogProviderAttribute non ha alcun effetto.

Nella tabella seguente viene fornito un riferimento rapido alle interfacce che è necessario implementare quando si sviluppa un'interfaccia utente personalizzata per ogni tipo di oggetto personalizzato. Viene inoltre illustrato ciò che l'utente visualizza se si sceglie di non sviluppare un'interfaccia utente personalizzata per l'oggetto oppure se l'oggetto non viene collegato alla relativa interfaccia utente tramite la proprietà UITypeName nell'attributo dell'oggetto. Anche se il potente editor avanzato può essere soddisfacente per un componente del flusso di dati personalizzato, la finestra delle proprietà è una soluzione meno semplice da utilizzare per attività e gestioni connessioni e un enumeratore Foreach personalizzato non può essere configurato senza un form personalizzato.

Oggetto personalizzato

Classe di base per l'interfaccia utente

Comportamento di modifica predefinito senza un'interfaccia utente personalizzata

Attività

IDtsTaskUI

Solo finestra delle proprietà

Gestione connessione

IDtsConnectionManagerUI

Solo finestra delle proprietà

Provider di log

IDtsLogProviderUI

(non implementato in Integration Services)

Casella di testo nella colonna Configurazione

Enumeratore

ForEachEnumeratorUI

Solo finestra delle proprietà. L'area Configurazione enumeratore dell'editor è vuota.

Componente del flusso di dati

IDtsComponentUI

Editor avanzato

Risorse esterne

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per i download, gli articoli, gli esempi e i video Microsoft più recenti, oltre alle soluzioni selezionate dalla community, visitare la pagina Integration Services sul sito MSDN:


Per ricevere una notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedere anche

Attivitá

Compilazione, distribuzione e debug di oggetti personalizzati

Concetti

Persistenza degli oggetti personalizzati