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を更新する] に設定し、[内部XMLを更新] フォーミュラを設定して、宛先ツールの%uuid%プレースホルダーを UUID に置き換えます。

Adding the Action Tool

Designer に同梱されている Alteryx マクロのうち、影響を受けるものは以下のとおりです。

  1. IFS.yxmc

  2. Google_Analytics.Prep_Query_String.yxmc

  3. UTCDateTimeConverterMacro.yxmc