Tarea Ejecutar paqueteExecute Package Task

La tarea Ejecutar paquete amplía las capacidades empresariales de Integration ServicesIntegration Services , ya que permite que los paquetes ejecuten otros paquetes como parte de un flujo de trabajo.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

Puede usar la tarea Ejecutar paquete para los siguientes fines:You can use the Execute Package task for the following purposes:

  • Descomponer un flujo de trabajo de paquetes complejo.Breaking down complex package workflow. Esta tarea permite descomponer el flujo de trabajo en varios paquetes, más fáciles de leer, probar y mantener.This task lets you break down workflow into multiple packages, which are easier to read, test, and maintain. Por ejemplo, si está cargando datos en un esquema de estrella, puede crear un paquete independiente para llenar cada dimensión y la tabla de hechos.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.

  • Reutilizar partes de paquetes.Reusing parts of packages. Otros paquetes pueden reutilizar partes de un flujo de trabajo de paquete.Other packages can reuse parts of a package workflow. Por ejemplo, es posible generar un módulo de extracción de datos al que se pueda llamar desde diferentes paquetes.For example, you can build a data extraction module that can be called from different packages. Cada paquete que llama al módulo de extracción puede realizar distintas operaciones de limpieza, filtrado o agregación de datos.Each package that calls the extraction module can perform different data scrubbing, filtering, or aggregation operations.

  • Agrupar unidades de trabajo.Grouping work units. Las unidades de trabajo pueden encapsularse en paquetes independientes y combinarse como componentes transaccionales con el flujo de trabajo de un paquete primario.Units of work can be encapsulated into separate packages and joined as transactional components to the workflow of a parent package. Por ejemplo, el paquete primario ejecuta los paquetes accesorios y, en función del resultado de la ejecución de los paquetes de accesorios, confirma o revierte la transacción.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.

  • Controlar la seguridad de los paquetes.Controlling package security. Los autores de paquetes necesitan tener acceso a solo una parte de una solución de varios paquetes.Package authors require access to only a part of a multipackage solution. Al separar un paquete en varios paquetes, puede proporcionar un mayor nivel de seguridad, ya que puede conceder a un autor acceso únicamente a los paquetes relevantes.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 paquete que ejecuta otros paquetes se suele denominar paquete primario y los paquetes ejecutados por un flujo de trabajo principal se denominan paquetes secundarios.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 incluye tareas que realizan operaciones de flujo de trabajo, como ejecutar archivos ejecutables y por lotes. includes tasks that perform workflow operations, such as executing executables and batch files. Para obtener más información, vea Execute Process Task.For more information, see Execute Process Task.

Ejecutar paquetesRunning Packages

La tarea Ejecutar paquete puede ejecutar paquetes secundarios incluidos en el mismo proyecto que contiene el paquete primario.The Execute Package task can run child packages that are contained in the same project that contains the parent package. Para seleccionar un paquete secundario del proyecto, establezca la propiedad ReferenceType en Referencia de proyectoy, a continuación, establezca la propiedad PackageNameFromProjectReference .You select a child package from the project by setting the ReferenceType property to Project Reference, and then setting the PackageNameFromProjectReference property.

Nota

La opción ReferenceType es de solo lectura y se establece en Referencia externa si el proyecto que contiene el paquete no se ha convertido al modelo de implementación de proyectos.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. Implementación de proyectos y paquetes de Integration Services (SSIS).Deploy Integration Services (SSIS) Projects and Packages.

La tarea Ejecutar paquete además puede ejecutar paquetes almacenados en la base de datos msdb de SQL ServerSQL Server y paquetes almacenados en el sistema de archivos.The Execute Package task can also run packages stored in the SQL ServerSQL Server msdb database and packages stored in the file system. La tarea usa un administrador de conexiones OLE DB para conectar con SQL ServerSQL Server o un administrador de conexiones de archivos para tener acceso al sistema de archivos.The task uses an OLE DB connection manager to connect to SQL ServerSQL Server or a File connection manager to access the file system. Para obtener más información, vea OLE DB Connection Manager y Flat File Connection Manager.For more information, see OLE DB Connection Manager and Flat File Connection Manager.

La tarea Ejecutar paquete también puede ejecutar un plan de mantenimiento de bases de datos, que permite administrar paquetes de SSISSSIS y planes de mantenimiento de bases de datos en la misma solución 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 mantenimiento de bases de datos es similar a un paquete de SSISSSIS , pero un plan solo puede incluir tareas de mantenimiento de bases de datos y siempre se almacena en la base de datos 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 elige un paquete almacenado en el sistema de archivos, debe proporcionar el nombre y la ubicación del paquete.If you choose a package stored in the file system, you must provide the name and location of the package. El paquete puede residir en cualquier parte del sistema de archivos; no tiene que estar en la misma carpeta que el paquete primario.The package can reside anywhere in the file system; it does not have to be in the same folder as the parent package.

