汎用マスタを自動で常に最新に保つ

こんなお困りごとはありませんか?

  • 取引先の新規登録申請や登録内容の修正申請が完了するたびに、内容を「取引先マスタ」に手作業で転記している。
  • 転記の手間や入力ミスにより、取引先マスタの情報が申請内容と食い違ってしまう。
  • 同じ取引先を誤って二重登録してしまったり、修正申請の内容が反映されずに古い情報のまま使われてしまう。
  • 登録内容の修正申請で、変更したい項目だけを入力してもらいたいが、オートメーションでそのまま反映すると、入力していない項目まで空欄で上書きされてしまう。

実現したいこと

  • 1つのワークフローの中で新規登録と登録内容の修正が完結します。
  • オートメーションを2つ用意します。
    • 一つは新規登録時に取引先マスタへ新しいアイテムとして登録するオートメーションです。
    • もう一つは登録内容の修正時に対象の取引先を特定して既存アイテムを更新するオートメーションです。
  • ワークフローの修正では、「変更したい項目だけ入力し、変更しない項目は空欄のままにできる」ようにフォームを設計します。

メリット

  • ワークフロー・経路が1つで済み、申請と管理の導線がシンプルになる。
  • 申請者は「新規登録」「登録内容の修正」を選ぶだけで、必要な項目だけが表示される。
  • 修正時に変更したい項目だけを入力すればよく、他の項目を消してしまう心配がない。
  • 取引先マスタへの反映を自動化し、手作業の転記・二重登録・反映漏れを防げる。

ワークフロー・取引先マスタの設計

はじめに、取引先マスタ(汎用マスタ)側の項目設計と、ワークフローのフォーム構成を整理します。

1. 取引先マスタ(汎用マスタ)の設計

取引先マスタには、少なくとも以下のフィールドを用意します。

  • 名前:取引先名
  • コード:取引先を一意に識別する値。汎用マスタアイテムは「コード」で同一アイテムかどうかを識別するため、以降のオートメーションではこの「コード」を更新のキーとして使います。
  • 説明、その他のカスタムフィールド:住所・電話番号など、実際に管理している項目に合わせて用意します。

汎用マスタの作成方法は「汎用マスタを設定する」を参照してください。

取引先コードは、申請者に手入力させずランダムなコードで自動採番させる設計にします。

2. ワークフローのフォーム設計

1つのワークフローの中に、次の3つの汎用セクションを順番に配置します。

セクション1:申請種別

表示条件:なし(常に表示)

フィールド名 種類 設定
申請種別 プルダウン 選択肢:「新規登録」「登録内容の修正」

セクションの表示条件は、2番目以降の汎用セクションにのみ設定できます。そのため、このセクションは必ず上位のセクションに配置してください。

セクション2:新規登録

表示条件:「申請種別」が「新規登録」のとき

取引先名、住所、電話番号など、取引先マスタに合わせて必要な項目を用意します。「コード」に相当する項目は用意しません。

セクション3:登録内容の修正

表示条件:「申請種別」が「登録内容の修正」のとき

次の順にフィールドを配置します。自動計算フィールドは自身より上に配置したフィールドの変数しか参照できないため、順番が重要です。

順 フィールド名 種類 入力・式 役割
1 対象の取引先 汎用マスタ型(単一選択)
対象の汎用マスタ:取引先マスタ
申請者が選ぶ 修正する取引先の指定
2 対象の取引先コード 自動計算 json_lookup(${対象の取引先}, "$[0].code") 更新対象を特定するキー
3 現在の取引先名 自動計算 json_lookup(${対象の取引先}, "$[0].name") 申請者への参考表示
4 新取引先名 テキスト(短文) 変更する場合のみ入力 変更後の値
5 オートメーション反映用取引先名 自動計算 if(exact(${新取引先名}, ""), json_lookup(${対象の取引先}, "$[0].取引先名のフィールドコード"), ${新取引先名}) オートメーションにマッピングする値

住所・電話番号など、他の変更可能な項目についても、3〜5と同じ3つ1組(現在の〇〇、新〇〇、オートメーション反映用〇〇)を追加します。

マッピング対象に含まれていない項目の空欄上書きに注意してください
オートメーションでマッピング対象に含まれていない項目は、実行時に空欄で上書きされます。
取引先マスタに、今回の変更対象以外のカスタムフィールドがある場合は、それらについてもjson_lookupで現在の値を取得する自動計算フィールドを用意し、オートメーションでマッピングしてください。
例:json_lookup(${対象の取引先}, "$[0].その他のフィールドのフィールドコード")

部分更新時の空欄上書きに注意してください
オートメーションの「汎用マスタへ登録するフィールド」は、マッピング元のフィールドの値をそのまま取引先マスタへ反映します。
そのため、登録内容の修正の際に、入力用フィールドをそのままマッピングすると、対象のフィールドが空の場合に取引先マスタ側が空欄で上書きされます。
これを防ぐため、「3. 登録内容の修正セクション(3番目の汎用セクション)」では、if関数によりフィールドが空欄かどうかで値を分岐した自動計算フィールドをマッピングします。
例

  • 新住所フィールドそのものをマッピングすると、新住所が空(住所の変更がない)の場合に既存のアイテムの住所が空欄で上書きされる
  • 新住所フィールドが空(住所の変更がない)の場合には既存アイテムの住所を、新住所フィールドが空ではない(住所の変更がある)場合にはその入力値を出力するよう分岐した自動計算フィールドをマッピングすることで、いずれの場合にも空欄で上書きされない

