スプールが常に8日で削除される

SAPスプール依頼がスプール削除ジョブ「SAP_REORG_SPOOL」のデフォルト保存期間の10日よりも前に削除されてしまうことがあります。
下記のSAPノートにて、SAP社から情報が展開されています。
SAP Note 2866110 – Spools are always deleted by 8 days
SAP Note 2675824 – Old Spools Not Deleted with RSPO0041 / RSPO1041 Variant Settings
こちらのSAPノートによると、作成したスプール依頼がスプール削除ジョブ「SAP_REORG_SPOOL」によって、常に8日で削除されてしまう。ジョブが実行しているプログラムRSPO0041/RSPO1041のデフォルトバリアント「SAP&001」では、保存期間は10日で指定されているが、登録されてから8日経過したスプール依頼が削除されてしまうとのことです。
SAPノートにある解決方法を実装することで、指定した保存期間だけスプールを保存してくれるようになるとのことです。しかし、SAPノートの説明だけでは解消される仕組みが分からなかったので、スプール依頼削除の仕組みを整理してみました。
まず、スプール依頼を登録すると、スプール依頼の詳細画面 ( トランザクションコード SP01 から表示 ) で、下記の画像の通り「生成日付」と「削除日付」が設定されます。

「削除日付」が「生成日付」の8日後 ( デフォルト ) に設定されています。
・ 生成日付・・・スプール依頼を登録した日時
・ 削除日付・・・スプール依頼の有効期限
スプール依頼の詳細では「削除日付」に時刻まで表示されていないため、テーブルTSP01からスプール依頼のレコードを参照してみます。

「削除時刻」に時刻まで表示されていることがわかります。
「2025/05/19 16:36」に登録されたスプール依頼の有効期限は「2025/05/27 16:36」となります。
※ テーブル内の時刻はUTC時間となっているため、+9時間することで日本時間となります。
標準ジョブ「SAP_REORG_SPOOL」( 実行プログラム:RSPO0041 / RSPO1041 ) の標準バリアント「SAP&001」の設定は下記の通りです。

標準バリアントでは保存日数を「10」日に設定されています。
これであれば、「2025/05/19」に登録したスプール依頼は「2025/05/29」に削除されるはずが、実際には削除日付で指定された8日後の「2025/05/27」に削除されてしまいます。
その理由としては、削除プログラムのRSPO0041 / RSPO1041は、以下のオプションが設定されていると、バリアントで指定した保存日数ではなく、各スプール依頼の「削除日付」から削除対象を決定する仕様になっているからです。

※ RSPO1041は、スプール依頼のステータス毎に削除の設定が可能となります。今回のブログ記事では「未出力」ステータスのスプール依頼に対して説明します。
プログラムの動作としては、プログラムが実行されるとスプール依頼の「削除日付」に指定されている日時が、プログラムを実行した日時よりも古いスプール依頼を削除するようになっています。

このため、バリアントで保存日数を指定していても、8日後に削除する動きをします。( 保存日数を8日より前に指定していても、8日後に削除されます )
指定した日数後にスプール依頼を削除するためには、下記の通りにオプション設定する必要があります。

上記の設定により、削除プログラム ( RSPO0041 / RSPO1041 ) は、スプール依頼の「削除日付」ではなく、「生成日付」から削除対象を決定するようになります。
スプール依頼が「2025/05/04」に生成されて、保存日数が「10」日の場合は、「2025/05/14」にスプール依頼が削除されるようになります。

削除プログラムは時刻まで判断するため、「2025/05/14 01:30:00」にジョブ「SAP_REORG_SPOOL」が実行された場合、「2025/05/04 01:30:00」以前に登録されたスプール依頼が削除されて、「2025/05/04 01:31:01」から「2025/05/04 23:59:59」に登録されたスプール依頼は削除されません。