CL

17. iSeries400用のテープからのインストーラの作成

製品としてのライブラリーの配布や導入後になんらかのコマンドの実行などの操作を伴うような場合、やはりこの時代ではインストーラが必要である。
PC のインストーラに慣れきったユーザーにたとえテープ配布であっても、「RSTLIB xxxx, xxxxx を実行してください。」と依頼するのはスマートなやり方ではない。
インストーラによって次々とインストールを示すカラー画面が表示されれば製品らしさがあるし、製品に対する信頼性も増すというものである。
テープでの配布を日常的に行っていた諸氏に非常にスマートなインストーラの作成方法を紹介する。

実は OS/400にはテープからのインストーラへの仕組みが提供されている。
それは

コマンド入力画面から LODRUN TAP01 というように実行すれば、TAP01 に保管されている QINSTAPP という名前のプログラムが QTEMP に復元されて実行される

というものである。

以下のサンプルは実際に Chicago の 導入に使用されていたものである。
参考までに現在の Chicago は CD-R から iSeries400へアップロードするインストーラとしての「HitPack」があるので、現在ではこのテープからのインストーラは使用されていない。
試供版も含めて PC から iSeries400 へのインストーラが用意されているのも、現在でもなお弊社製品だけであると思われる。
製品の導入をユーザーに FTP などの操作を強いるのは時代背景に合っていない。
なお、このサンプルは現在導入中のプロセスを iSeries400上での POPUP表示を行っている。

【 画面DDSソース 】
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)
【 CLPソース 】
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