Utilizar macros para ejecutar un script de Query - Automate_Studio - 20.3

Automatizar Studio con la ayuda online de Connect

Version
20.3
Language
Español (España)
Product name
Automate Studio
Title
Automatizar Studio con la ayuda online de Connect
First publish date
2018

Para ejecutar un script con una macro, cree la macro en Visual Basic for Applications (VBA).

  1. Abra el archivo de datos que esté asociado al script que desee ejecutar.

    Asegúrese de usar una archivo habilitado para macros o archivo .xlsm.

  2. Pulse Alt+F11.
  3. En el editor de VBA, en Objetos de Microsoft Excel, haga doble clic en la hoja que contenga los datos que desee ejecutar.
  4. Copie y pegue el código de abajo en la ventana.
  5. Reemplace la ruta del archivo de datos, la del archivo de script, el nombre de la hoja y el nombre de inicio de sesión automático de abajo con la información de sus archivos y su nombre de inicio de sesión automático.
  6. Haga clic en Guardar y, a continuación, cierre el editor de VBA.
  7. En Excel, haga clic en la pestaña Vista y, a continuación, en Macros.
  8. Haga clic en la macro que desee ejecutar y, a continuación, en Ejecutar.
Nota:

Asegúrese de que el complemento de Excel no esté activo (de que no haya iniciado sesión enConnect ).

Nota:

Se permite ejecutar una macro asíncrona.

Macros de Query

Ejecutar un script publicado

  1. Defina los objetos del complemento.

    Dim StudioMacrosAddin, StudioMacros

  2. Consiga el objeto del complemento de Excel.

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

  3. Consiga el objeto COM del objeto del complemento.

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. Seleccione el archivo publicado que desee ejecutar y defina otras propiedades de ejecución (consulte Propiedades para un objeto de complemento de Query).

    Dim StudioMacros.PublishedFile = "Table_20150113_150602"

  5. Abra el archivo de script publicado.

    StudioMacros.OpenPublishedScript

  6. Ejecute AddinObject para ejecutar el script de Query.

    StudioMacros.RunScript

Ejecutar un script de Query existente

  1. Defina los objetos del complemento.

    Dim StudioMacrosAddin, StudioMacros

  2. Consiga el objeto del complemento de Excel.

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

  3. Consiga el objeto COM del objeto del complemento.

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. Seleccione el script de Query que desee ejecutar y defina otras propiedades de ejecución (consulte Propiedades para un objeto de complemento de Query).

    Para ejecutar el script de forma local: Dim strShuttleFile = "C:\Table_20140930_143519.qsq"Para ejecutar el script desde Evolve:  StudioMacros.LibraryName = "Query"

    Establézcalo en Nombre de solución para un archivo enviado desde Evolve. Para un archivo local, configure strShuttleFile a la ruta del archivo local.strShuttleFile = "Table_MARA"

  5. Abra el script que va a ejecutar.

    StudioMacros.OpenScript (strShuttleFile)

  6. Ejecute AddinObject para ejecutar el script de Query.

    StudioMacros.RunScript

Propiedades para un objeto de complemento de Query

La configuración de la ejecución o las opciones avanzadas de ejecución que estén configuradas en el script no se respetan durante la ejecución de la macro. Se deben configurar con las diversas propiedades que se han expuesto para el objeto del complemento.

Propiedad/Función Valor(es)/Parámetro Descripción

PublishedFile

Descripción de archivo publicado

Selecciona el archivo publicado que se va a ejecutar

OpenScript ()

Ruta del archivo de script

Selecciona el script que se va a ejecutar

OpenPublishedScript

No disponible

Abre el script publicado

StartRow

Número de fila

Fila de Excel a partir de la que se van a escribir los registros descargados

RecordsToFetch

N.º de registros

Número de registros que devolverá la ejecución de Query

WriteHeader

Verdadero/Falso

Escribe encabezados de asignación para los datos descargados

ExtractAllRecords

Verdadero/Falso

Invalida RecordsToFetch y extrae todos los registros

RunReason

Cadena del motivo de la ejecución

Especifica un motivo para esta ejecución

LogCell

Celda

Celda en la que se deben escribir los registros de la ejecución

SheetName

Nombre de la hoja

Nombre de la hoja que se usará para la ejecución

ConnName

Nombre de conexión de SAP

Nombre de conexión de SAP

RunType

Tipo de ejecución

0 – Ejecutar para obtener registros según configuración

1 – Sobrescribir RecordsToFetch y descargar solo los primeros 50 registros

RunScript

No disponible

Ejecutar el script

SyncCall

No disponible

Verdadero: Ejecutar el script en modo síncrono

 

Código de muestra: Ejecutar un script de Query publicado

 Sub RunPublishedQSQfile() '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with 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     'StudioMacros.LogCell = "H2"   'StudioMacros.SheetName = "Sheet2"     'StudioMacros.ConnectionName = "w6r-800"       ' 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                     

Código de muestra: Ejecutar un script de Query existente

                            Sub RunNormalQsqFile()  '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with 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   'StudioMacros.LogCell = "H2"   'StudioMacros.SheetName = "Sheet2"    'StudioMacros.ConnectionName = "w6r-800"       ' Set RunReason to provide reason for run.       StudioMacros.RunReason = "Run Reason"        'Run = 0, RunOnlyFiftyRecords = 1       StudioMacros.RunType = 0    ' Set in case of evolve subitted file   StudioMacros.LibraryName = "Query"    ' Set it to Solution Name in case of evolve submitted file   ' For local File,set strShuttleFile to local file path       strShuttleFile = "Table_MARA"        '  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                     

Problemas conocidos

  1. Mientras use macros, no debería tener cargados los complementos de Winshuttle (no debería tener iniciada la sesión en Evolve). Los complementos de Winshuttle se pueden habilitar.
  2. ExtractAllRecords recupera todos los registros, incluso si el número de registros es superior al número máximo de registros que se pueden descargar.
  3. La fila de inicio siempre es la 2, a no ser que se indique otra fila.
  4. Los archivos de datos no tienen que usar el proceso de workflow de Revisión de datos para poder ejecutarse con macros en el modo Evolve.
  5. La opción Guardar en biblioteca no funcionará cuando se use una macro para ejecutar el archivo de datos en el modo Evolve.