El paquete secundario puede ejecutarse en el proceso del paquete primario o ejecutarse en su propio proceso.The child package can be run in the process of the parent package, or it can be run in its own process. La ejecución del paquete secundario en su propio proceso requiere más memoria, pero ofrece mayor flexibilidad.Running the child package in its own process requires more memory, but it provides more flexibility. Por ejemplo, si se produce un error del proceso secundario, el proceso primario podrá seguir ejecutándose.For example, if the child process fails, the parent process can continue to run.

Sin embargo, a veces puede desearse que el paquete primario y los paquetes secundarios no completen su ejecución como una unidad. También es posible que no desee agregar la sobrecarga de otro proceso.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. Por ejemplo, si se produce un error en un proceso secundario y el procesamiento posterior del proceso primario del paquete depende de que el proceso secundario se complete correctamente, el paquete secundario deberá ejecutarse en el proceso del paquete primario.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.

De forma predeterminada, la propiedad ExecuteOutOfProcess de la tarea Ejecutar paquete se establece en Falsey el paquete secundario se ejecuta en el mismo proceso que el paquete primario.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 establece esta propiedad en True, el paquete secundario se ejecuta en un proceso independiente.If you set this property to True, the child package runs in a separate process. Esto puede ralentizar el inicio del paquete secundario.This may slow down the launching of the child package. Además, si establece la propiedad en True, no se podrá depurar el paquete en una instalación de solo herramientas.In addition, if you set the property to True, you cannot debug the package in a tools-only install. Debe instalar Integration ServicesIntegration Services.You must install Integration ServicesIntegration Services. Para más información, vea Instalar Integration ServicesFor more information, see Install Integration Services

Extender transaccionesExtending Transactions

La transacción utilizada por el paquete primario puede ampliarse al paquete secundario; por tanto, puede confirmarse o revertirse el trabajo realizado por ambos paquetes.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. Por ejemplo, las inserciones en la base de datos realizadas por el paquete primario pueden confirmarse o revertirse en función de las inserciones en la base de datos realizadas por el paquete secundario y viceversa.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. Para obtener más información, vea Inherited Transactions.For more information, see Inherited Transactions.

Propagar detalles de registroPropagating Logging Details

El paquete secundario ejecutado por la tarea Ejecutar paquete puede estar configurado o no para usar registro, pero el paquete secundario siempre reenviará los detalles de registro al paquete primario.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 tarea Ejecutar paquete está configurada para usar registro, la tarea registra los detalles del paquete secundario.If the Execute Package task is configured to use logging, the task logs the log details from the child package. Para más información, vea Registro de Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Pasar valores a paquetes secundariosPassing Values to Child Packages

Frecuentemente, un paquete secundario utiliza valores que le pasa otro paquete que lo llama (generalmente el paquete primario).Frequently a child package uses values passed to it by another package that calls it, ordinarily its parent package. Utilizar valores de un paquete primario es útil en escenarios como el siguiente:Using values from a parent package is useful in scenarios such as the following:

  • Se asignan partes de un flujo de trabajo más grande a paquetes diferentes.Parts of a larger workflow are assigned to different packages. Por ejemplo, un paquete descarga datos todas las noches, resume los datos, asigna valores de datos de resumen a variables y después pasa los valores a otro paquete para un procesamiento adicional de los datos.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.

  • El paquete primario coordina dinámicamente las tareas de un paquete secundario.The parent package dynamically coordinates tasks in a child package. Por ejemplo, el paquete primario determina el número de días del mes actual y asigna el número a una variable, y el paquete secundario realiza una tarea ese número de veces.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 paquete secundario requiere acceso a datos derivados dinámicamente por el paquete primario.A child package requires access to data that is dynamically derived by the parent package. Por ejemplo, el paquete primario extrae datos de una tabla y carga el conjunto de filas en una variable y el paquete secundario realiza operaciones adicionales en los datos.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.

    Puede utilizar los métodos siguientes para pasar valores a un paquete secundario:You can use the following methods to pass values to a child package:

  • Configuraciones de paquetesPackage Configurations

    Integration ServicesIntegration Services proporciona un tipo configuración, la configuración de variable de paquete primario, para pasar valores de paquetes primarios a paquetes secundarios. provides a configuration type, the Parent Package Variable configuration, for passing values from parent to child packages. La configuración se crea en el paquete secundario y utiliza una variable de paquete primario.The configuration is built on the child package and uses a variable in the parent package. Se asigna la configuración a una variable del paquete secundario o a la propiedad de un objeto en el paquete secundario.The configuration is mapped to a variable in the child package, or to the property of an object in the child package. También se puede usar la variable en los scripts usados por la tarea Script o el componente de script.The variable can also be used in the scripts used by the Script task or Script component.

  • ParámetrosParameters

    Puede configurar la tarea Ejecutar paquete para asignar variables o parámetros del paquete primario o bien, parámetros del proyecto a los parámetros del paquete secundario.You can configure the Execute Package Task to map parent package variables or parameters, or project parameters, to child package parameters. El proyecto debe utilizar el modelo de implementación del proyecto y el paquete secundario debe estar incluido en el mismo proyecto que contiene el paquete primario.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package. Para obtener más información, vea Execute Package Task Editor.For more information, see Execute Package Task Editor.

    Nota

    Si el parámetro del paquete secundario no es confidencial y se asigna a un parámetro primario que sea confidencial, el paquete secundario no podrá ejecutarse.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.

    Se admiten las siguientes condiciones de asignación:The following mapping conditions are supported:

    Un parámetro de paquete secundario confidencial se asigna a un parámetro principal confidencialSensitive, child package parameter is mapped to a sensitive, parent parameter

    Un parámetro de paquete secundario confidencial se asigna a un parámetro principal no confidencialSensitive, child package parameter is mapped to a non-sensitive, parent parameter

    Un parámetro de paquete secundario no confidencial se asigna a un parámetro principal no confidencialNon-sensitive, child package parameter is mapped to a non-sensitive, parent parameter

    La variable de paquete primario puede definirse en el ámbito de la tarea Ejecutar paquete o en un contenedor primario como el paquete.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 hay varias variables con el mismo nombre, se usa la variable definida en el ámbito de la tarea Ejecutar paquete o la variable más cercana en el ámbito a la tarea.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.

    Para más información, vea Usar los valores de variables y parámetros en un paquete secundario.For more information, see Use the Values of Variables and Parameters in a Child Package.

