Tâche d'exécution de packageExecute Package Task

La tâche d'exécution de package étend les fonctionnalités d'entreprise de Integration ServicesIntegration Services en permettant à des packages d'exécuter d'autres packages au sein d'un flux de travail.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

Vous pouvez utiliser la tâche d'exécution de package aux fins suivantes :You can use the Execute Package task for the following purposes:

  • Division d'un flux de travail de package complexe.Breaking down complex package workflow. Cette tâche vous permet de diviser le flux de travail en plusieurs packages, qui sont plus faciles à lire, à tester et à maintenir.This task lets you break down workflow into multiple packages, which are easier to read, test, and maintain. Par exemple, si vous chargez des données dans un schéma en étoile, vous pouvez créer un package distinct pour remplir chaque dimension et la table de faits.For example, if you are loading data into a star schema, you can build a separate package to populate each dimension and the fact table.

  • Réutilisation de parties de packages.Reusing parts of packages. D'autres packages peuvent réutiliser des parties d'un flux de travail de package.Other packages can reuse parts of a package workflow. Par exemple, vous pouvez créer un module d'extraction des données qui peut être appelé depuis différents packages.For example, you can build a data extraction module that can be called from different packages. Chaque package qui appelle le module d'extraction peut exécuter différentes opérations de purge, de filtrage ou d'agrégation sur les données.Each package that calls the extraction module can perform different data scrubbing, filtering, or aggregation operations.

  • Regroupement des unités de travail.Grouping work units. Les unités de travail peuvent être encapsulées dans des packages distincts et incluses sous forme de composants transactionnels au flux de travail d'un package parent.Units of work can be encapsulated into separate packages and joined as transactional components to the workflow of a parent package. Par exemple, le package parent exécute les packages secondaires et, en fonction de la réussite ou de l'échec des packages secondaires, il valide ou annule la transaction.For example, the parent package runs the accessory packages, and based on the success or failure of the accessory packages, the parent package either commits or rolls back the transaction.

  • Contrôle de la sécurité des packages.Controlling package security. Les auteurs de package ont besoin d'accéder à une seule partie d'une solution multipackage.Package authors require access to only a part of a multipackage solution. En séparant un package en plusieurs packages, vous pouvez fournir un niveau de sécurité plus élevé ; en effet, vous pouvez permettre à un auteur d'accéder aux seuls packages appropriés.By separating a package into multiple packages, you can provide a greater level of security, because you can grant an author access to only the relevant packages.

    Un package qui exécute d'autres packages est généralement appelé « package parent », tandis que les packages exécutés par un flux de travail parent sont appelés « packages enfants ».A package that runs other packages is generally referred to as the parent package, and the packages that a parent workflow runs are called child packages.

    Integration ServicesIntegration Services comprend des tâches qui effectuent des opérations de flux de travail, telles que l'exécution de fichiers de commandes, d'exécutables et de packages. includes tasks that perform workflow operations, such as executing executables and batch files. Pour plus d'informations, consultez Execute Process Task.For more information, see Execute Process Task.

Exécution des packagesRunning Packages

La tâche d'exécution de package peut exécuter des packages enfants contenus dans le même projet qui contient le package parent.The Execute Package task can run child packages that are contained in the same project that contains the parent package. Vous sélectionnez un package enfant d'un projet en définissant la propriété ReferenceType sur Project Reference, puis en définissant la propriété PackageNameFromProjectReference .You select a child package from the project by setting the ReferenceType property to Project Reference, and then setting the PackageNameFromProjectReference property.

Note

L’option ReferenceType est en lecture seule et est définie sur Référence externe si le projet qui contient le package n’a pas été converti en modèle de déploiement de projet.The ReferenceType option is ready-only and set to External Reference if the project that contains the package has not been converted to the project deployment model. Déployer des projets et des packages Integration Services (SSIS).Deploy Integration Services (SSIS) Projects and Packages.

La tâche d’exécution de package peut exécuter des packages stockés dans la base de données SQL ServerSQL Server msdb et des packages stockés dans le système de fichiers.The Execute Package task can also run packages stored in the SQL ServerSQL Server msdb database and packages stored in the file system. La tâche utilise un gestionnaire de connexions OLE DB pour se connecter à SQL ServerSQL Server ou un gestionnaire de connexions de fichiers pour accéder au système de fichiers.The task uses an OLE DB connection manager to connect to SQL ServerSQL Server or a File connection manager to access the file system. Pour plus d'informations, consultez OLE DB Connection Manager et Flat File Connection Manager.For more information, see OLE DB Connection Manager and Flat File Connection Manager.

