バッチマクロを使って Challenge #66: My Wine Problem に挑戦 – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。前回はChallenge #66: My Wine Problemに挑戦しました。
このWeekly Challengeでは、バッチマクロを使って解答するというおまけチャレンジが用意されています。本エントリでは、バッチマクロを使った解答をご紹介します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2019.2.7.63499 英語版
Challenge #66: My Wine Problem バッチマクロ編
お題
前回のエントリと重複しますが、改めてお題のご紹介です。
Input側のデータはこちら。ボトルの始まりと終わりのIDがあります。
Output側のデータは3つあります。6本、12本、96本を1箱として、ワインを箱詰めしていきます。以下のデータは96本の場合のデータです。
解答
バッチマクロの作成
作成したバッチマクロはこちら。ここからはバッチマクロに配置した各ツールについてご紹介していきます。
FormulaツールではBox sizeという列をInt32型で作成しています。1という数字を出力していますが、この数字は外部から入力した数値(6、12、96)に置き換えるものになります。
FormulaツールにはControl Parameterツール、Actionツールを接続します。Control Parameterは外部からどのデータを入力するか分かるように、Box Sizeというラベルを入力しておきます。
Actionツールには、Formulaツールで設定している「1」を更新するように設定します。
Generate Rowsでは、Order Numberの番号でBox sizeの本数ごとに箱詰めするワインの始まりと終わりのIDを割り当てていきます。以下の設定では、EndingBottleID以下の数値の間はStartingBottleIDにBox sizeの数を足して行を追加するように設定しています。
Multi-Row FormulaツールでEndingBottleIDを更新します。Order Numberが1行上と同じ場合にはStartingBottleIDにBox sizeを足して1を引いた数値を出力するように設定しています。
Multi-Row FormulaツールでBoxNumberForOrderをInt32型で作成し、箱の番号を割り振っていきます。Order Number1行上と同じ場合にはBoxNumberForOrderの1行上に1足した数字を出力します。
FormulaツールではBottlesInThisBatchをInt32型で作成し、箱に入れたワインの本数を出力します。EndingBottleID - StartingBottleID + 1
という計算をしています。また、FormulaツールのあとはSelectツールでBox sizeを一番最後に移動しておきます。
Interface Designerでアイコンを設定して、バッチマクロの設定は完了です。
解答の出力
ワークフローにバッチマクロを配置して解答を出力します。バッチマクロの上の入力には新しく追加したText Inputツール、下の入力には出題のデータを接続します。
新しく追加したText Inputツールでは、6、12、96というBox sizeに使用する数値を用意します。
バッチマクロのQuestionsには、Box sizeのデータを設定します。
ワークフローを実行してデータを確認します。Box sizeという列では6、12、96が出力されており、どのBox sizeか判断できるようになっています。これで解答となります。
出題にあったOutput側のデータとの確認のために、Filterツールでデータを取り出し、SelectツールでBox sizeを削除してみます。
これでデータの確認ができました。
最後に
今回はChallenge #66: My Wine Problemにバッチマクロで挑戦しました。
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。