Obtener acceso a variables de paquetes primariosAccessing Parent Package Variables

Los paquetes secundarios pueden tener acceso a variables de paquetes primarios mediante la tarea Script.Child packages can access parent package variables by using the Script task. Al escribir el nombre de la variable de paquete primario en la página Script del Editor de la tarea Script, no incluya Usuario: en el nombre 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. De lo contrario, el paquete secundario no podrá encontrar la variable al ejecutar el paquete primario.Otherwise, the child package doesn’t locate the variable when you run the parent package.

Configurar la tarea Ejecutar paqueteConfiguring the Execute Package Task

Puede establecer propiedades a través del Diseñador de SSISSSIS o mediante programación.You can set properties through SSISSSIS Designer or programmatically.

Para obtener más información acerca de las propiedades que puede establecer en el Diseñador SSISSSIS , haga clic en el tema siguiente:For more information about the properties that you can set in SSISSSIS Designer, click the following topic:

Configurar la tarea Ejecutar paquete mediante programaciónConfiguring the Execute Package Task Programmatically

Para obtener más información sobre cómo establecer estas propiedades mediante programación, haga clic en el tema siguiente:For more information about programmatically setting these properties, click the following topic:

Editor de la tarea Ejecutar paqueteExecute Package Task Editor

Utilice el Editor de la tarea Ejecutar paquete para configurar la tarea Ejecutar paquete.Use the Execute Package Task Editor to configure the Execute Package Task. La tarea Ejecutar paquete amplía las capacidades empresariales de Integration ServicesIntegration Services , ya que permite que los paquetes ejecuten otros paquetes como parte de un flujo de trabajo.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

¿Qué desea hacer?What do you want to do?

Abrir el Editor de la tarea Ejecutar paqueteOpen the Execute Package Task Editor

  1. Abra un proyecto de Integration ServicesIntegration Services en Visual StudioVisual Studio que contenga una tarea Ejecutar paquete.Open an Integration ServicesIntegration Services project in Visual StudioVisual Studio that contains an Execute Package task.

  2. Haga clic con el botón derecho en la tarea en el Diseñador SSIS y, después, haga clic en Editar.Right-click the task in the SSIS Designer, and then click Edit.

Establecer las opciones de la página GeneralSet the Options on the General Page

NombreName
Escriba un nombre único para la tarea Ejecutar paquete.Provide a unique name for the Execute Package task. Este nombre se utiliza como etiqueta en el icono de tarea.This name is used as the label in the task icon.

Nota

Los nombres de tarea deben ser únicos en un paquete.Task names must be unique within a package.

DescriptionDescription
Escriba una descripción de la tarea Ejecutar paquete.Type a description of the Execute Package task.

Establecer las opciones de la página PaqueteSet the Options on the Package Page

ReferenceTypeReferenceType
Seleccione Referencia de proyecto para los paquetes secundarios que están en el proyecto.Select Project Reference for child packages that are in the project. Seleccione Referencia externa para los paquetes secundarios que se encuentran fuera del paqueteSelect External Reference for child packages that are located outside the package

Nota