La tâche d'exécution de package peut également exécuter un plan de maintenance de base de données, ce qui vous permet de gérer les packages SSISSSIS et les plans de maintenance de base de données dans la même solution Integration ServicesIntegration Services .The Execute Package task can also run a database maintenance plan, which lets you manage both SSISSSIS packages and database maintenance plans in the same Integration ServicesIntegration Services solution. Un plan de maintenance de base de données est similaire à un package SSISSSIS , mais il ne peut inclure que des tâches de maintenance de base de données et est toujours stocké dans la base de données msdb.A database maintenance plan is similar to an SSISSSIS package, but a plan can include only database maintenance tasks, and it is always stored in the msdb database.

Si vous choisissez un package stocké dans le système de fichiers, vous devez fournir le nom et l'emplacement du package.If you choose a package stored in the file system, you must provide the name and location of the package. Le package peut se trouver à n'importe quel endroit dans le système de fichiers ; il n'est pas nécessaire qu'il figure dans le même dossier que le package parent.The package can reside anywhere in the file system; it does not have to be in the same folder as the parent package.

Le package enfant peut être exécuté dans le processus du package parent ou dans son propre processus.The child package can be run in the process of the parent package, or it can be run in its own process. L'exécution du package enfant dans son propre processus nécessite davantage de mémoire, mais elle offre plus de souplesse.Running the child package in its own process requires more memory, but it provides more flexibility. Par exemple, si le processus enfant échoue, l'exécution du processus parent peut se poursuivre.For example, if the child process fails, the parent process can continue to run.

Dans d'autres situations, vous pouvez préférer que les packages parent et enfants échouent ensemble comme une même unité, ou bien éviter la charge de traitement supplémentaire d'un autre processus.Alternatively, sometimes you want the parent and child packages to fail together as one unit, or you might not want to incur the additional overhead of another process. Par exemple, si un processus enfant échoue et que les traitements ultérieurs du processus parent du package dépendent de la réussite du processus enfant, alors le package enfant doit s'exécuter dans le processus du package parent.For example, if a child process fails and subsequent processing in the parent process of the package depends on success of the child process, the child package should run in the process of the parent package.

Par défaut, la propriété ExecuteOutOfProcess de la tâche d’exécution du package a la valeur False, et le package enfant s’exécute dans le même processus que le package parent.By default, the ExecuteOutOfProcess property of the Execute Package task is set to False, and the child package runs in the same process as the parent package. Si vous affectez la valeur Trueà cette propriété, le package enfant s'exécute dans un processus indépendant.If you set this property to True, the child package runs in a separate process. Cela peut ralentir le lancement du package enfant.This may slow down the launching of the child package. En outre, si vous affectez la valeur Trueà la propriété, vous ne pouvez pas déboguer le package dans une installation d’outils uniquement.In addition, if you set the property to True, you cannot debug the package in a tools-only install. Vous devez installer Integration ServicesIntegration Services.You must install Integration ServicesIntegration Services. Pour plus d’informations, consultez Installer Integration Services.For more information, see Install Integration Services

Extension des transactionsExtending Transactions

La transaction que le package parent utilise peut être étendue au package enfant ; par conséquent, le travail réalisé par les deux packages peut être validé ou annulé.The transaction that the parent package uses can extend to the child package; therefore, the work both packages perform can be committed or rolled back. Par exemple, les insertions dans une base de données effectuées par le package parent peuvent être validées ou annulées, en fonction de celles réalisées par le package enfant, et vice versa.For example, the database inserts that the parent package performs can be committed or rolled back, depending on the database inserts that the child package performs, and vice versa. Pour plus d'informations, consultez Inherited Transactions.For more information, see Inherited Transactions.

Propagation des détails de la journalisationPropagating Logging Details

Le package enfant exécuté par la tâche d'exécution de package peut ou non être configuré de manière à utiliser la journalisation, mais il transfère toujours les détails du journal au package parent.The child package that the Execute Package task runs may or may not be configured to use logging, but the child package will always forward the log details to the parent package. Si la tâche d'exécution de package est configurée de manière à utiliser la journalisation, elle consigne les informations détaillées du journal à partir du package enfant.If the Execute Package task is configured to use logging, the task logs the log details from the child package. Pour plus d’informations, consultez Journalisation Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Passage de valeurs à des packages enfantsPassing Values to Child Packages

