Job Runnerの定期実行タスクを使用すれば、複数のレコードに対してまとめてExcel/PDF出力を行い、出力したファイルをレコードに添付することが可能です。
定期実行タスクはその名の通り、1日ごとや1時間ごとなど定期的に処理を行うことができます。
また、画面のカスタマイズで「定期実行タスクを直ちに起動する」を使用し、ボタンを押した1度だけ処理を実行するといったことも可能です。
Job RunnerとExcel/PDF出力を組み合わせると、1時間に1回複数のレコードに対してPDFを出力したり、毎日決まった時間に集計結果をExcelファイルとして出力し、kintoneアプリに添付するといった処理が可能になります。
Job Runnerの定期実行タスクのカスタマイズが初めての方は、下記のページもご覧ください。
Job Runnerを利用するとき、初めにすること : ジョブへのスロット割り当てについて
はじめての gusuku Customine Job Runner : 年齢計算のカスタマイズ
Excel/PDF出力のカスタマイズが初めての方は、下記のページもご覧ください。
gusuku Customine Excel/PDF出力 スターターキット
CustomineでExcel / PDF出力を試してみよう
今回は定期実行タスクで見積書アプリの複数レコードに対してPDF出力を行い、そのレコードの添付ファイルフィールドに、出力したPDFファイルを添付するカスタマイズを紹介します。
kintone アプリの設定
「見積書」アプリと「帳票テンプレート」アプリを用意します。
見積書アプリ:
「見積書」アプリは、見積に必要な情報を入力するアプリです。
見積書PDFを添付するための「添付ファイル」フィールドと、見積書PDFが出力済かどうかを識別するための「見積書ファイル」フィールドを設置しています。
「見積書ファイル」はチェックボックスフィールドで、出力済みになると”出力済”をセットします。
下記は、カスタマイズの完成後の見積書アプリの状態です。
定期実行タスク実行前:
添付ファイルと見積書ファイルフィールドは未入力の状態です。
定期実行タスク実行後:
添付ファイルフィールドにPDFファイルが添付され、見積書ファイルフィールドには”出力済”とセットされます。
帳票テンプレートアプリ:
「帳票テンプレート」アプリは、Excel/PDF出力で元になるExcelテンプレートを保存するためのアプリです。
「帳票名」フィールドは文字列(1行)、「テンプレート」フィールドは添付ファイルフィールドです。
PDF出力に使用するテンプレートは、下記のように添付しておきます。
テンプレートの作成方法の詳細は、Excel/PDF出力テンプレート リファレンスマニュアルをご確認ください。
定期実行タスクのカスタマイズ
定期実行タスクのカスタマイズを作成します。
まず、やること「kintone 接続設定を行う」で見積書アプリと帳票テンプレートアプリに接続します。
はじめの条件は「実行予定時刻になった時」で、二つ目の接続は「他のアクションの実行が完了した時」で繋げておきます。
見積書アプリは、帳票にセットする値の取得と添付ファイルの添付を行うので、kintoneアプリのAPIトークンはレコード閲覧、レコード編集のアクセス権を設定しました。
帳票テンプレートアプリは、帳票の元になるファイルを取得するだけなのでレコード閲覧のみのアクセス権に設定しています。
次に、帳票テンプレートアプリからPDF出力に使用するテンプレートファイルを取得します。
やること「キーを指定してレコードを取得する」で、帳票テンプレートアプリの「帳票名」フィールドの値が 見積書 と一致するレコードを取得します。
条件は「他のアクションの実行が完了した時」です。
次に見積書アプリから、まだPDFが未出力のレコードを取得します。
「見積書ファイル」フィールドの値が未入力のレコードを”PDF未出力”と見做し、検索条件には 見積書ファイル in(“”) と指定しました。
※見積書ファイルフィールドはチェックボックスなので、見積書ファイル = “” のように = は使えず、 見積書ファイル in(“”) のように in演算子 を使用する必要があります。
帳票テンプレートアプリからレコードが取得できた時だけ続きの処理を進めたいので、条件は「他のアクションの実行が完了した時」と「レコード件数が1件以上ならば」を指定しました。
なお、「レコード件数が1件以上ならば」は、「レコード件数が0件ならば」を反転すると指定できます。
見積書アプリから取得されたレコードについて、1レコードずつPDFを出力していきます。
やることは「PDFを出力する」、条件は「レコード1行が準備できた時」です。
条件「レコード1行が準備できた時」を使用すると、レコード取得アクションで指定したアクションで取得した複数のレコードを、1レコードずつ処理できます。
gusuku APIキーは、gusuku 共通管理画面で設定します。
gusuku 共通管理画面の「APIキー」タブの、APIキー作成で任意の名称を入力し、APIキーを作成してください。
既存のAPIキーがあるならそちらを使用しても問題ありません。
作成したAPIキーの鍵マークをクリックして開き、「APIキー」に表示された文字列をコピーしてカスタマイズ画面の「gusuku API キー」に貼り付けてください。
データレコードにはアクション番号3、テンプレートレコードにはアクション番号5、テンプレートフィールドはアクション番号5で取得した帳票テンプレートアプリの「テンプレート」フィールドを指定しました。
ファイル名には、アクション番号3で取得した、見積書アプリの「見積書No」フィールドの値を指定しました。
なお、もしここでPDFではなくExcelファイルを出力したいのであれば、やることを「Excelを出力する」に変更してください。
最後に、出力されたPDFファイルを見積書アプリの添付ファイルフィールドにセットします。
やること「キーの値をもとにレコードを更新する」で、レコード番号をキーに更新します。
マッピングで、「PDFを出力する」のアクション番号の結果を指定しました。
また、このレコードはPDF出力済であることを示すため、見積書ファイルフィールドに“出力済” をセットしました。
以上で定期実行タスクのカスタマイズは完了です。
「ジョブ生成・設定」から「直ちに実行」ボタンを押すと、見積書アプリの未出力レコードの分だけPDF出力が繰り返され、添付ファイルフィールドに出力されたPDFが添付されます。
Excel/PDF出力は、それ以外の処理と比較して時間がかかる傾向があるため、実行結果は実行履歴タブで確認してください。
終了日時と実行時間(ミリ秒)が入っていれば処理は終了しており、入っていなければまだ処理中です。
問題なく処理が実行できていることが確認できたら、必要であれば定期実行スケジュールを設定します。
下記の例では、2021/8/12 0:00から、土日を除く毎日、1時間ごとに毎回定期実行タスクの処理を行う設定です。
設定したら、最後に右下の「設定保存」を押してください。スケジュールが有効になります。
画面のカスタマイズ
定期実行させるのではなく、ボタンを押した時に定期実行タスクを1回だけ実行することもできます。
やること「ボタンをメニュー位置に配置する」を条件「一覧画面を表示した時」でボタンを配置します。
ボタンが押された時のやることは「定期実行タスクを直ちに起動する」、条件は「ボタンを押した時」です。
ここでもgusuku APIキーが必要ですので、gusuku共通管理画面を参照してください。
「kintoneアプリへ登録」を行い、一覧画面に表示されたボタンを押すと定期実行タスクが1回だけ実行され、PDFの出力と添付ファイルフィールドへの添付が一括で実行されます。
なお、定期実行タスクの処理が終了したかどうか知る術はないため、定期実行タスクのカスタマイズ画面の実行履歴から確認してください。
また、定期実行タスクの実行が完了した時に発動する「条件」はないため、定期実行タスクの処理が完了したら画面を自動的にリロードする・・・といったカスタマイズは作成できません。
ご不明点等ございましたら、チャットにてご質問ください。
Customineドキュメントやサポートページもぜひご活用ください。