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

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


kintoneアプリの設定

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

フィールド名

フィールドコード

フィールドタイプ

メモ

メモ

文字列(複数行)

初回記載メモ内容

初回記載メモ内容

文字列(複数行)



また、今回のカスタマイズではAPIトークンが必要となる為、kintoneアプリの設定画面から生成しておきます。


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

・レコード編集

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


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


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

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


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

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


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


接続設定

まず、kintoneへの接続設定を行います。

ここでは、やること「kintone 接続設定を行う」、条件「Webhook を開始した時」を用います。


なおkintoneアプリのWebhookでのカスタマイズの場合、もしアプリでレコード操作をした際にWebhookから渡されたレコードの内容を取得するだけで良いなら、後述する「Webhook から渡されたレコードを取得する」だけを使えばレコード取得できます。

ただ今回はレコードの内容を取得後、更新処理が必要となるので、kintone 接続設定を行っています。

また、kintoneアプリのAPIトークンは前述の「kintoneアプリの設定」で生成したものをセットしてください。


レコードを取ってくる

次に、レコードを取得します。

ここでは、やること「Webhook から渡されたレコードを取得する」、条件「他のアクションの実行が完了した時」を用います。


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

最後に、値をセットします。

最後にやること「フィールドに値をセットする」、条件「レコード1行が準備できた時」、「フィールド値が空ならば」を用います。


これで、「初回記載メモ内容」フィールドの値が空であれば、「メモ」フィールドの値を「初回記載メモ内容」フィールドの値にセットする事ができます。


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

この時、1行ずつ更新する場合は「レコード1行が準備できた時」、全行を集計したり書き出す場合は「レコード全行が準備できた時」を使う形になりますので、適切な方を設定するようにしましょう。

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


Webhookの設定を行う

ここまででカスタマイズの設定が終わりました。


カスタマイズの設定が正しく行えた事を確認してから、Webhookの設定を行います。

上部の「ジョブ生成・設定」ボタンをクリックしてください。


すると、ジョブ設定ウインドウが開きます。


「URLをコピー」をクリックし、その後「kintoneのWebhook設定画面へ」をクリックすると、設定画面が出てくるので、「+追加する」をクリックし、そこにコピーしたWebhook URLを貼り付けて次のように設定してください。


保存するとkintoneの「アプリの更新」を求められるので、更新もしておきましょう。


動かすと

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

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


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


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

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

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


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


おわりに

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


Customineドキュメントサポートページもぜひご活用ください。

また、ご不明点等ございましたら、チャットにてご質問ください!