ブログ

データフロープラグイン入門|マスター更新をルックアップ先に自動反映する

データフロープラグインでは、
アプリ出力でルックアップを再取得してコピーフィールドを更新することができます。

今回は、この機能を使ってマスター(ルックアップ元)の更新をルックアップ先に自動反映するフローをご紹介していきます。

利用シーンとしては、「ルックアップのマスターを更新したので関連アプリに反映させたいけど、レコード数が多くてすべてを手動で更新するのは現実的じゃない」といった場合を想定しています。


目次


今回作成するフロー

今回は、「顧客マスターアプリ」で顧客名を変更したときに、ルックアップでその顧客名を取得している「案件マスターアプリ」側のコピーフィールドも一緒に更新する仕組みを、kinkozi データフロープラグインで作成します。

  • 顧客マスターアプリ:顧客コード、顧客名などを管理するアプリ
  • 案件マスターアプリ:案件コード、案件名、担当者などを管理するアプリ。顧客コードをキーに、顧客マスターアプリから顧客名をルックアップで取得している

データフロープラグインは、顧客マスターアプリに設定します。

ジョブ設定の実行契機は、詳細画面の実行ボタンにします。

フローは、
アプリ入力
↓
アプリ出力
の2ステップです。

フロー図


① 入力を設定する

フローの起点となるアプリ入力を設定します。

アプリ入力_プロパティ

入力アプリには「案件マスターアプリ」を設定します。

今回は顧客マスターアプリの顧客コードと一致するレコードを抽出したいので、
「絞り込みを設定する」を選択します。

条件には
「顧客コード」「=(等しい)」「#顧客コード#」を設定します。

ポイントは絞り込み条件の作り方です。通常、条件の値は固定値を入力しますが、値の入力欄の横にあるトグルボタン(ツールチップ:「契機パラメーターの値で絞り込む」)を切り替えると、顧客マスターアプリの詳細画面を開いたレコードのフィールド値を条件値として選べるようになります。ここで #顧客コード# を選択することで、「今開いている顧客レコードと同じ顧客コードを持つ案件だけ」を抽出できます。


② 出力を設定する

抽出した案件レコードを更新するため、アプリ出力を設定します。

アプリ出力_プロパティ

今回は、入力アプリと同じ「案件マスターアプリ」を指定します。

出力方法は、「更新」を指定します。

フィールドは以下とします。

  • (出力フィールド)案件コード:(入力フィールド)案件コード:更新キーに指定
  • (出力フィールド)顧客コード:(入力フィールド)顧客コード

出力オプションは「レコード更新時にルックアップを再取得してコピーフィールドを更新する」にチェックを入れます。

この出力オプションが今回の仕組みの本体です。案件マスターアプリのレコードを更新する際に、このオプションを有効にしておくと、ルックアップフィールド(顧客コード)に紐づくコピーフィールド(顧客名など)が、参照元である顧客マスターアプリの最新の値で再取得されます。値そのものを直接書き換えるのではなく、「ルックアップを引き直させる」ことで最新化する、という考え方です。


③ 実行してみる

設定ができたら、実際に動かして確認します。

  1. 顧客マスターアプリで、対象の顧客レコードの顧客名を変更して保存する
  2. 詳細画面を開き直し、設定した実行ボタンをクリックする
  3. 案件マスターアプリを開き、その顧客に紐づく案件レコードの顧客名が更新されていることを確認する

Before

dialog

After

複数の案件が同じ顧客に紐づいている場合でも、条件に一致するレコードがまとめて抽出・更新されるため、1回のボタンクリックで関連する案件をすべて最新化できます。


アプリ入力・アプリ出力の補足

実行契機はボタン以外にも選べます

今回はクリックする様子が伝わりやすいように「詳細画面の実行ボタン」を実行契機にしましたが、ジョブ設定で選べる実行契機はこれだけではありません。

💡 ボタンを押さずに自動で反映したい場合

実行契機を「レコード編集画面のレコード保存成功後」にすると、顧客名を変更して保存した瞬間に、ボタンを押さなくても案件マスターアプリ側が自動で更新されます。

実行契機 動き 向いているケース
詳細画面の実行ボタン ボタンを押したタイミングで実行 反映前に内容を確認したい/狙ったタイミングで実行したい
レコード編集画面のレコード保存成功後 保存と同時に自動で実行 変更したら必ず・すぐに反映したい/ボタンの押し忘れを防ぎたい

その他の実行契機については こちら を参照してください。

絞り込み条件は複数指定できます

今回は「顧客コード=契機パラメーターの値」の1条件だけですが、
AND/ORで条件を追加することもできます。

例)「顧客コードが一致」かつ「ステータスが進行中」の案件だけに絞り込む、など。

契機パラメーターが使えるジョブ

契機パラメーターでの絞り込みは、

  • 一覧画面の実行ボタン
  • 詳細画面の実行ボタン/イベント

を実行契機にしたジョブで使えます。

出力方法は4種類あります

今回は「更新」を使いましたが、他にも次の方法があります。

  • 追加:常に新規レコードとして登録
  • 更新:更新キーが一致するレコードのみ更新(今回はコレ)
  • 更新および追加:一致すれば更新、なければ新規追加
  • 再生成:対象レコードを一度削除してから再作成

まとめ

ルックアップでコピーした値は、コピー元を変えても自動では更新されません。

今回のように、

  • アプリ入力で「契機パラメーターの値」を使って関連レコードを絞り込む
  • アプリ出力で「ルックアップを再取得してコピーフィールドを更新する」をONにする

としておけば、ボタン1つでマスターの変更をまとめて反映できます。ボタンを使わず、保存と同時に反映したい場合は、上の「実行契機はボタン以外にも選べます」もあわせてご覧ください。

同じような悩みをお持ちでしたら、ぜひ試してみてください。
設定方法などわからないことがあれば、お気軽にご相談ください。

ブログ一覧に戻る