PDF帳票をまとめて作る前に決めたい、二重発行と再実行のルール
スプレッドシートのデータから請求書や納品書などのPDFを一括発行する仕組みは非常に便利です。しかし、実務で安全に運用するためには、途中でエラー停止した際に「どこまで発行できたか」を判定するルールが欠かせません。
1. ファイル名だけでは「二重発行」を防ぎきれない理由
PDF帳票の自動生成を自作する際によくある落とし穴が、「Google Drive内のファイル名をチェックして、同名のファイルがあればスキップする」という設計です。
一見シンプルで良さそうに見えますが、実務では次のようなケースで破綻します。
・同姓同名の顧客や、同一日に複数件の注文があった場合にスキップされてしまう
・過去にテスト出力した古いPDFがフォルダ内に残っていて、当月分の発行が阻害される
・ネットワークの切断やGoogle側の処理時間制限(6分上限)により、ファイル作成の途中で停止した際、壊れたファイルが「作成済み」として誤判定される
単にファイル名の有無を見るだけでは、実務に耐えうる安定した一括発行は実現できません。
2. 安全な一括発行を支える「処理状態管理」の仕組み
帳票の二重発行を防ぎ、途中で止まっても安全に再開できるようにするためには、元データとなるスプレッドシート側で状態を1行ずつ管理することが基本となります。
【説明用の処理モデル(注文3件の例)】
・1行目:注文番号1001|発行ステータス:完了(発行日時・ファイルID記録済み)
・2行目:注文番号1002|発行ステータス:完了(発行日時・ファイルID記録済み)
・3行目:注文番号1003|発行ステータス:未処理(エラ
0