2012-04-16 2 views
1

Nous avons un travail SSIS appelé ExportData et il accepte le paramètre 'ExportType'. Le paramètre ExportType peut être 'schedule' ou 'unschedule'.Exécution du package SSIS avec 2 configurations différentes

J'ai créé la variable appelée '@ExportType' et créé la configuration SSIS, exposant la variable dans le fichier de configuration et l'appelant 'ScheduleConfig'. J'ai copié ce fichier et changé la valeur en 'unschedule' et l'ai appelé 'UnscheduleConfig'.

J'ai créé le travail SSIS dans SQL Server 2008 et mis en place 2 étapes pour 'Schedule' et 'Unschedule'. J'ai joint le bon fichier de configuration pour chaque étape. Mais quelle que soit l'étape que je cours, il exécute toujours 'Schedule'. Je suis sûr et vérifié les fichiers de configuration et les étapes.

Comment exécuter 2 tâches différentes avec 2 fichiers de configuration différents?

J'ai essayé en utilisant la méthode SetValues ​​et cela ne fonctionne pas aussi.

Répondre

1

Si je comprends bien vos besoins. Voici un exemple de paquet créé en SSIS 2008 R2 et fait ce que vous cherchez. L'exemple utilise un package unique, qui est exécuté sous deux étapes de travail d'agent SQL différentes et les deux étapes utilisent une copie différente du même fichier de configuration. Les fichiers de configuration contiennent des valeurs différentes pour la variable utilisée dans le package.

  • Création d'un exemple de package SSIS nommé SO_10177578. Dans le package, créé une variable de package nommée ExportType du type de données String. En outre, placé le Execute SQL Task dans l'onglet Flux de contrôle. Cette tâche aidera à identifier la valeur transmise à la variable ExportType.

New package

  • Ajouté la connexion OLE DB à une base de données et le nom de la connexion comme SQLServer. J'ai choisi d'utiliser l'authentification SQL Server pour ce gestionnaire de connexions.

Connection manager

  • Dans la base de données SQL, a créé une table nommée dbo.ExportData avec la strucutre suivante. La colonne Id est une colonne d'identité.

Table structure

  • Le tableau ne contient pas de données pour commencer. Cette table sera remplie avec des données lorsque le paquet est exécuté.

No data to begin with

  • Sur le package SSIS, cliqués dans le menu SSIS -> sélectionné l'option Package Configuration. Dans la boîte de dialogue Organiseur de configurations de package, cochez la case Activer les configurations de package et cliquez sur le bouton Ajouter. Créé une nouvelle configuration de package du type XML Configuration file. Sélectionne un chemin pour stocker le fichier.

Package type

  • Ajouté le Valeur propriété de la variable ExportType et la ConnectionString propriété du gestionnaire de connexion SQLServer au fichier de configuration.

Values added to file

  • Sur la tâche d'exécution SQL, choisi la connexion être SQLServer et régler la SQLStatement propriété à INSERT INTO dbo.ExportData (PackageName, ExportTypeValue) VALUES (?, ?)

Execute SQL Task General

  • Configuré les deux paramètres pour les variables appropriées disponibles sur le package. Maintenant, le paquet est prêt pour le déploiement.

Parameter mapping

  • Sur le nœud Agent SQL du serveur de base de données, a créé un nouveau travail SQL nommé Test_ExportData. Owner Les informations de champ sont supprimées pour masquer les informations sensibles.

SQL job

  • Sur la page de travail SQL étapes, créé deux étapes nommées Step_01 et Step_02.

SQL Job steps

  • Étape 1 est configuré comme ci-dessous avec le paquet étant stocké dans le chemin c:\temp\SO_10177578.dtsx.

Step 1 Package

  • Copié le fichier de configuration de package créé à l'aide du package et changé la valeur de la variable ExportType à annexe. Nommé le fichier de configuration en tant que ScheduleConfig.dtsConfig. La capture d'écran affiche uniquement une partie du fichier de configuration pour masquer les informations de chaîne de connexion sensibles.

ScheduleConfig

  • Dans l'étape 1 de la tâche, renvoi du fichier de configuration de paquet nouvellement créé à partir du chemin c:\temp\Test\ScheduleConfig.dtsConfig.

Step 1 config

  • Étape 2 est configuré comme ci-dessous et il utilise le même paquet stocké dans le chemin c:\temp\SO_10177578.dtsx tel qu'il est utilisé par l'étape 1.

Step 2 Package

  • copié le fichier de configuration de l'emballage créé en utilisant le paquet modifié et la valeur de la variable ExportTypeà déprogrammer. Nommé le fichier de configuration en tant que UnscheduleConfig.dtsConfig. La capture d'écran affiche uniquement une partie du fichier de configuration pour masquer les informations de chaîne de connexion sensibles.

UnscheduleConfig

  • Dans l'étape 2 du travail, a renvoyé le fichier de configuration de package nouvellement créé à partir du chemin c:\temp\Test\UnscheduleConfig.dtsConfig.

Step 2 Config

  • Maintenant, les deux étapes sont configuré. Exécuté le nouveau travail d'agent SQL.

Job executed

  • la table ExportData Interrogé. Vous pouvez remarquer que le package a été exécuté deux fois et que chaque exécution dans les étapes du travail de l'agent SQL a utilisé les fichiers de configuration appropriés spécifiés dans les étapes.

Data verified.

espoir qui aide.

+0

C'est exactement comme cela que je l'ai fait hier, ça marche d'abord 3 ou 4 tests, mais ça ne marche plus après ça, merci quand même. – TTCG

1

vous ne pouvez pas faire cela. Le SSIS ne lira pas la nouvelle configuration.

Vous devez appeler le package deux fois, une fois avec le fichier de configuration A et une fois avec le fichier de configuration B. Dans chaque fichier de configuration, la variable @ExportType est définie sur 'schedule' et 'unschedule'.

Vous ne pouvez définir un paramètre qu'une seule fois. Même si vous utilisez DTEXEC avec l'option/Config par exemple vous CANT remplacer un paramètre qui est déjà défini

2

Je vous suggère de ne pas stocker @ExportType dans une configuration SSIS. Vous pouvez remplacer la valeur de la ligne de commande DTEXEC en ajoutant un commutateur SET similaire à:

/SET "\ Package.Variables [ExportType].Propriétés [valeur] »; annexe

Vous pouvez utiliser le même PackagePath ci-dessus pour remplacer cette valeur variable dans l'Integration Services Agent SQL Etape Type d'emploi sur l'ensemble des valeurs onglet

Hope this helps, Andy

.
Questions connexes