La opción ReferenceType es de solo lectura y se establece en Referencia externa si el proyecto que contiene el paquete no se ha convertido al modelo de implementación de proyectos.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. Implementación de proyectos y paquetes de Integration Services (SSIS).Deploy Integration Services (SSIS) Projects and Packages.

ContraseñaPassword
Si el paquete secundario está protegido con contraseña, debe proporcionar esta contraseña o hacer clic en el botón de puntos suspensivos (...) y crear una nueva contraseña.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
Especifique si el paquete secundario se ejecuta en el proceso del paquete primario o en un proceso independiente.Specify whether the child package runs in the process of the parent package or in a separate process. De forma predeterminada, la propiedad ExecuteOutOfProcess de la tarea Ejecutar paquete se establece en Falsey el paquete secundario se ejecuta en el mismo proceso que el paquete primario.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 establece esta propiedad en true, el paquete secundario se ejecuta en un proceso independiente.If you set this property to true, the child package runs in a separate process. Esto puede ralentizar el inicio del paquete secundario.This may slow down the launching of the child package. Además, si establece la propiedad en true, no podrá depurar el paquete si ha realizado una instalación de solo herramientas (tendrá que instalar el producto 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. Para más información, vea Instalar Integration Services.For more information, see Install Integration Services.

Opciones dinámicas de ReferenceTypeReferenceType Dynamic Options

ReferenceType = Referencia externaReferenceType = External Reference

UbicaciónLocation
Seleccione la ubicación del paquete secundario.Select the location of the child package. Esta propiedad presenta las opciones indicadas en la siguiente tabla.This property has the options listed in the following table.

ValueValue DescriptionDescription
SQL ServerSQL Server Establezca la ubicación de una instancia de SQL ServerSQL Server.Set the location to an instance of SQL ServerSQL Server.
Sistema de archivosFile system Permite establecer como ubicación el sistema de archivos.Set the location to the file system.

ConexiónConnection
Seleccione el tipo de ubicación de almacenamiento para el paquete secundario.Select the type of storage location for the child package.

PackageNameReadOnlyPackageNameReadOnly
Muestra el nombre del paquete.Displays the package name.

ReferenceType = Referencia de proyectoReferenceType = Project Reference

PackageNameFromProjectReferencePackageNameFromProjectReference
Seleccione un paquete incluido en el proyecto para que sea el paquete secundario.Select a package contained in the project, to be the child package.

Opciones dinámicas de ubicaciónLocation Dynamic Options

Ubicación = SQL ServerLocation = SQL Server

ConexiónConnection
Seleccione un administrador de conexiones OLE DB de la lista o haga clic en <Nueva conexión…> para crear un administrador de conexiones.Select an OLE DB connection manager in the list, or click <New connection...> to create a new connection manager.

Temas relacionados: Administrador de conexiones OLE DBRelated Topics: OLE DB Connection Manager

PackageNamePackageName
Escriba el nombre del paquete secundario o haga clic en los puntos suspensivos (...) y después busque el paquete.Type the name of the child package, or click the ellipsis (…) and then locate the package.

Ubicación = Sistema de archivosLocation = File system

ConexiónConnection
Seleccione un administrador de conexiones de archivos de la lista, o bien haga clic en <Nueva conexión…> para crear un administrador de conexiones.Select a File connection manager in the list, or click <New connection...> to create a new connection manager.

Temas relacionados: Administrador de conexiones de archivosRelated Topics: File Connection Manager

PackageNameReadOnlyPackageNameReadOnly
Muestra el nombre del paquete.Displays the package name.

Establecer las opciones de la página Enlaces de parámetroSet the Options on the Parameter Bindings Page

Puede pasar valores del paquete primario o del proyecto al paquete secundario.You can pass values from the parent package or the project, to the child package. El proyecto debe utilizar el modelo de implementación del proyecto y el paquete secundario debe estar incluido en el mismo proyecto que contiene el paquete primario.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package.

Para obtener información sobre cómo convertir proyectos al modelo de implementación de proyectos, vea Implementación de proyectos y paquetes de Integration Services (SSIS).For information about converting projects to the project deployment model, see Deploy Integration Services (SSIS) Projects and Packages.

Parámetro de paquete secundarioChild package parameter
Escriba o seleccione un nombre para el parámetro de paquete secundario.Enter or select a name for the child package parameter.

Enlazar un parámetro o variableBinding parameter or variable
Seleccione el parámetro o variable que contiene el valor que desea pasar al paquete secundario.Select the parameter or variable that contains the value that you want to pass to the child package.

AgregarAdd
Haga clic para asignar un parámetro o variable a un parámetro de paquete secundario.Click to map a parameter or variable to a child package parameter.

QuitarRemove
Haga clic para quitar una asignación entre un parámetro o variable y un parámetro de paquete secundario.Click to remove a mapping between a parameter or variable and a child package parameter.