Un package enfant utilise fréquemment des valeurs transmises par un autre package qui l'appelle, généralement son package parent.Frequently a child package uses values passed to it by another package that calls it, ordinarily its parent package. L'utilisation de valeurs issues d'un package parent est utile dans les scénarios suivants :Using values from a parent package is useful in scenarios such as the following:

  • Les parties d'un flux de travail plus volumineux sont affectées à différents packages.Parts of a larger workflow are assigned to different packages. Par exemple, un package télécharge des données chaque nuit, les résume, affecte des valeurs de données de synthèse à des variables, puis les passe à un autre package qui les traite à son tour.For example, one package downloads data on a nightly basis, summarizes the data, assigns summary data values to variables, and then passes the values to another package for additional processing of the data.

  • Le package parent coordonne dynamiquement les tâches d'un package enfant.The parent package dynamically coordinates tasks in a child package. Par exemple, le package parent détermine le nombre de jours d'un mois en cours et affecte ce nombre à une variable, puis le package enfant effectue une tâche autant de fois que la valeur du nombre.For example, the parent package determines the number of days in a current month and assigns the number to a variable, and the child package performs a task that number of times.

  • Un package enfant nécessite l'accès à des données dérivées dynamiquement par le package parent.A child package requires access to data that is dynamically derived by the parent package. Par exemple, le package parent extrait des données d'une table et charge l'ensemble de lignes dans une variable, puis le package enfant effectue des opérations supplémentaires sur les données.For example, the parent package extracts data from a table and loads the rowset into a variable, and the child package performs additional operations on the data.

    Vous pouvez utiliser les méthodes suivantes pour passer des valeurs à un package enfant :You can use the following methods to pass values to a child package:

  • Configurations de packagePackage Configurations

    Integration ServicesIntegration Services contient un type de configuration, en l'occurrence la configuration Variable de package parent, qui permet de passer les valeurs du package parent au package enfant. provides a configuration type, the Parent Package Variable configuration, for passing values from parent to child packages. La configuration est basée sur le package enfant et utilise une variable dans le package parent.The configuration is built on the child package and uses a variable in the parent package. La configuration est mappée à une variable ou à la propriété d'un objet du package enfant.The configuration is mapped to a variable in the child package, or to the property of an object in the child package. La variable peut également être utilisée dans les scripts utilisés par la tâche de script ou le composant de script.The variable can also be used in the scripts used by the Script task or Script component.

  • ParamètresParameters

    Vous pouvez configurer la tâche d'exécution des packages pour mapper les variables ou paramètres de package parent (ou les paramètres du projet) aux paramètres de package enfant.You can configure the Execute Package Task to map parent package variables or parameters, or project parameters, to child package parameters. Le projet doit utiliser le modèle de déploiement de projet et le package enfant doit être contenu dans le même projet qui contient le package parent.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package. Pour plus d'informations, consultez Execute Package Task Editor.For more information, see Execute Package Task Editor.

    Note

    Si le paramètre de package enfant ne respecte pas la casse et s'il est mappé à un paramètre parent qui respecte la casse, le package enfant ne peut pas s'exécuter.If the child package parameter is not sensitive and is mapped to a parent parameter that is sensitive, the child package will fail to run.

    Les conditions de mappage suivantes sont prises en charge :The following mapping conditions are supported:

    Le paramètre de package enfant qui respecte la casse est mappé à un paramètre parent qui respecte la casse.Sensitive, child package parameter is mapped to a sensitive, parent parameter

    Le paramètre de package enfant qui respecte la casse est mappé à un paramètre parent qui ne respecte pas la casse.Sensitive, child package parameter is mapped to a non-sensitive, parent parameter

    Le paramètre de package enfant qui ne respecte pas la casse est mappé à un paramètre parent qui ne respecte pas la casse.Non-sensitive, child package parameter is mapped to a non-sensitive, parent parameter

    La variable du package parent peut être définie dans l'étendue de la tâche d'exécution de package ou dans un conteneur parent tel que le package.The parent package variable can be defined in the scope of the Execute Package task or in a parent container such as the package. Si plusieurs variables de même nom sont disponibles, la variable utilisée est celle définie dans l'étendue de la tâche d'exécution de package ou celle qui, du point de vue de l'étendue, est la plus proche de la tâche.If multiple variables with the same name are available, the variable defined in the scope of the Execute Package task is used, or the variable that is closest in scope to the task.

    Pour plus d’informations, consultez Utiliser les valeurs des variables et des paramètres dans un package enfant.For more information, see Use the Values of Variables and Parameters in a Child Package.

