Pb lancer Package SSIS en VBScript

Le
Gencer
Je dispose d'un pachage SSIS permettant d'extraire des données de fichiers
excel et de les inserer dans une base de données SQL Serveur 2005. Sous
Visual Studio 2005, mon package s'execute correctement. Idem en programmation
VB6.
Cependant, mon probleme survient en programmation VBScript.
Mon package necessite l'initialisation de variables, à savoir le nom du
fichier à traiter.
Code :
pkg = "nomPackage"
Set app = CreateObject("MSDTS.Application")
Set p1 = app.LoadPackage(pkg, true, Nothing)
variables = p1.Variables.add() --> C'est ici que ça plante
L'objet Package n'accepte pas la proprieté Variables

Alors comment passer des variables à mon package ?
Note: Lorsque je modifie mon package pour ne plus qu'il accepte de
variables, ca marche.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI (ex do ré Mi chel la si do) [MVP]
Le #696302
Bonjour !

Juste une idée (non testée) : et en passant par un objet intermédiaire
?
Par exemple :
Set p1 = app.LoadPackage(pkg, true, Nothing)
Set p2 = p1.Variables
variables = p2.add()

@+

MCI
Gilles LAURENT [MVP]
Le #696084
"Gencer" news:

Bonjour,

[...]
| Cependant, mon probleme survient en programmation VBScript.
| Mon package necessite l'initialisation de variables, à savoir le nom
| du fichier à traiter.
| Code :
| pkg = "nomPackage"
| Set app = CreateObject("MSDTS.Application")
| Set p1 = app.LoadPackage(pkg, true, Nothing)
| variables = p1.Variables.add(...) --> C'est ici que ça plante
| L'objet Package n'accepte pas la proprieté Variables

VBScript n'est pas compatible avec les objets .Net SSIS
http://msdn2.microsoft.com/en-us/library/ms403344.aspx

<quote>
Note:
The Integration Services application programming interfaces are
incompatible with COM-based scripting languages such as VBScript
</quote>

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Gencer
Le #696083
Bonjour,

J'ai deja effectué ce test sans succes...

Merci

"MCI (ex do ré Mi chel la si do) [MVP]" wrote:

Bonjour !

Juste une idée (non testée) : et en passant par un objet intermédiaire
?
Par exemple :
Set p1 = app.LoadPackage(pkg, true, Nothing)
Set p2 = p1.Variables
variables = p2.add()

@+

MCI




Gencer
Le #696079
Bonjour,

Si VBScript est incompatible avec les objets .Net SSIS comme on peut le lire
sur le lien http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors
pourquoi je peux créer sous VBScript l'objet MSDTS.Application et l'objet
package pour gérer et exécuter le package SSIS.
Surtout que mon script VBScript exécute bien mon package SSIS quand ce
dernier ne prend pas de paramètres, c'est juste quand je souhaite lui passer
des paramètres que ca ne marche, enfin ce n'est pas que ca na marche plus
c'est surtout que n'arrive pas à trouver la syntaxe pour les ajouter la le
paramètre.
Normalement, c'est :
variables = p1.Variables.add("User::ExcelFile", false, "User", "nomdufichier")
Mais apparemment, non...

A bientôt.

"Gilles LAURENT [MVP]" wrote:

"Gencer" news:

Bonjour,

[...]
| Cependant, mon probleme survient en programmation VBScript.
| Mon package necessite l'initialisation de variables, à savoir le nom
| du fichier à traiter.
| Code :
| pkg = "nomPackage"
| Set app = CreateObject("MSDTS.Application")
| Set p1 = app.LoadPackage(pkg, true, Nothing)
| variables = p1.Variables.add(...) --> C'est ici que ça plante
| L'objet Package n'accepte pas la proprieté Variables

VBScript n'est pas compatible avec les objets .Net SSIS
http://msdn2.microsoft.com/en-us/library/ms403344.aspx

<quote>
Note:
The Integration Services application programming interfaces are
incompatible with COM-based scripting languages such as VBScript
</quote>

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Méta-MCI (MVP)
Le #695882
Bonsoir !

