Webhookを使ってレコード保存時にフィールド値を別フィールドに転記する

Modified on: Mon, Jan 23, 2023 at 3:44 PM


       

Job Runnerの機能の一つであるkintoneアプリのWebhookでは、kintoneからgusukuサーバーにWebhook通知の送信が行われた際、Job Runnerでの処理を行う事ができます。
※Webhookについては Webhookを設定する | kintone ヘルプ (cybozu.help) も併せてご覧ください。

今回は、レコード保存時にフィールド値を別フィールドに保存する方法をご紹介します。(なお、この内容はkintoneアプリのカスタマイズでも実現可能ですが、今回はWebhookで実現しています。)

kintoneアプリの設定

kintoneアプリには以下のフィールドを設定しました。

フィールド名

フィールドコード

フィールドタイプ

メモ

メモ

文字列(複数行)

初回記載メモ内容

初回記載メモ内容

文字列(複数行)




最終的にできるカスタマイズ

最終的には、Job Runnerで登録、更新時に「初回記載メモ内容」フィールドに値が入っていなければ、「メモ」フィールドから「初回記載メモ内容」フィールドにフィールドの値をコピーします。

設定するカスタマイズの全体像

今回はカスタマイズの内容がシンプルなので、先にカスタマイズの全体像をお見せします。


このカスタマイズのそれぞれのアクションについて、処理の目的を踏まえながら見ていきましょう。


kintone 接続設定を行う の部分

まず、「kintone 接続設定を行う」のアクションについてです。

1番アクションでは「やること」に「kintone 接続設定を行う」、「条件」に「Webhook を開始した時」を用い、接続設定を行っています。


アプリでレコード操作をした時のWebhookから渡されたレコードの内容を取得するだけであれば、後述する「Webhook から渡されたレコードを取得する」のみで良いのですが、今回はレコードの内容を取得後、更新処理が必要となりますので、kintone 接続設定を行っています。

APIトークンはkintone アプリの設定画面から生成します。


APIトークンのアクセス権は
・レコード閲覧

・レコード編集

の2つの権限にチェックを入れておいて下さい。




アクセス権の設定が終わったらAPIトークン画面で設定した内容を「保存」し、kintoneアプリも更新しておき、確実にAPIトークンを有効にした上で、カスタマインのパラメータにも忘れずにAPIトークンの値を設定しておきましょう。




レコードを取ってくる部分

レコードを取ってくる部分は次のようになります。



2番アクションでは「やること」に「Webhook から渡されたレコードを取得する」、「条件」に「他のアクションの実行が完了した時」を設定し、レコードの内容を取得しましょう。


フィールドに値をセットする部分

フィールドに値をセットする部分は次のようになります。

3番アクションでは「やること」に「フィールドに値をセットする」、「条件」に「レコード1行が準備できた時」「フィールド値が空ならば」を設定し、「初回記載メモ内容」フィールドの値が空であれば、「メモ」フィールドの値を「初回記載メモ内容」フィールドの値にセットします。


注意点として、慣れないうちは条件の「レコード1行が準備できた時」と設定すべきところを、「他のアクションの実行が完了した時」と設定してしまいがちです。
ですが、Job Runnerでレコードを操作する場合は条件「レコード1行が準備できた時」もしくは条件「レコード全行が準備できた時」のどちらかを絶対に使う必要があります。


1行ずつ更新する場合は「レコード1行が準備できた時」、全行を集計したり書き出す場合は「レコード全行が準備できた時」を必ず使う事になります。この点、気を付けて下さい。


また「フィールドに値をセットする」を行い、処理が終了すると、レコードは自動で保存されます。



実際に動かしてみると

実際にレコードを保存してみた場合、次のような動きになります。


まずレコードの追加を行い、レコードを保存します。


レコード保存の後、レコード詳細画面に画面遷移した直後の画面表示は次のようになります。


ここでは、メモ欄に値が反映され、操作しているユーザー(画面では「大深 三郎」さん)がレコードを登録した事がわかります。(初回登録のタイミングなので、作成日時と更新日時も同じになっています。)

「初回記載メモ内容」フィールドにはまだ値は転記されていません。


その後、数秒待った後に画面をリロードすると、次の様な画面となります。



Webhookで更新されたことで更新者が「Administrator」ユーザとなり、「初回記載メモ内容」フィールドにも「メモ」フィールドの内容が転記されています。


Job RunnerのWebhookを用いたカスタマイズでは、カスタマイズの設定次第でいろいろな更新後処理が実現できます。上記の例を参考にぜひお試しください!