Accès aux variables de package parentAccessing Parent Package Variables

Les packages enfants peuvent accéder à des variables de package parent à l'aide de la tâche de script.Child packages can access parent package variables by using the Script task. Lorsque vous entrez le nom de la variable de package parent sur la page Script dans l' Éditeur de tâche de script, n'incluez pas Utilisateur : dans le nom de la variable.When you enter the name of the parent package variable on the Script page in the Script Task Editor, don’t include User: in the variable name. Sinon, le package enfant ne localise pas la variable lorsque vous exécutez le package parent.Otherwise, the child package doesn’t locate the variable when you run the parent package.

Configuration de la tâche d'exécution de packageConfiguring the Execute Package Task

Vous pouvez définir des propriétés au moyen du concepteur SSISSSIS ou par programmation.You can set properties through SSISSSIS Designer or programmatically.

Pour plus d'informations sur les propriétés définissables dans le concepteur SSISSSIS , cliquez sur la rubrique suivante :For more information about the properties that you can set in SSISSSIS Designer, click the following topic:

Configuration de la tâche d'exécution de package par programmationConfiguring the Execute Package Task Programmatically

Pour plus d'informations sur la définition par programmation de ces propriétés, cliquez sur la rubrique suivante :For more information about programmatically setting these properties, click the following topic:

Éditeur de tâche d'exécution de packageExecute Package Task Editor

Utilisez l'Éditeur de tâche d'exécution de package pour configurer la tâche d'exécution de package.Use the Execute Package Task Editor to configure the Execute Package Task. La tâche d'exécution de package étend les fonctionnalités d'entreprise de Integration ServicesIntegration Services en permettant à des packages d'exécuter d'autres packages au sein d'un flux de travail.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

Que voulez-vous faire ?What do you want to do?

Ouvrir l'Éditeur de tâche d'exécution de packageOpen the Execute Package Task Editor

  1. Ouvrez un projet Integration ServicesIntegration Services dans Visual StudioVisual Studio qui contient une tâche d'exécution de package.Open an Integration ServicesIntegration Services project in Visual StudioVisual Studio that contains an Execute Package task.

  2. Cliquez avec le bouton droit sur la tâche dans le Concepteur SSIS, puis cliquez sur Modifier.Right-click the task in the SSIS Designer, and then click Edit.

Définir les options sur la page GénéralSet the Options on the General Page

NomName
Fournissez un nom unique pour la tâche d'exécution de package.Provide a unique name for the Execute Package task. Ce nom sert d'étiquette à l'icône de la tâche.This name is used as the label in the task icon.

Note

Les noms de tâche doivent être uniques dans un package.Task names must be unique within a package.

DescriptionDescription
Entrez une description de la tâche d'exécution de package.Type a description of the Execute Package task.

Définir les options sur la page PackageSet the Options on the Package Page

ReferenceTypeReferenceType
Sélectionnez Référence du projet pour les packages enfants qui sont dans le projet.Select Project Reference for child packages that are in the project. Sélectionnez Référence externe pour les packages enfants situés en dehors du package.Select External Reference for child packages that are located outside the package

Note

L’option ReferenceType est en lecture seule et est définie sur Référence externe si le projet qui contient le package n’a pas été converti en modèle de déploiement de projet.The ReferenceType option is ready-only and set to External Reference if the project that contains the package has not been converted to the project deployment model. Déployer des projets et des packages Integration Services (SSIS).Deploy Integration Services (SSIS) Projects and Packages.

Mot de passePassword
Si le package enfant s'avère protégé par un mot de passe, indiquez ce dernier ou cliquez sur le bouton représentant des points de suspension (…) afin de définir un nouveau mot de passe.If the child package is password protected, provide the password for the child package, or click the ellipsis button (…) and create a new password for the child package.

