先の「38. スプール・ファイルを完全に保存するには?」でおわかり頂けたようにスプールは
ユーザー・スペース(*USRSPC)に保管すれば完全に復元できることもおわかり頂けると思う。
スプールの完全なる復元はスプール属性とユーザー・スペースのデータを使って
API : QSPPUTSP によって復元することができる。
以下に復元のエッセンスとなる中核の部分を SpoolライターVer 3.0のソースからの抜粋を示す。
C/400に多少の心得があれば Spoolライター Ver 3.0 の RSTSPLF コマンドも自作することが
できる。
RPGでも同じ開発を行うこともできる。
0001.00 int handle;
0002.00 char spool_attr[ATTR_LEN];
0003.00 char usrspace[20];
0004.00 typedef struct {
0005.00 int BYTESPRO;
0006.00 int BYTESAVL;
0007.00 char EXCPID[7];
0008.00 char RESRVD;
0009.00 char EXCPDATA[100];
0010.00 } ERRSTRUCTURE; /* Define the error return structure */
0011.00 ERRSTRUCTURE errcode; /* Error Code Structure */
0012.00
0013.00 /*[ スプールの作成 ]*/
0014.00 QSPCRTSP(&handle, spool_attr, (char*)(&errcode));
0015.00 /*[ スプール・データの復元 ]*/
0016.00 QSPPUTSP(handle, usrspace, (char *)(&errcode));
0017.00 /*[ スプールのクローズ ]*/
0018.00 QSPCLOSP(handle, (char *)(&errcode) );