背景
Data Management Suiteを使ってレポーティングプロセスをオーケストレーションする際、複雑なワークフローシナリオに遭遇することがよくあります。例えば、アプリケーションは実行する必要があるかもしれない:
- 1つのワークフローを複数回、さまざまな入力で行う
- 複数の異なるワークフロー
- 特定の入力を持つ複数の同時ワークフロー
- 日付、ファイル名、ルール名など、特定のパラメータを必要とするソースシステム統合ワークフロー
このような複雑なワークフロー要件を効率的に自動化し、管理するために、Control Sheet のコンセプトは非常に貴重である。コントロールシートは、各ワークフロー実行のインプットを事前に定義できる集中管理ツールとして機能します。コントロールシートを活用することで、ユーザーは、各ワークフローが動作すべきパラメータや条件を指定することができ、各ステップで手動介入することなく、適切な入力で必要なすべてのワークフローを実行するシームレスな自動プロセスを促進します。
コントロールシートを作成し、活用することで、ユーザーは以下のことが可能になります:
- 各実行時にチェーンに渡される入力値を定義する
- チェーンが特定の操作を実行すべきかどうかを決定するフラグを定義する。
- チェーン実行時やルール実行時に、クエリパラメータ、ルール名、日付フィルタなどの値をシステムワークフローに渡す。
- ロールフォワード・オペレーション
- Workiva 内の成果物について、ID の を管理する。
- ワークフローの実行ステータスを記録する
この記事では、シンプルなコントロール・シートの作成手順を紹介する。このシートにより、ユーザーは同じワークフローを様々な入力セットで実行することができる。
前提条件
ステップ1:コントロールシートの設定
- Workivaプラットフォーム内でスプレッドシートを作成する
- OAuth2 グラントに関連付けられたユーザーに所有者権限を割り当てます。
- スプレッドシートとシートの名前を
- コントロール・スプレッドシート
- コントロールシート
ステップ2:コントロールシートのヘッダー(キー)の設定
Chainワークフローで処理される各値のヘッダーを設定する。この例では、以下のヘッダーが設定されている:
- Active_Flag:この行が処理されるべきかどうかを決定する。
- ファイル名:処理するファイル名
- Table_ID:ファイルがインポートされるWdataテーブルのID
ステップ3:コントロールシートのヘッダーに値を割り当てる
- この例では、各キーと値のペアに3つの値が定義されている。したがって、各行が読み込まれるごとに、次のデータが供給される:
true, file_x.csv, df2a1988929e4358858306956685e162
true, file_y.csv, df2a1988929e4358858306956685e162
true, file_z.csv, df2a1988929e4358858306956685e162
ステップ4:管理シートデータを取得するチェーンを作成する
スプレッドシートからコントロールシートのデータを取得するには、スプレッドシートを読み込むためのChainを作成する必要があります。
- Chainsモジュールに移動し、新しいChainを作成する。
- チェーンの設定に移動し、新しいチェーンのタイトルをGet Control Sheet Data とする。
- 2つのChain変数 を追加する:
- cv-SpreadsheetID
- cv-シート名
- 各変数に、対応するSpreadsheetID と SheetName の値をコントロールシートから入力する。
ステップ5:シートデータの取得
コントロールシート内でデータを使用するには、Get Sheet Data Commandを使用する必要があります。このコマンドはスプレッドシートのシートから内容を読み込み、.csv の出力を生成する。
- WorkivaGet Sheet Data コマンドをキャンバスの START セクションにドラッグ&ドロップします。
- コマンドの設定
- コントロールシートのデータを取得
- スプレッドシート ID フィールドには、チェーン変数cv-SpreadsheetID を使用する。
- シートID/名前フィールドには、チェーン変数cv-SheetName を使用する。
- 地域にA1: を入力する。
- 計算値 と-1 として値のスタイルとリビジョンを残す。
- 保存をクリック
ステップ6:シートデータをJSONに変換する
.csv形式のコントロール・シート・データの取得に成功したら、次はそれをJSONに変換する。この変換により、ヘッダーとカラム値がJSONKey-Value 構造に正しく再フォーマットされます。このフォーマットは、この後のステップで非常に重要である。
- CSV to JSON コマンドをキャンバスにドラッグする。
- 管理シートデータ取得 コマンドとCSV to JSON コマンドをリンク。
- CSV to JSON コマンドを編集する。
- Input File フィールドで、Get Control Sheet Data ドロップダウンからのData 出力を使用します。
- デリミター(区切り文字)フィールドはカンマ(,)のままにしておく。
- 保存をクリック
ステップ7:JSONデータを繰り返し処理する
コントロールシートのデータがJSON形式になったので、コマンドグループを使用して、、 、コントロールシート内の各行データを反復処理することができる。
- コマンドグループ をキャンバスに追加する。
- CSV to JSON コマンドをCommandグループのIn の部分に接続する。
- コマンドグループを編集し、 JSON Iteratorと名付ける。
- 基本情報タブの右にある反復記号をクリックする。
- イテレータを有効にする
- Select Modifier Type をList のままにする。
- Iterations セクションでは、CSV to JSON コマンドのドロップダウンから<> JSON File 出力を選択する。
- 保存をクリック
ステップ8:データの各反復をプレビューする
チェーンがコントロール・シートの各行を反復できるようになったので、Handlebarsコマンドを利用して、情報の出力をプレビューすることができます。
注: Handlebarsコマンドは、この記事で値を検討するためのプレースホルダーとして機能するが、値を処理するために他のコマンドを使用することもできる。
- Render Text Template コマンドをキャンバスにドラッグ&ドロップする。
- コマンドグループのGroup Start をRender Text Template コマンドにリンクする。
- コマンドを編集し、プレビューコントロールシートデータと名付ける。
- Templateフィールドに以下を入力する:
ファイル名 アクティブ・フラッグ・テーブルID
- コントロールシートから値を導き出すには、JSONの反復ごとに変数変換を適用する必要がある。
- ファイル名 の横で、グループ・イテレーター ドロップダウンの下にあるサイドバーから、JSONファイル・イテレーション を選択する。
-
- JSON File Iterationをクリックし、Get Value from JSONを選択します。
- Value フィールドに、コントロール・シートのヘッダーFile_Name を入力する。
- 注: コントロールシートのヘッダーを値フィールドに直接コピーするのが良い方法です。
- Enterを押してAcceptする
-
- Active_Flag &Table_IDコントロール・シートのヘッダーについて、上記のステップを繰り返す。
- 完成すると、テンプレート・フィールドは以下のようになる:
- コマンドを保存する
ステップ9:チェーンとプレビューの実行
チェーンとコントロール・シートがセットアップされたので、ハンドルバー出力の各反復がコントロール・シートのすべての行のデータを含むことを確認することが重要です。
- Publish をクリックし、次にExecute チェーンをクリックする。
- チェーンを走らせる
- チェーンが正常に実行されたら、プレビュー・コントロールシート・データ コマンドをクリックし、ログ タブに移動する。
- Start Rendered Text "の下に、最初の反復の出力が表示されているはずだ。
- 2回目の反復の結果を見るには、Logタブの上のオプションでValue 2に切り替える。
- 最後に、値3に切り替えて3回目の反復の結果を見る。
- 各反復は以下のように表示される:
価値 1:
価値 2:
価値 3:
アクティブ・フラッグの活用
アクティブ・フラグ の値を利用する条件付き ロジックを組み込むことが次のステップである。
- チェーンを編集し、 JSON Iterator とPreview Control Sheet Data のリンクを削除する。
- 条件付き コマンドを追加し、コマンドグループのグループスタート を新しいコマンドに接続する。
- Conditional コマンドとPreview Control Sheet Data コマンドをリンク。
- 条件付きコマンドの編集
- アクティブフラッグ?
- + Rule ボタンをクリックする。
- 値フィールドで、Group Iterator のドロップダウンから<> JSON File Iteration をクリックする。
- 変数変換を追加し、コントロールシートのActive_Flag ヘッダーを値として使用する。
- 受諾をクリックする
- 条件を "Is Blank" から "=" に変更する。
- 式フィールドに「true」と入力する。
- 保存をクリック
これで、チェーンが実行されるたびに、プレビュー・コントロールシート・データ コマンドが実行されるのは、その反復におけるActive_Flag の値が、true に等しい場合のみとなった。
- 反復のうち2回のActive_Flagが "FALSE "に設定されていたため、プレビュー・コントロールシート・データ コマンドは3回目の反復のみ実行された。
- アクティブ・フラグ?" 条件付きコマンドに続くコマンドは、コントロール・シートでの繰り返し値が "FALSE "の場合、スキップされる。
その他の使用例
コントロールシートは、ワークフローの実行に使用される値を集中管理し、自動化する非常に効果的な方法を提供します。さまざまな場面で応用できる:
- ソースシステム、Workiva、Wdata要素のIDを管理するセントラルハブ
- フラグを利用して、特定のプロセスを実行すべきかどうかをフィルタリングし、アクションを実行する。
- ソース・システムからレポートを実行するためのURLエンドポイントの指定
- 特定のファイルの日付と命名規則を定義する
- SFTPで指定ファイルを取得するためのファイルディレクトリの特定