やりたい事の概要は下記の通りです。
①Alteryx上のコマンド実行のツールアイコンで、Windowsのバッチファイルの実行を行う。
ここで、バッチファイルはネットワーク上からファイルの取得を行う。
②バッチファイル取得後、ネットワークから取得したファイルを読み込む。
③ファイルから読み込んだデータに対して、Alteryxでデータ加工を行い、最終的なデータを出力する。
Alteryxでは基本的にすべての処理を行う前に、ファイルの入力を全て行うという認識をしています。上記の流れを1回の実行処理で行うことは可能でしょうか?
もしくは、特定のデータのインポートにディレイをかけることはできますでしょうか?
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
まさにコマンドラインツールで実行可能かと思います。
このサンプルでは以下のようなことを行っています。
1.テキスト入力ツールを使ってバッチファイルの中身を作成します。
2.コマンド実行ツール以下の設定を行います
2-1.テキスト入力ツールの内容をバッチファイルとして書き出します
2-2.バッチファイルを実行します
2-3.バッチファイルでコピーされたファイルを読み込みます
2-1の書き出し設定は以下の感じです。
・デリミタは\0
・出力フィールドを引用「常に非表示(Never)」
・先頭業にフィールド名を含める → チェックなし
複数ファイルがあったり、ファイルの名前や数などが不定の場合は、バッチファイルでワイルドカードを使ったり、ディレクトリツールでファイルリストを取り込んでからフォーミュラツールで加工してバッチファイルの中身を作る、という手もあります。
また、ファイル読み取りも一種類のファイルではないなど、複雑な場合はマクロを使わざるをえない、というケースもあるかと思います。その場合は一旦コマンド実行ツールの結果の読み取りのところでダミーファイルを読ませてから改めてマクロで再開する、といったことも可能です。
なお、ネットワーク越しの場合はNET USEなどで先にセッションを張る必要があったりしますが、そのあたりはWindowsのバッチファイルのナレッジになりますので、今回は省略させてください。
ちょっとした小技ですけどコマンドラインツールを使わない場合は下記の様にファイルを読み込むバッチマクロを作ります。
この時あえて何も更新しないけど、入力ツールにはコントロールパラメータをつなげておきます。
こうすることで、コントロールパラメータに入力が無い場合はファイルの読み込みを行わなくなります。
これで任意のタイミングでファイル読み込みを行う事ができます。