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