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ドキュメントやサポートページもぜひご活用ください。
また、ご不明点等ございましたら、チャットにてご質問ください!