Condividi tramite


Attività Esegui pacchetto

L'attività Esegui pacchetto estende le funzionalità aziendali di Integration Services consentendo ai pacchetti di eseguire altri pacchetti nell'ambito di un flusso di lavoro.

È possibile utilizzare l'attività Esegui pacchetto per gli scopi seguenti:

  • Suddivisione del flusso di lavoro di pacchetti complessi. Questa attività consente di suddividere il flusso di lavoro in più pacchetti, più semplici da leggere, testare e gestire. Se ad esempio si caricano dati in uno schema star, sarà possibile compilare un pacchetto a parte per il popolamento delle singole dimensioni e della tabella dei fatti.

  • Riutilizzo di parti di pacchetti. È possibile riutilizzare parti del flusso di lavoro di un pacchetto in altri pacchetti. È ad esempio possibile compilare un modulo di estrazione dati che può essere chiamato da pacchetti diversi. Ogni pacchetto che chiama il modulo di estrazione può quindi eseguire operazioni diverse di ripulitura, filtraggio o aggregazione dei dati.

  • Raggruppamento di unità di lavoro. Le unità di lavoro possono essere incapsulate in pacchetti separati ed è possibile crearne un join come componenti transazionali al flusso di lavoro di un pacchetto padre. Il pacchetto padre esegue ad esempio i pacchetti accessori e, in base all'esito positivo o negativo dell'esecuzione di questi ultimi, esegue il commit o il rollback della transazione.

  • Controllo della sicurezza dei pacchetti. Gli autori dei pacchetti hanno l'esigenza di accedere solo a una parte di una soluzione composta da più pacchetti. Suddividendo un pacchetto in più pacchetti è possibile offrire un livello di sicurezza superiore, perché a ogni autore è possibile concedere l'accesso ai soli pacchetti interessati.

Un pacchetto che esegue altri pacchetti è detto in genere pacchetto padre, mentre i pacchetti eseguiti dal flusso di lavoro di un pacchetto padre sono detti pacchetti figlio.

In Integration Services sono incluse attività per l'esecuzione delle operazioni del flusso di lavoro, ad esempio l'esecuzione di eseguibili e file batch. Per ulteriori informazioni, vedere Attività Esegui processo.

Esecuzione di pacchetti

L'attività Esegui pacchetto consente di eseguire i pacchetti figlio contenuti nello stesso progetto in cui è contenuto il pacchetto padre. Per selezionare un pacchetto figlio dal progetto, impostare la proprietà ReferenceType su Riferimento al progetto, quindi impostare la proprietà PackageNameFromProjectReference.

[!NOTA]

L'opzione ReferenceType è di sola lettura e viene impostata su Riferimento esterno se il progetto che contiene il pacchetto non è stato convertito nel modello di distribuzione del progetto. Per ulteriori informazioni sulla conversione, vedere Distribuire progetti nel server Integration Services.

L'attività Esegui pacchetto consente inoltre di eseguire i pacchetti archiviati nel database SQL Server msdb e quelli archiviati nel file system. L'attività utilizza una gestione connessione OLE DB per connettersi a SQL Server o una gestione connessione file per l'accesso al file system. Per ulteriori informazioni, vedere Gestione connessione OLE DB e Gestione connessione file flat.

Poiché l'attività Esegui pacchetto consente anche di eseguire un piano di manutenzione database, è possibile gestire sia pacchetti SSIS che piani di manutenzione database nella stessa soluzione di Integration Services. Un piano di manutenzione database è simile a un pacchetto di SSIS, ma può includere solo attività di manutenzione del database e viene sempre archiviato nel database msdb.

Se si sceglie un pacchetto archiviato nel file system, sarà necessario specificare il nome e il percorso del pacchetto. Il pacchetto può risiedere in qualunque posizione del file system e non deve necessariamente trovarsi nella stessa cartella del pacchetto padre.

Il pacchetto figlio può essere eseguito nel processo del pacchetto padre o in un processo a parte. L'esecuzione del pacchetto figlio in un processo a parte richiede più memoria, ma offre maggiore flessibilità. Se ad esempio il processo figlio non riesce, il processo padre potrà continuare l'esecuzione.

Talvolta può essere tuttavia necessario che l'esito dei pacchetti padre e figlio venga determinato come per una singola unità oppure si desidera evitare l'overhead di un processo aggiuntivo. Se ad esempio un processo figlio non riesce e nel processo padre la fase successiva dell'elaborazione dipende dal completamento del processo figlio, è preferibile eseguire il pacchetto figlio nello stesso processo del pacchetto padre.

Per impostazione predefinita, la proprietà ExecuteOutOfProcess dell'attività Esegui pacchetto è impostata su False e il pacchetto figlio viene eseguito nello stesso processo del pacchetto padre. Se si imposta questa proprietà su True, il pacchetto figlio viene eseguito in un processo separato. In questo modo è possibile che l'avvio del pacchetto figlio sia rallentato. Inoltre, se si imposta la proprietà su True, non è possibile eseguire il debug del pacchetto in un'installazione di soli strumenti. È necessario installare Integration Services. Per ulteriori informazioni, vedere Installazione di Integration Services

Estensione delle transazioni

