cli-kintoneでバッチ処理の結果をkintoneアプリに登録、更新し、処理完了後、アプリの画面を自動でリロードしたいです。
レコードを更新したときのイベントが画面からの更新ではないため、JavaScriptAPIではハンドルできないので、どのようにしたら困っています。
cli-kintoneでレコード更新があった場合のイベントをどのように取得したらよいかアドバイスをお願いいたします。
cli-kintoneでバッチ処理の結果をkintoneアプリに登録、更新し、処理完了後、アプリの画面を自動でリロードしたいです。
レコードを更新したときのイベントが画面からの更新ではないため、JavaScriptAPIではハンドルできないので、どのようにしたら困っています。
cli-kintoneでレコード更新があった場合のイベントをどのように取得したらよいかアドバイスをお願いいたします。
こんにちは。
ご確認いただいているように、kintone JavaScript API は、REST API による
レコード更新時にはイベントは発火しません。
なお、 app.record.detail.show 等のイベントでは、レコードを表示した状態で、
対象レコードを kintone REST API で更新した場合でも、イベントオブジェクトの
$revision の値は更新前の値が取得されたはずです。
また、 1 件のレコードを取得する などでレコード情報を取得した場合には、
更新後の $revision の値が取得されます。
なので、cli-kintone など、kintone REST API によるレコードの更新を検知したい場合、
setInterval() を使って、一定時間ごとに各 $revision の値を取得し突合せることで、
検知することは可能かと思いますよ。
上記方法でレコードの更新を検知した際に、画面のリロードを行うことで、
期待する動作を行うことも可能かと思います。
なお、この方法だと 1日に実行できるAPIリクエスト数 の制限値を
超過する可能性が非常に高いので、あまりお勧めはできないです。。
早速のアドバイスありがとうございます。
やはり、cli-kintoneでのデータ登録、更新のイベントは取得できないのですね。
REST APIによるリロードはご指摘の通り、一日の上限がありますので、あまりやりたくないと考えています。
ベタな方法としては、30秒に一回JavaScriptでreloadすることくらいかと考えていました。
ありがとうございました!
一覧画面をリロードしたいのでしたら、
カスタマイズビューで
「ページネーションを表示する」で自動でレコードが取得できるので
先頭100レコードまでならAPI呼び出し回数を消費せずにリロードできます。
コメントありがとうございます。
こちらは、cli-kintoneでkintoneアプリ内のデータが更新したときに、ページネーションをどのように利用すると既に開いているユーザーの画面をリロードできるのかご教授いただけますでしょうか。
cli-kintoneで更新したかどうか関係なく、
たとえば常時10分ごとに更新するタグをカスタマイズビューで設定しておき、データが更新されたら自動で一覧が更新される仕掛けです。
APIの消費を抑えるためにAPIを使わず、カスタマイズビューのページネーションを利用する案です。
cli-kintoneでの更新したかどうかは判別できません。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。