製品としてのライブラリーの配布や導入後になんらかのコマンドの実行などの操作を伴うような場合、やはりこの時代ではインストーラが必要である。
PC のインストーラに慣れきったユーザーにたとえテープ配布であっても、「RSTLIB xxxx, xxxxx を実行してください。」と依頼するのはスマートなやり方ではない。
インストーラによって次々とインストールを示すカラー画面が表示されれば製品らしさがあるし、製品に対する信頼性も増すというものである。
テープでの配布を日常的に行っていた諸氏に非常にスマートなインストーラの作成方法を紹介する。
実は OS/400にはテープからのインストーラへの仕組みが提供されている。
それは
コマンド入力画面から LODRUN TAP01 というように実行すれば、TAP01 に保管されている QINSTAPP という名前のプログラムが QTEMP に復元されて実行される
というものである。
以下のサンプルは実際に Chicago の 導入に使用されていたものである。
参考までに現在の Chicago は CD-R から iSeries400へアップロードするインストーラとしての「HitPack」があるので、現在ではこのテープからのインストーラは使用されていない。
試供版も含めて PC から iSeries400 へのインストーラが用意されているのも、現在でもなお弊社製品だけであると思われる。
製品の導入をユーザーに FTP などの操作を強いるのは時代背景に合っていない。
なお、このサンプルは現在導入中のプロセスを iSeries400上での POPUP表示を行っている。
0001.00 A*%%TS SD 19981009 100412 QTR REL-V2R3M0 5738-PW1
0002.00 A*-----------------------------------------------*
0003.00 A* QINSTAPPFM
0004.00 A*
0005.00 A* 導入画面
0006.00 A* RSTDSP=NO DFRWRT=YES
0007.00 A*-----------------------------------------------*
0008.00 A*%%EC
0009.00 A DSPSIZ(24 80 *DS3)
0010.00 A MSGLOC(24)
0011.00 A PRINT
0012.00 A* IGCCNV(CF18 24)
0013.00 A R DSPHEAD
0014.00 A*%%TS SD 19981008 161642 QTR REL-V2R3M0 5738-PW1
0015.00 A TEXT(' 初期画面 ')
0016.00 A CF03(03 ' 終了 ')
0017.00 A SETOF(99)
0018.00 A BLINK
0019.00 A OVERLAY
0020.00 A 23 2'F3= 終了 '
0021.00 A COLOR(BLU)
0022.00 A 1 18'PANEL-WORKER FOR'
0023.00 A 3 18' '
0024.00 A DSPATR(RI)
0025.00 A COLOR(YLW)
0026.00 A 4 18' '
0027.00 A DSPATR(RI)
0028.00 A COLOR(YLW)
0029.00 A 5 18' '
0030.00 A DSPATR(RI)
0031.00 A COLOR(YLW)
0032.00 A 6 18' '
0033.00 A DSPATR(RI)
0034.00 A COLOR(YLW)
0035.00 A 7 18' '
0036.00 A DSPATR(RI)
0037.00 A COLOR(YLW)
0038.00 A 8 18' '
0039.00 A DSPATR(RI)
0040.00 A COLOR(YLW)
0041.00 A 3 26' '
0042.00 A DSPATR(RI)
0043.00 A 4 26' '
0044.00 A DSPATR(RI)
0045.00 A 5 26' '
0046.00 A DSPATR(RI)
0047.00 A 6 26' '
0048.00 A DSPATR(RI)
0049.00 A 7 26' '
0050.00 A DSPATR(RI)
0051.00 A 8 26' '
0052.00 A DSPATR(RI)
0053.00 A 7 30' '
0054.00 A DSPATR(RI)
0055.00 A 8 30' '
0056.00 A DSPATR(RI)
0057.00 A 4 33' '
0058.00 A DSPATR(RI)
0059.00 A COLOR(BLU)
0060.00 A 6 33' '
0061.00 A DSPATR(RI)
0062.00 A COLOR(BLU)
0063.00 A 7 33' '
0064.00 A DSPATR(RI)
0065.00 A COLOR(BLU)
0066.00 A 8 33' '
0067.00 A DSPATR(RI)
0068.00 A COLOR(BLU)
0069.00 A 5 36' '
0070.00 A DSPATR(RI)
0071.00 A COLOR(RED)
0072.00 A 6 36' '
0073.00 A DSPATR(RI)
0074.00 A COLOR(RED)
0075.00 A 7 36' '
0076.00 A DSPATR(RI)
0077.00 A COLOR(RED)
0078.00 A 8 36' '
0079.00 A DSPATR(RI)
0080.00 A COLOR(RED)
0081.00 A 5 43' '
0082.00 A DSPATR(RI)
0083.00 A COLOR(YLW)
0084.00 A 6 46' '
0085.00 A DSPATR(RI)
0086.00 A COLOR(YLW)
0087.00 A 7 43' '
0088.00 A DSPATR(RI)
0089.00 A COLOR(YLW)
0090.00 A 8 43' '
0091.00 A DSPATR(RI)
0092.00 A COLOR(YLW)
0093.00 A 8 46' '
0094.00 A DSPATR(RI)
0095.00 A COLOR(YLW)
0096.00 A 9 43' '
0097.00 A DSPATR(RI)
0098.00 A COLOR(YLW)
0099.00 A 5 51' '
0100.00 A DSPATR(RI)
0101.00 A COLOR(PNK)
0102.00 A 6 51' '
0103.00 A DSPATR(RI)
0104.00 A COLOR(PNK)
0105.00 A 7 51' '
0106.00 A DSPATR(RI)
0107.00 A COLOR(PNK)
0108.00 A 6 55' '
0109.00 A DSPATR(RI)
0110.00 A COLOR(PNK)
0111.00 A 8 55' '
0112.00 A DSPATR(RI)
0113.00 A COLOR(PNK)
0114.00 A 9 55' '
0115.00 A DSPATR(RI)
0116.00 A COLOR(PNK)
0117.00 A 10 51' '
0118.00 A DSPATR(RI)
0119.00 A COLOR(PNK)
0120.00 A 5 57' '
0121.00 A DSPATR(RI)
0122.00 A COLOR(YLW)
0123.00 A 6 57' '
0124.00 A DSPATR(RI)
0125.00 A COLOR(YLW)
0126.00 A 7 57' '
0127.00 A DSPATR(RI)
0128.00 A COLOR(YLW)
0129.00 A 6 61' '
0130.00 A DSPATR(RI)
0131.00 A COLOR(YLW)
0132.00 A 7 61' '
0133.00 A DSPATR(RI)
0134.00 A COLOR(YLW)
0135.00 A 8 57' '
0136.00 A DSPATR(RI)
0137.00 A COLOR(YLW)
0138.00 A 9 57' '
0139.00 A DSPATR(RI)
0140.00 A COLOR(YLW)
0141.00 A 8 61' '
0142.00 A DSPATR(RI)
0143.00 A COLOR(YLW)
0144.00 A 11 31' の導入 '
0145.00 A 12 17'
0146.00 A '
0147.00 A DSPATR(UL)
0148.00 A 14 19' この度は PANEL-WORKER CHI
0149.00 A '
SOSI A 15 19' お買い上げ頂き誠にありが
0151.00 A います。 '
SOSI A 17 19' 実行キーを押して導入を開
0153.00 A ださい。 '
0154.00 A COLOR(BLU)
0155.00 A 18 17'
0156.00 A '
0157.00 A DSPATR(UL)
0158.00 A 11 18'VER. 3.1'
0159.00 A DSPATR(HI)
0160.00 A 24 47'(C) COPYRIGHT OFFICE QUATT
0161.00 A DSPATR(HI)
0162.00 A 10 18'STANDARD EDITION'
0163.00 A DSPATR(HI)
0164.00 A R WINDOW
0165.00 A*%%TS SD 19981009 100412 QTR REL-V2R3M0 5738-PW1
0166.00 A WINDOW(8 16 4 46)
0167.00 A OVERLAY
0168.00 A PROTECT
0169.00 A CLRL(*NO)
0170.00 A 1 3' お待ちください。 '
0171.00 A 3 3' ライブラリー :'
0172.00 A LIB 10 +1
0173.00 A DSPATR(HI)
0174.00 A +1' を復元中です '
0175.00 A R DUMMY ASSUME
0176.00 A FRCDTA
0177.00 A PUTOVR
0178.00 A DMY 2 O 1 2DSPATR(ND)
0001.00 PGM PARM(&DEV)
0002.00 /*---------------------------------------------------------*/
0003.00 /* QINSTAPP : 導入プログラム */
0004.00 /*---------------------------------------------------------*/
0005.00 DCL VAR(&MSG) TYPE(*CHAR) LEN(80)
0006.00 DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(80)
0007.00 DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
0008.00 DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
0009.00 DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
0010.00 DCL VAR(&DEV) TYPE(*CHAR) LEN(10)
0011.00 DCL VAR(&USER) TYPE(*CHAR) LEN(10)
0012.00 DCLF FILE(QTEMP/QINSTAPPFM)
0013.00 DCL VAR(&SEV) TYPE(*DEC) LEN(2 0)
0014.00 MONMSG MSGID(CPF0000)
0015.00
0016.00 RSTOBJ OBJ(QINSTAPPFM) SAVLIB(QTEMP) DEV(&DEV) +
0017.00 ENDOPT(*LEAVE) MBROPT(*ALL) ALWOBJDIF(*ALL)
0018.00 MONMSG CPF3800
0019.00 SNDRCVF RCDFMT(DSPHEAD) WAIT(*YES)
0020.00 IF COND(&IN03 *EQ '1') THEN(DO)
0021.00 SNDPGMMSG MSG('PANEL-WORKER FOR +
0022.00 CHAICAGO の導入は取消されました。 ') +
0023.00 MSGTYPE(*COMP)
0024.00 RETURN
0025.00 ENDDO
0026.00 /*( 権限の確認 )*/
0027.00 RTVJOBA USER(&USER)
0028.00 IF COND(&USER *NE 'QSECOFR') THEN(DO)
0029.00 SNDPGMMSG +
0030.00 MSG(' 導入するには QSECOFR で実行してくだ +
0031.00 さい。 ')
0032.00 RETURN
0033.00 ENDDO
0034.00 /*( 導入の開始 )*/
0035.00 CHGJOB STSMSG(*NORMAL)
0036.00 CHGVAR VAR(&LIB) VALUE('PANELWKR ')
0037.00 SNDRCVF RCDFMT(WINDOW) WAIT(*NO)
0038.00 RSTLIB SAVLIB(PANELV31) DEV(&DEV) ENDOPT(*LEAVE) +
0039.00 MBROPT(*ALL) ALWOBJDIF(*ALL) RSTLIB(PANELWKR)
0040.00 MONMSG CPF3800
0041.00 RCVMSG MSGTYPE(*LAST) RMV(*NO) MSGDTA(&MSGDTA) +
0042.00 MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFLIB)
0043.00 /*---( 作業進行中の xョネーニ゙ 出力 )------------------------------------*/
0044.00 SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
0045.00 MSGDTA(&MSGDTA) TOPGMQ(*EXT) +
0046.00 MSGTYPE(*STATUS)
0047.00 CHGVAR VAR(&LIB) VALUE('QTRSRC ')
0048.00 SNDRCVF RCDFMT(WINDOW) WAIT(*NO)
0049.00 RSTLIB SAVLIB(QTRSRC) DEV(&DEV) ENDOPT(*LEAVE) +
0050.00 MBROPT(*ALL) ALWOBJDIF(*ALL)
0051.00 MONMSG CPF3800
0052.00 RCVMSG MSGTYPE(*LAST) RMV(*NO) MSGDTA(&MSGDTA) +
0053.00 MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFLIB)
0054.00 /*---( 作業進行中の xョネーニ゙ 出力 )------------------------------------*/
0055.00 RMVMSG CLEAR(*ALL)
0056.00 SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
0057.00 MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
0058.00 CHGVAR VAR(&LIB) VALUE('QTROBJ ')
0059.00 SNDRCVF RCDFMT(WINDOW) WAIT(*NO)
0060.00 RSTLIB SAVLIB(QTROBJ) DEV(&DEV) ENDOPT(*LEAVE) +
0061.00 MBROPT(*ALL) ALWOBJDIF(*ALL)
0062.00 MONMSG CPF3800
0063.00 RCVMSG MSGTYPE(*LAST) RMV(*NO) MSGDTA(&MSGDTA) +
0064.00 MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFLIB)
0065.00 /*---( 作業進行中の xョネーニ゙ 出力 )------------------------------------*/
0066.00 SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
0067.00 MSGDTA(&MSGDTA) TOPGMQ(*EXT) +
0068.00 MSGTYPE(*STATUS)
0069.00 CHGVAR VAR(&LIB) VALUE('QTRFIL ')
0070.00 SNDRCVF RCDFMT(WINDOW) WAIT(*NO)
0071.00 RSTLIB SAVLIB(QTRFIL) DEV(&DEV) ENDOPT(*UNLOAD) +
0072.00 MBROPT(*ALL) ALWOBJDIF(*ALL)
0073.00 MONMSG CPF3800
0074.00 RCVMSG MSGTYPE(*LAST) RMV(*NO) MSGDTA(&MSGDTA) +
0075.00 MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFLIB)
0076.00 /*---( 作業進行中の xョネーニ゙ 出力 )------------------------------------*/
0077.00 SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
0078.00 MSGDTA(&MSGDTA) TOPGMQ(*EXT) +
0079.00 MSGTYPE(*STATUS)
0080.00 SNDPGMMSG +
0081.00 MSG(' 導入は正常に完了しました。テープをは +
0082.00 ずしてください。 ') MSGTYPE(*COMP)
0083.00 RETURN
0084.00
0085.00 ERROR: RCVMSG RMV(*NO) MSG(&MSG) SEV(&SEV)
0086.00 IF COND(&MSG *NE ' ') THEN(DO)
0087.00 IF COND(&SEV *GE 30) THEN(DO)
0088.00 SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG)
0089.00 ENDDO
0090.00 GOTO ERROR
0091.00 ENDDO
0092.00 ENDPGM