Help Center > Studio with Connect

Utilisation de macros pour exécuter un script

Pour exécuter un script en utilisant une macro, créez la macro dans VBA (Visual Basic for Applications).

  1. Ouvrez le fichier de données associé au script à exécuter.

    Important : veillez à utiliser un fichier prenant en charge les macros ou .xlsm.

  2. Appuyez sur Alt+F11.
  3. Dans l'éditeur VBA Editor, sous Objets Microsoft Excel, double-cliquez sur le feuille qui contient les données à exécuter.
  4. Copiez et collez le code en dessous dans la fenêtre.
  5. Remplacez le chemin de fichier de données, le chemin du fichier script, le nom de feuille et le nom de connexion automatique en dessous par les informations de vos fichiers et votre nom de connexion automatique.
  6. Cliquez sur Enregistrer et fermez l'éditeur VBA.
  7. Dans Excel, cliquez sur l'onglet Afficher puis sur Macros.
  8. Cliquez sur la macro à exécuter, puis sur Exécuter.

Remarque : vérifiez que le module complémentaire Excel n’est pas actif (que vous n’êtes pas connecté à Foundation).

Remarque : L’exécution de macro asynchrone est prise en charge.

Macros Query

Exécuter un script publié

  1. Définir des objets Addin.

    Dim StudioMacrosAddin, StudioMacros

  2. Obtenez un objet Addin depuis Excel.

    Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")

  3. Obtenez un objet COM depuis un objet Addin.

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. Sélectionnez le fichier publié à exécuter et définissez d'autres propriétés d'exécution (voir Propriétés d'un objet Query Addin).

    Dim StudioMacros.PublishedFile = "Table_20150113_150602"

  5. Ouvrez le fichier script publié.

    StudioMacros.OpenPublishedScript

  6. Exécutez AddinObject pour exécuter le script Query.

    StudioMacros.RunScript

Exécutez un script Query existant

  1. Définir des objets Addin.

    Dim StudioMacrosAddin, StudioMacros

  2. Obtenez un objet Addin depuis Excel.

    Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")

  3. Obtenez un objet COM depuis un objet Addin.

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. Sélectionnez le script Query à exécuter et définissez d'autres propriétés d'exécution (voir Propriétés d'un objet Query Addin).

    Dim strShuttleFile = "C:\Table_20140930_143519.qsq"

  5. Ouvrez le script à exécuter.

    StudioMacros.OpenScript (strShuttleFile)

  6. Exécutez AddinObject pour exécuter le script Query.

    StudioMacros.RunScript

Propriétés d'un objet Query Addin

Les paramètres d'exécution ou les options d'exécution avancées définies dans le script ne sont pas respectés pendant l'exécution de la macro. Vous devez les définir en utilisant les propriétés exposées pour l'objet Addin.

Propriété/Fonction

Valeur(s)/Paramètre

Description

PublishedFile

Description d'un fichier publié

Sélectionne le fichier publié à exécuter

OpenScript ()

Chemin du fichier script

Sélectionne le script à exécuter

OpenPublishedScript

S/O

Ouvre le script publié

StartRow

Numéro de ligne

Ligne Excel à partir de laquelle les enregistrements téléchargés doivent être écrits

RecordsToFetch

Nbre d’enregistrements

Nombre d'enregistrements que doit retourner l'exécution de requête

WriteHeader

True/False

Écrire les en-tête d'association des données téléchargées

ExtractAllRecords

True/False

Remplacer RecordsToFetch et extraire tous les enregistrements

RunReason

Chaîne de raison d'exécution

Spécifier la raison de cette exécution

LogCell

Cellule

Cellule dans laquelle les journaux doivent être écrits

SheetName

Nom de la feuille

Nom de la feuille à utiliser pour l'exécution

AlfName

Fichier de connexion automatique

Nom de la connexion automatique à utiliser

RunType

Type d'exécution

0 – Exécution pour extraire les enregistrements conformément aux paramètres

1 – Remplacement de RecordsToFetch et téléchargement des 50 premiers enregistrements uniquement

RunScript

S/O

Exécuter le script

 

Exemple de code : exécuter un script publié

  Sub RunPublishedQSQfile() '---------------------------------------------- ' Macro pour utiliser le complément WinshuttleStudioMacros avec le code '---------------------------------------------- ' ' RunPublishedfile Macro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If ' Select the published file to Run StudioMacros.PublishedFile = "Table_20150113_150602" StudioMacros.StartRow = 2 ' if not set, then records will be fetched as per script settings StudioMacros.RecordsToFetch = 100 ' True to fetch all records. If set false then StudioMacros.RecordsToFetch will be respected StudioMacros.ExtractAllRecords = True ' Set True to write headers while Run StudioMacros.WriteHeader = True ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'Run = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 ' Call the Run Function to open published script StudioMacros.OpenPublishedScript ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub 

Exemple de code : Exécuter un script Query existant

  Sub RunNormalQsqFile() '---------------------------------------------- ' Macro pour utiliser le complément WinshuttleStudioMacros avec le code '---------------------------------------------- ' ' RunNormalQsqFile Macro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If StudioMacros.StartRow = 2 ' if not set, then records will be fetched as per script settings StudioMacros.RecordsToFetch = 100 ' True to fetch all records. If set false then StudioMacros.RecordsToFetch will be respected StudioMacros.ExtractAllRecords = True ' Set True to write headers while Run StudioMacros.WriteHeader = True ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'Run = 0, RunOnlyFiftyRecords = 1 StudioMacros.RunType = 0 strShuttleFile = "C:\Users\ssingh\Documents\Winshuttle\Studio\Script\Table_20140930_143519.qsq" ' Call the Run Function to open specified script StudioMacros.OpenScript (strShuttleFile) ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub 

Problèmes connus

  1. Les macros créées ans Transaction ou Query v10.x ne sont pas converties automatiquement dans le format Studio v12. Les macros dans le format Studio v12 ne sont pas compatibles avec v10.x. Pour pouvoir les exécuter, vous devez les convertir manuellement.
  2. Lorsque vous utilisez des macros, les compléments Winshuttle ne doivent pas être chargés (vous ne devez pas être connecté à Foundation). Les compléments Winshuttle peuvent être activés.
  3. ExtractAllRecords extrait tous les enregistrements, même si le nombre d'enregistrements est supérieur au nombre maximum d'enregistrements pouvant être téléchargés.
  4. La ligne de début est toujours la ligne 2 si vous ne définissez pas une ligne différente.
  5. Les fichiers de données doivent utiliser le workflow de vérification des données à exécuter en utilisant les macros en mode Foundation.
  6. Enregistrer dans Foundation ne fonctionne pas lorsqu’une macro est utilisée pour exécuter le fichiers de données en mode Foundation.