マクロを使用して Query スクリプトを実行する - Automate_Studio - 20.3

Connect オンライン ヘルプを使用して Studio を自動化する

Product type
ソフトウェア
Portfolio
Integrate
Product family
Automate
Product
Automate > Automate Studio
Version
20.3
Language
日本語
Product name
Automate Studio
Title
Connect オンライン ヘルプを使用して Studio を自動化する
Topic type
操作方法
リファレンス
インストール
管理
First publish date
2018

マクロを使用してスクリプトを実行するには、Visual Basic for Applications (VBA) でマクロを作成します。

  1. 実行するスクリプトに関連付けられているデータ ファイルを開きます。

    マクロが有効なファイル、つまり .xlsm ファイルを使用していることを確認してください。

  2. Alt+F11 を押下します。
  3. VBA エディターの[Microsoft Excel オブジェクト]で、実行するデータが含まれているシートをダブルクリックします。
  4. 以下のコードをコピーしてウィンドウに貼り付けます。
  5. 以下のデータ ファイル パス、スクリプト ファイル パス、シート名、自動ログオン名を、ファイルの情報と自動ログオン名に置き換えてください。
  6. [保存]をクリックして、VBA エディターを閉じます。
  7. Excel で、[ビュー]タブをクリックしてから、[マクロ]をクリックします。
  8. 実行するマクロをクリックしてから、[実行]をクリックします。
注:

Excel アドインがアクティブになっていないこと。(Connect にログ オンしていないこと) を確認してください。

注:

非同期マクロ実行がサポートされています。

Query マクロ

公開されたスクリプトを実行する

  1. アドイン オブジェクトを定義します。

    Dim StudioMacrosAddin, StudioMacros

  2. Excel からアドイン オブジェクトを取得します。

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

  3. アドイン オブジェクトから COM オブジェクトを取得します。

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. 実行する公開ファイルを選択し、他の実行プロパティを定義します (Query アドイン オブジェクトのプロパティを参照)。

    Dim StudioMacros.PublishedFile = "Table_20150113_150602"

  5. 公開されたスクリプト ファイルを開きます。

    StudioMacros.OpenPublishedScript

  6. アドイン オブジェクトを実行して、Query スクリプトを実行します。

    StudioMacros.RunScript

既存の Query スクリプトを実行する

  1. アドイン オブジェクトを定義します。

    Dim StudioMacrosAddin, StudioMacros

  2. Excel からアドイン オブジェクトを取得します。

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

  3. アドイン オブジェクトから COM オブジェクトを取得します。

    Set StudioMacros = StudioMacrosAddin.Object.Macros

  4. 実行する Query スクリプトを選択し、他の実行プロパティを定義します (Query アドイン オブジェクトのプロパティを参照)。

    以下は、スクリプトをローカルで実行するためのものです: Dim strShuttleFile = "C:\Table_20140930_143519.qsq" 以下は、スクリプトを Evolve から実行するためのものです: StudioMacros.LibraryName = "Query"

    Evolve から送信されたファイルのソリューション名に設定します。ローカル ファイルの場合、strShuttleFile をローカル ファイル パスに設定します。strShuttleFile = "Table_MARA"

  5. スクリプトを開いて実行します。

    StudioMacros.OpenScript (strShuttleFile)

  6. アドイン オブジェクトを実行して、Query スクリプトを実行します。

    StudioMacros.RunScript

Query アドイン オブジェクトのプロパティ

スクリプトで設定された実行設定または高度な実行オプションは、マクロの実行中に尊重されません。これらは、アドイン オブジェクトに対して公開されているさまざまなプロパティを使用して設定する必要があります。

プロパティ/機能 値/パラメータ 説明

公開ファイル

公開ファイルの説明

実行する公開ファイルを選択する

OpenScript()

スクリプト ファイルのパス

実行するスクリプトを選択

OpenPublishedScript

NA

公開スクリプトを開く

StartRow

行番号

ダウンロードしたレコードを書き込む Excel の行

RecordsToFetch

レコード数

Query の実行によって返されるレコードの数

WriteHeader

True/False

ダウンロードしたデータのマッピング ヘッダーを書き込む

ExtractAllRecords

True/False

RecordsToFetch を上書きして、すべてのレコードを抽出する

RunReason

実行理由文字列

この実行の理由を指定する

LogCell

セル

実行ログを書き込むセル

SheetName

シート名

実行に使用されるシート名

ConnName

SAP 接続名

SAP 接続名

RunType

実行のタイプ

0 – 設定に従って実行してレコードをフェッチする

1 – RecordsToFetch を上書きし、最初の 50 レコードのみをダウンロードする

RunScript

NA

スクリプトを実行します

SyncCall

NA

True – スクリプトを同期的に実行する

 

サンプルコード: 公開された Query スクリプトを実行する

 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                     

サンプルコード: 既存の Query スクリプトを実行する

                            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                     

既知の問題

  1. マクロを使用している間は、Winshuttle アドインをロードしないでください (Evolve にログ オンしないでください)。Winshuttle アドインを有効にすることができます。
  2. ExtractAllRecords は、レコード数がダウンロード可能な最大レコード数を超えている場合でも、すべてのレコードをフェッチします。
  3. 別の行を指定しない限り、開始行は常に 2 です。
  4. データ ファイルは、Evolve モードでマクロを使用して実行されるデータ レビュー ワークフローを使用してはなりません。
  5. マクロを使用してデータ ファイルを Evolve モードで実行すると、[ライブラリに保存]は機能しません。