Une cause possible pourrait être l'utilisation d'une structure de
données non compatible avec VBS.
Ainsi, tant qu'il n'y aurait pas de paramètre, ça fonctionnerait ; mais
l'impossibilité de gérer un type de données particulier empêcherait VBS
de pouvoir utiliser certains paramètres.

C'est juste une hypothèse.

@+

Michel Claveau
Gilles LAURENT [MVP]
Le #695878
"Gencer" news:
| Bonjour,

Bonjour,

| Si VBScript est incompatible avec les objets .Net SSIS comme on peut
| le lire sur le lien
| http://msdn2.microsoft.com/en-us/library/ms403344.aspx alors pourquoi
| je peux créer sous VBScript l'objet MSDTS.Application et l'objet
| package pour gérer et exécuter le package SSIS.

Parce que vous utilisez le wrapper COM qui lui est compatible VBScript.
Cependant celui-ci n'expose qu'un sous-ensemble des API .Net SSIS.

| Surtout que mon script VBScript exécute bien mon package SSIS quand ce
| dernier ne prend pas de paramètres, c'est juste quand je souhaite lui
| passer des paramètres que ca ne marche, enfin ce n'est pas que ca na
| marche plus c'est surtout que n'arrive pas à trouver la syntaxe pour
| les ajouter la le paramètre.
| Normalement, c'est :
| variables = p1.Variables.add("User::ExcelFile", false, "User",
| "nomdufichier") Mais apparemment, non...

Un petit transcript avec la Console WSH Shell :
http://glsft.free.fr/index.php?option=com_content&taskÊtegory&sectionid=4&id&Itemid(

*********************************************************************************************
WSH Transcript Start
Start time : 2007-11-04 15:58:24
Username : DOMAINadministrateur
Machine : HOME2003 (Microsoft Windows NT 5.2.3790.2)
*********************************************************************************************
Transcript started, output file is Z:TestMSDTS.txt

WSH Z:Test> ' création d'une instance Application
WSH Z:Test> Set oApp=co("MSDTS.Application")
WSH Z:Test> ' chargement du package de test
WSH Z:Test> Set
oPac=oApp.LoadPackage("C:SSISUsingExecuteProcess.dtsx", True, Nothing)
WSH Z:Test> ' détermination des membres (méthodes et propriétés) de
l'objet "MSDTS.Package"
WSH Z:Test> gm(oPac)

Category Name
--------- ------
Function CheckSignature ()
Function Execute (pConnections, pVariables, pEvents, pLog,
pTransaction)
Sub ExportConfigurationFile (bstrFileName)
Function FindReferencedObjects (pObject)
Function GetBreakpointTargets (pBreakpointSite, onlyEnabled)
Function GetObjectFromPackagePath (bstrPath, ppProperty)
Sub ImportConfigurationFile (bstrFileName)
Sub LoadUserCertificateByHash (ppsaCertHash)
Sub LoadUserCertificateByName (SubjectName)
Sub PermitUnencryptedSave (vbPermit)
Sub ProcessConfiguration (bstrPath, vValue)
Function Validate (pConnections, pVariables, pEvents, pLog)
Property CertificateContext
Property CertificateObject
Property CheckpointFileName
Property CheckpointUsage
Property CheckSignatureOnLoad
Property Configurations
Property Connections
Property CreationDate
Property CreatorComputerName
Property CreatorName
Property DesignEvents
Property EnableConfigurations
Property EncryptCheckpoints
Property Errors
Property ExtendedProperties
Property InteractiveMode
Property LogProviders
Property MaxConcurrentExecutables
Property OfflineMode
Property PackageFormatVersion
Property PackagePassword
Property PackagePriorityClass
Property PackageType
Property ProtectionLevel
Property SaveCheckpoints
Property SQLFolder
Property SuppressConfigurationWarnings
Property UpdateObjects
Property UpdatePackage
Property VersionBuild
Property VersionComments
Property VersionGUID
Property VersionMajor
Property VersionMinor
Property Warnings

WSH Z:Test>

Transcript stopped.

Et là on s'aperçoit que le wrapper COM "MSDTS.Package" n'expose pas la
propriété "Variables" permettant de manipuler les variables d'un
package. Il est donc nécessaire d'utiliser directement les API .Net (Les
API .Net ne sont pas compatibles avec un langage de scripting comme
VBScript).

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme