Job Runner

キーの値をもとにレコードを更新または追加する

概要

指定アプリにキーに一致するレコードがあれば更新し、なければ新しいレコードを追加します。

使い方

「キーの値をもとにレコードを更新または追加する」を行うアクションよりも先に「kintone 接続設定を行う」を行うようにアクションを配置します。

アクションの結果として、キーに一致するレコードがあった場合は更新されたレコードの集合がセットされ、キーに一致するレコードがなかった場合は追加したレコードがセットされます。但し、追加レコードの情報はマッピングでセットされたフィールドしか参照できません。

フィールドに値をセットする」のようなフィールド値を変更するタイプの「やること」に、「キーの値をもとにレコードを更新または追加する」の結果値を「レコード」パラメーターとして渡せば、更にフィールド値変更を行うことができます。但し、kintone への保存処理が2回行われることになるので、効率はよくありません。なるべく「キーの値をもとにレコードを更新または追加する」だけで更新を完結させることをお勧めします。

設定するパラメーター

「追加先アプリ」「API トークン」「キーとなるフィールド」「キーの値」「マッピング」を設定します。

追加または更新先アプリ

更新または追加するレコードのあるアプリを選択します。

API トークン

追加先アプリにアクセスするための API トークンを指定します。「kintone 接続設定を行う」を行うアクションの中から選択します。

その API トークンにはレコード閲覧、レコード追加、およびレコード編集の権限が必要です。

キーとなるフィールド

レコードを更新する際のキーとなるフィールドを選択します。

テーブル内のフィールドは選択できません。

以下のフィールドタイプは選択できません

  • カテゴリー
  • テーブル
  • 関連レコード一覧
  • グループ
  • スペース

キーの値

更新するレコードのキーの値を入力します。

マッピング

レコードに登録する情報を入力します。

このパラメーターの詳しい記述方法はフィールドマッピングの記述方法を参照してください。

このマッピングでは @out を使用することができます。キーに一致するレコードがあった場合、@out はそのレコードを参照します。キーに一致するレコードがなかった場合、@out は空になります。

レコード取得条件の発生有無

条件 発生有無
レコード1行が準備できた時 発生しません
レコード全行が準備できた時 発生しません

競合の検出について

キーに一致するレコードが存在する場合、そのレコードを上書き保存しようとしますが、その際、更新の競合はチェックされます。

この「やること」と似ている「キーの値をもとにレコードを更新する」では、更新の競合をチェックするかどうかは設定で選択可能ですが、この「キーの値をもとにレコードを更新または追加する」では競合をチェックしないようにはできません。

一方、キーに一致するレコードが存在しない場合、つまり新規レコードが作成される場合は、競合はチェックされません

そのため、アクションを2人が同時に実行した場合、同じ内容の新規レコードが2つできてしまう可能性があります。これを避けたい場合、kintone アプリの設定で、キーとなるフィールドの「値の重複を禁止する」をオンにしておくことを強くお勧めします。