今回は全レコードのルックアップを一括で取得しなおし、最新の情報にするカスタマイズをご紹介します!
kintoneには他のアプリの情報と連携する「ルックアップ」機能がありますが、コピー元のレコードが変更されてもコピー先のレコードの情報はそのままになり、情報の整合性が取れないということが発生することがあります。
画面のカスタマイズでは、コピー元が変更されたときに自動でコピー先のレコードを更新するカスタマイズをご紹介しています。
ただし、これはkintoneで編集して保存したときに動くものなので、CSVファイル読み込みによって更新した場合は、機能しません。
複数のレコードに対する一括処理は画面のカスタマイズで行う方法と、Job Runnerを使用して行う方法があります。
当記事は、複数レコードに対するルックアップの一括更新をJob Runnerの【定期実行タスク】で行う方法をご案内します。
画面のカスタマイズを使った「全レコードのルックアップを一括で更新する」方法は、こちらをご覧ください。
Job Runnerを利用する前に、下記をご覧ください。
Job Runnerを利用するとき、初めにすること : ジョブへのスロット割り当てについて
アプリの構成
今回使うアプリはkintoneアプリストアの案件管理(営業支援パック)アプリと顧客管理(営業支援パック)アプリを使用しています。案件管理アプリには顧客管理アプリからルックアップで情報が取得される設定になっています。
案件管理アプリ
やりたいこと
定期実行タスクではあるのですが、今回は時間を設定して実行するのではなく、kintoneアプリの画面に設置したボタンを押した時に一括更新を実行するカスタマイズを設定します。
ですので、ボタンをkintoneアプリの一覧画面に設置し、ボタンが押されたら定期実行タスクが実行されるようにします。
Customineの設定
定期実行タスクを作成します。
定期実行タスクのカスタマイズ名に「ルックアップ一括更新」と指定しておきます。
全体の設定は以下のようになります。
接続設定とレコード取得
まず、kintone 接続設定を行います。
接続設定については、こちらで詳しくご案内していますので、ご確認ください。
「kintone 接続設定を行う」で使用するアプリと接続設定を行います。
案件管理アプリだけでなく、ルックアップ元アプリに設定されている顧客管理アプリに対しても「kintone 接続設定を行う」のアクションが必要です。
ルックアップ元アプリに対しても接続設定が行われていないと、定期実行タスクのジョブ実行時にエラーになります。
kintoneアプリ側でAPIトークンを発行する際に、案件管理アプリにはレコード閲覧とレコード編集を許可しておきます。
顧客管理アプリは情報を取得するだけなので、レコード閲覧のみ許可しておきます。
起点となるアクションの条件は「実行予定時刻になった時」を指定します。
この条件は、Job Runnerで設定した時刻に発生する他、カスタマイズ画面から「直ちに実行」した場合にも発生します。
今回は、「直ちに実行」で処理を行う想定です。
次に、「全レコードを取得する」でレコードを取得します。
案件管理アプリはデフォルトの設定で顧客名は必須項目になっており、全てのレコードを対象にルックアップ一括更新したいため「全レコードを取得する」でレコードを取得しています。
このとき、「API トークン」にはレコードを取得したい案件管理アプリのAPI トークンだけでなく、ルックアップ元アプリに設定されている顧客管理アプリのAPIトークンも指定しておきます。
使用するアプリによっては、ルックアップの値が入っていないレコードも存在するということもあるかと思います。仕様によって、「クエリで条件を指定してレコードを取得する」や「キーを指定してレコードを取得する」を使い分けてレコードを取得してください。
ルックアップ
条件は「レコード1行が準備できた時」と設定し、「全レコードを取得する」で取得したレコードの1行1行に対して、ルックアップフィールドの値を元の値で更新しなおします。
「ジョブ生成・設定」ボタンを押し、ジョブ設定画面で「直ちに実行」してみてください。
「実行履歴」タブで、実行結果を確認できます。
もしエラーになっていたり、意図しない結果になっているようでしたら、カスタマイズを見直してみてください。
定期実行タスクをキックするボタンを作成
kintoneアプリの一覧画面に、定期実行タスクをキックするボタンを作成します。
ボタンの配置はやること「ボタンをメニュー位置に配置する」を使用します。
条件は「一覧画面を表示した時」を指定します。
ボタンが押された時に、「定期実行タスクを直ちに起動する」を実行します。
「定期実行タスクのカスタマイズ」には、定期実行タスクで作成した「ルックアップ一括更新」を指定します。
gusuku APIキーは、画面のカスタマイズからJob Runnerのカスタマイズにアクセスするために必要です。
下記の手順で取得します。
Customineの画面右上「gusuku 共通管理」をクリックし、gusuku共通管理画面を表示します。
「APIキー」タブをクリックし、「キー名称」に任意の名称を入力し、「APIキーを新規に作成」をクリックしてください。
作成が完了すると、APIキー一覧に表示されますので、錠マークをクリックして情報を展開し、APIキーをコピーしてください。
コピーしたAPIキーを「gusuku APIキー」に指定します。
これで画面に定期実行タスクを実行するボタンができました。
「kintoneアプリへ登録」し、実行を確認してみてください。
※定期実行タスクの実行が完了した時に発動する条件は存在しないため、”一括更新のジョブが終了したら、一覧画面をリロードする”といった処理はできません。
Job Runnerの実行履歴で処理の完了を確認し、手動で一覧画面を再読み込みしてください。
想定通りにルックアップの更新が実行されましたでしょうか?
<補足>
今回は一覧画面にボタンを設置し、手動で一括更新を行うという内容でしたが、これを毎日実行するように設定することも可能です。
Job Runnerの【定期実行タスク】で設定した内容はそのままで、スケジュール設定を行ってください。誰も使用していない時間帯などに設定しておくと、業務開始の際には一括更新後の内容になっているので安心です。スケジュール設定についてはこちらのページの下部でご案内しております。
ご不明点等ございましたら、チャットにてご質問ください!
Customineドキュメントやサポートページもぜひご活用ください。