Skip to main content

AMP Engine によるコマンド実行ツールの問題の回避策

AMP Engineのマルチスレッド処理の影響により、複数のマクロでコマンド実行ツールを使用して同じ一時ファイルに書き込む場合に、同時実行の問題が発生することがあります。フィールドサマリーツールの実装を例に、不一致を回避する方法を示します。

次の画像は、それぞれIFS.yxmc内にネストされた実行コマンドツールを含む、並列フィールドサマリーツールを示しています。

3 Field Summary tools that rely on IFS macro

マクロを開くと、出力用の一時ディレクトリ内のファイルを指定するコマンド実行ツールが表示されます。

IFS macro

エラーを回避するには、入力/出力ファイル名に%uuid%を追加し、UUIDが含まれるようにコマンド実行ツールの設定を変更します。こうすることで、コマンド実行ツールの各インスタンスが、異なる入力/出力ファイルの一時ディレクトリを持つようになります。

Sample change in RunCommand Tool config

次に、同時に実行される可能性のあるコマンド実行ツールの前に、アクションツール(質問)を追加します。アクションツールを[フォーミュラで生XMLを更新]に設定し、宛先ツールの%uuid%プレースホルダーをUUIDに置き換えるように[内部XMLを更新]フォーミュラを設定します。

Adding the Action Tool

Designerに付属するAlteryxマクロのうち、影響を受けるもの

  1. IFS.yxmc

  2. Google_Analytics.Prep_Query_String.yxmc

  3. UTCDateTimeConverterMacro.yxmc