Poiché la transazione utilizzata dal pacchetto padre può essere estesa al pacchetto figlio, è possibile eseguire in un'unica operazione il commit o il rollback di tutte le operazioni eseguite dai due pacchetti. È ad esempio possibile eseguire il commit o il rollback degli inserimenti nel database eseguiti dal pacchetto padre a seconda dell'esito degli inserimenti nel database eseguiti dal pacchetto figlio e viceversa. Per ulteriori informazioni, vedere Transazioni ereditate.

Propagazione dei dettagli di registrazione

Il pacchetto figlio eseguito dall'attività Esegui pacchetto invia sempre i dettagli di registrazione al pacchetto padre, anche se non è configurato per l'utilizzo della registrazione. I dettagli ricevuti dal pacchetto figlio verranno tuttavia registrati solo se l'attività Esegui pacchetto è configurata per l'utilizzo della registrazione. Per ulteriori informazioni, vedere Registrazione di Integration Services (SSIS).

Passaggio di valori ai pacchetti figlio

I pacchetti figlio utilizzano in genere valori ricevuti dal pacchetto chiamante, che normalmente è il pacchetto padre. L'utilizzo di valori ricevuti da un pacchetto padre può essere utile negli scenari seguenti:

  • Parti di un flusso di lavoro più grande sono assegnate a pacchetti diversi. È ad esempio possibile creare un pacchetto che scarica dati durante la notte, li riepiloga, assegna i valori di riepilogo alle variabili appropriate e quindi le passa a un altro pacchetto per un'ulteriore elaborazione dei dati.

  • Il pacchetto padre coordina dinamicamente le attività in un pacchetto figlio. Il pacchetto padre determina ad esempio il numero dei giorni del mese corrente e lo assegna a una variabile, di modo che il pacchetto figlio esegua una determinata attività per il numero di volte indicato da tale valore.

  • Un pacchetto figlio deve accedere ai dati derivati dinamicamente dal pacchetto padre. Ad esempio, il pacchetto padre estrae dati da una tabella e carica il set di righe in una variabile, quindi il pacchetto figlio esegue ulteriori elaborazioni su tali dati.

È possibile utilizzare i metodi seguenti per passare valori a un pacchetto figlio:

  • Configurazioni di pacchetto

    In Integration Services è disponibile un tipo di configurazione, cioè Variabile pacchetto padre, per il passaggio dei valori dal pacchetto padre a quello figlio. Tale configurazione è compilata in base al pacchetto figlio e utilizza una variabile del pacchetto padre. Viene quindi eseguito il mapping della configurazione a una variabile nel pacchetto figlio o alla proprietà di un oggetto nel pacchetto figlio. La variabile può anche essere utilizzata negli script eseguiti dall'attività Script o dal componente script.

  • Parametri

    È possibile configurare l'attività Esegui pacchetto per eseguire il mapping delle variabili o dei parametri del pacchetto padre o dei parametri del progetto ai parametri del pacchetto figlio. Il progetto deve utilizzare il modello di distribuzione del progetto e il pacchetto figlio deve essere contenuto nello stesso progetto in cui è contenuto il pacchetto padre. Per ulteriori informazioni, vedere Editor attività Esegui pacchetto.

    [!NOTA]

    Se il parametro del pacchetto figlio non è sensibile e ne viene eseguito il mapping a un parametro padre sensibile, non sarà possibile completare l'esecuzione del pacchetto figlio.

    Sono supportate le seguenti condizioni di mapping:

    • Viene eseguito il mapping del parametro del pacchetto figlio sensibile a un parametro padre sensibile

    • Viene eseguito il mapping del parametro del pacchetto figlio sensibile a un parametro padre non sensibile

    • Viene eseguito il mapping del parametro del pacchetto figlio non sensibile a un parametro padre non sensibile

La variabile del pacchetto padre può essere definita nell'ambito dell'attività Esegui pacchetto o in un contenitore padre, ad esempio il pacchetto. Se sono presenti più variabili con lo stesso nome, verrà utilizzata quella definita nell'ambito dell'attività Esegui pacchetto oppure quella con ambito più vicino all'attività.

Per ulteriori informazioni, vedere Utilizzare i valori di variabili e parametri in un pacchetto figlio.

Accesso alle variabili del pacchetto padre

Utilizzando l'attività Script è possibile consentire ai pacchetti figlio di accedere alle variabili del pacchetto padre. Quando si immette il nome della variabile del pacchetto padre nella pagina Script in Editor attività Script, non includere Utente: nel nome della variabile. In caso contrario, tramite il pacchetto figlio non viene individuata la variabile quando si esegue il pacchetto padre. Per ulteriori informazioni sull'utilizzo dell'attività Script per accedere alle variabili del pacchetto padre, vedere l'intervento sul blog relativo all'accesso alle variabili in un pacchetto padre in SSIS sul sito Web consultingblogs.emc.com.

Configurazione dell'attività Esegui pacchetto

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sull'impostazione di queste proprietà in Progettazione SSIS, fare clic sull'argomento seguente:

Configurazione dell'attività Esegui pacchetto a livello di codice

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di codice, fare clic sull'argomento seguente:

Contenuto correlato

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.