以下もあわせてご覧ください。

設定手順

1. 新規登録用のオートメーションを作成する

  1. 「管理センター」>「オートメーション」を開きます。
  2. 「新規作成」をクリックし、「名前」(例:取引先マスタへ新規登録)・「説明」を入力します。
  3. 「トリガーとアクションの設定」で、以下を設定します。
    • 「トリガーの種類」:「ステータスが変わったとき」を選択し、詳細設定でステータス「完了」を指定します。
    • 「以下のワークフローのチケットで実行する」:対象のワークフローを選択します。
    • 詳細設定の「対象のチケット」で「指定した条件を満たすチケット」を選択し、「申請種別」フィールドの値が「新規登録」であることを条件として設定します。
    • 「アクションの種類」:「汎用マスタにアイテムを登録する」を選択します。
    • 「対象の汎用マスタ」:取引先マスタを選択します。
    • 「汎用マスタへ登録するフィールド」:新規登録セクションの各フィールド(取引先名、住所、電話番号など)を、取引先マスタの対応するフィールドにマッピングします。「コード」はマッピングしません。
  4. 「保存」をクリックします。

「コード」をマッピングしないことで、実行のたびに新しいコードで取引先マスタへ新規登録されます。修正セクションのフィールドは表示条件により空の状態になるため、誤ってマッピングしないよう注意してください。

2. 修正用のオートメーションを作成する

  1. 同様に「管理センター」>「オートメーション」から「新規作成」をクリックします。
  2. 「名前」(例:取引先マスタの登録内容を更新)・「説明」を入力します。
  3. 「トリガーとアクションの設定」で、以下を設定します。
    • 「トリガーの種類」:「ステータスが変わったとき」を選択し、詳細設定でステータス「完了」を指定します。
    • 「以下のワークフローのチケットで実行する」:手順1と同じ1本のワークフローを選択します。
    • 詳細設定の「対象のチケット」で「指定した条件を満たすチケット」を選択し、「申請種別」フィールドの値が「登録内容の修正」であることを条件として設定します。
    • 「アクションの種類」:「汎用マスタにアイテムを登録する」を選択します。
    • 「対象の汎用マスタ」:取引先マスタを選択します。
    • 「汎用マスタへ登録するフィールド」:
      • 「対象の取引先コード」(自動計算フィールド)を、取引先マスタの「コード」にマッピングします。
      • 「オートメーション反映用取引先名」「オートメーション反映用住所」「オートメーション反映用電話番号」など、if/exactで分岐させた自動計算フィールドを、取引先マスタの対応するフィールドにマッピングします。「新〇〇」フィールドは直接マッピングしません。
  4. 「保存」をクリックします。

「コード」に「対象の取引先コード」を必ずマッピングしてください。ここが未設定、または値が取得できていない場合、既存アイテムの更新ではなく別アイテムとして新規登録されてしまいます。

動作確認

  1. ワークフローで「申請種別」を「新規登録」にして申請し、承認を完了させます。取引先マスタに新しいアイテムが登録されていることを確認します。
  2. 同じワークフローで「申請種別」を「登録内容の修正」にし、手順1で登録した取引先を「対象の取引先」で選んで申請します。このとき、一部の項目(例:住所)だけ「新住所」に値を入力し、他の項目(例:「新取引先名」「新電話番号」)は空欄のまま承認を完了させます。
  3. 取引先マスタの該当アイテムを確認し、次のことを確認します。
    • 入力した項目(住所)だけが新しい値に更新されている。
    • 空欄のままにした項目(取引先名、電話番号)が、元の値のまま変更されていない。
    • アイテム数が増えていない(新規アイテムとして登録されていない)。
  4. 「管理センター」>「オートメーション」>「オートメーション実行ログ」で、それぞれのオートメーションの実行結果を確認できます。

うまく動作しないときは

  • 「申請種別」フィールドの値に応じて、新規登録セクション・修正セクションが正しい出し分けになっているか確認してください。
  • 修正セクションの「対象の取引先コード」(json_lookupを使った自動計算フィールド)で、正しいコードが取得できているか確認してください。
  • 修正申請で、変更しなかった項目の値が空欄で上書きされてしまう場合は、オートメーションのマッピングで「新〇〇」フィールドを直接指定していないか確認してください。「オートメーション反映用〇〇」(if/exactで分岐した自動計算フィールド)をマッピングする必要があります。
  • 「オートメーション反映用〇〇」フィールドの式で、if関数の引数(論理式・TRUE値・FALSE値の3つ)が指定されているか、exact関数の引数が文字列になっているかを確認してください。
  • 自動計算フィールドは、自身より上に配置されたフィールドの変数しか参照できません。「対象の取引先」→「対象の取引先コード」「現在の〇〇」→「新〇〇」→「オートメーション反映用〇〇」の順番でフィールドが配置されているか確認してください。
  • 新規登録用オートメーションで、誤って「コード」をマッピングしていないか確認してください。マッピングすると、2件目以降の新規登録が更新として扱われてしまいます。
  • 各オートメーションの「対象のチケット」の条件(申請種別の値)が正しいか確認してください。
  • マッピング元のフィールドの型と、取引先マスタの対象フィールドの型に互換性があるか確認してください。マッピング可能な型の組み合わせは「オートメーションを設定する」を参照してください。

関連リンク

この記事は役に立ちましたか?