ExecuteOutOfProcessExecuteOutOfProcess
Spécifiez si le package enfant s'exécute dans le processus du package parent ou dans un processus distinct.Specify whether the child package runs in the process of the parent package or in a separate process. Par défaut, la propriété ExecuteOutOfProcess de la tâche d’exécution du package a la valeur False, et le package enfant s’exécute dans le même processus que le package parent.By default, the ExecuteOutOfProcess property of the Execute Package task is set to False, and the child package runs in the same process as the parent package. Si vous affectez la valeur trueà cette propriété, le package enfant s'exécute dans un processus indépendant.If you set this property to true, the child package runs in a separate process. Cela peut ralentir le lancement du package enfant.This may slow down the launching of the child package. En outre, si vous avez défini la propriété sur true, vous ne pouvez pas déboguer le package dans une installation d’outils uniquement : vous devez installer le produit Integration ServicesIntegration Services .In addition, if set the property to true, you cannot debug the package in a tools-only install; you must install the Integration ServicesIntegration Services product. Pour plus d’informations, consultez Installer Integration Services.For more information, see Install Integration Services.

Options dynamiques de ReferenceTypeReferenceType Dynamic Options

ReferenceType = Référence externeReferenceType = External Reference

EmplacementLocation
Sélectionnez l'emplacement du package enfant.Select the location of the child package. Cette propriété dispose des options répertoriées dans le tableau suivant.This property has the options listed in the following table.

ValueValue DescriptionDescription
SQL ServerSQL Server Définissez l'emplacement d'une instance de SQL ServerSQL Server.Set the location to an instance of SQL ServerSQL Server.
Système de fichiersFile system Permet de définir l'emplacement du système de fichiers.Set the location to the file system.

ConnexionConnection
Sélectionnez le type d’emplacement de stockage du package enfant.Select the type of storage location for the child package.

PackageNameReadOnlyPackageNameReadOnly
Permet d'afficher le nom du package.Displays the package name.

ReferenceType = Référence du projetReferenceType = Project Reference

PackageNameFromProjectReferencePackageNameFromProjectReference
Sélectionnez un package contenu dans le projet, qui sera le package enfant.Select a package contained in the project, to be the child package.

Options dynamiques pour la définition de l'emplacementLocation Dynamic Options

Emplacement = SQL ServerLocation = SQL Server

ConnexionConnection
Sélectionnez un gestionnaire de connexions OLE DB dans la liste ou cliquez sur <Nouvelle connexion...> pour en créer un.Select an OLE DB connection manager in the list, or click <New connection...> to create a new connection manager.

Rubriques connexes : Gestionnaire de connexions OLE DBRelated Topics: OLE DB Connection Manager

PackageNamePackageName
Permet de saisir le nom du package enfant ou de cliquer sur le bouton représenté par des points de suspension (…) pour atteindre le package.Type the name of the child package, or click the ellipsis (…) and then locate the package.

Emplacement = Système de fichiersLocation = File system

ConnexionConnection
Sélectionnez un gestionnaire de connexions de fichiers dans la liste ou cliquez sur <Nouvelle connexion...> pour en créer un.Select a File connection manager in the list, or click <New connection...> to create a new connection manager.

Rubriques connexes : Gestionnaire de connexions de fichiersRelated Topics: File Connection Manager

PackageNameReadOnlyPackageNameReadOnly
Permet d'afficher le nom du package.Displays the package name.

Définir les options sur la page Liaisons de paramètreSet the Options on the Parameter Bindings Page

Vous pouvez passer des valeurs du package parent ou du projet au package enfant.You can pass values from the parent package or the project, to the child package. Le projet doit utiliser le modèle de déploiement de projet et le package enfant doit être contenu dans le même projet qui contient le package parent.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package.

Pour plus d’informations sur la conversion de projets en modèle de déploiement de projet, consultez Déployer des projets et des packages Integration Services (SSIS).For information about converting projects to the project deployment model, see Deploy Integration Services (SSIS) Projects and Packages.

Paramètre de package enfantChild package parameter
Entrez ou sélectionnez un nom pour le paramètre de package enfant.Enter or select a name for the child package parameter.

Variable ou paramètre de liaisonBinding parameter or variable
Sélectionnez le paramètre ou la variable contenant la valeur que vous souhaitez transmettre au package enfant.Select the parameter or variable that contains the value that you want to pass to the child package.

AjouterAdd
Cliquez pour mapper un paramètre ou une variable à un paramètre de package enfant.Click to map a parameter or variable to a child package parameter.

SupprimerRemove
Cliquez pour supprimer un mappage entre un paramètre ou une variable et un paramètre de package enfant.Click to remove a mapping between a parameter or variable and a child package parameter.