Tools

12. ADDIFSSHR IFS共有の追加

ADDIFSSHR コマンドは NetServer によって共有される IFSを追加するコマンドである。

ADDIFSSHR によって共有として追加されたIFSフォルダー内のストリーム・ファイルは
Winエクスプローラからも見るだけでなく編集することもできる。
例えばIFSに保管されているHTMLをWinエクスプーラで表示して、メモ帳で直接、表示して
編集することができる。上書きで保存すれば元のIFSに保管することができる。
このような編集はFTPによってダウンロードやアップロードの必要がないので開発の上では、
かなり効果的であるといえる。
あるいはExcelブックをIFSに保管しておいてWindowsからオープンすることもできる。
このようにIFSを共有化するとiSeries400のストリーム・ファイルの使用は今までとちがって
より一層扱いやすくなることは間違いない。

処理の方法としては

  1. ADDIFSSHR コマンドで共有フォルダーを指定する。
  2. OS400のNetServer を次のように再起動する。
    ENDTCPSVR *NETSVR
    STRTCPSVR *NETSVR

とするだけの簡単なものである。

ADDIFSSHREnterpriseServer Ver3.0IFSメニュー(GO IFS)に搭載されている。

【 コマンド ADDIFSSHR 】
0001.00              CMD        PROMPT('IFS 共有の追加 ')                       
0002.00              PARM       KWD(SHARENAME) TYPE(*CHAR) LEN(12) MIN(1) +     
0003.00                           PROMPT(' 共有名 ')                            
0004.00              PARM       KWD(PATHNAME) TYPE(*PNAME) LEN(1024) DFT('') +  
0005.00                           SPCVAL(('')) PROMPT(' パス名 (/ で始まる )')  
0006.00              PARM       KWD(TEXT) TYPE(*CHAR) LEN(50) DFT('') +         
0007.00                           PROMPT(' 共有テキスト ')                      
0008.00              PARM       KWD(PERMISSION) TYPE(*INT4) DFT(*READONLY) +    
0009.00                           RANGE(1 2) SPCVAL((*READONLY 1) +             
0010.00                           (*READWRITE 2)) CHOICE('*READONLY, +          
0011.00                           *READWRITE') +                                
0012.00                           PROMPT(' 許可権 ')                            
0013.00              PARM       KWD(MAXUSERS) TYPE(*INT4) DFT(*NOMAX) +         
0014.00                           SPCVAL((*NOMAX X'FFFFFFFF')) +                
0015.00                           PROMPT(' 最大ユーザー数 ')                    
0016.00              PARM       KWD(CCSID) TYPE(*INT4) DFT(*JOB) +              
0017.00                           SPCVAL((*JOB 0)) +                            
0018.00                           PROMPT(' 文字セット識別コード (CCSID)')
【 コンパイル 】
CRTCMD CMD(MYLIB/ADDIFSSGR) PGM(MYLIB/ADDIFSSHRC)   SRCFILE(MYSRCLIB/QCMDSR) AUT(*ALL)
【 CLP : ADDIFSSHRC 】
0001.00              PGM        PARM(&SHARENAME &PATHNAME &TEXT &PERMISSION +   
0002.00                           &MAXUSERS &CCSID)                             
0003.00 /*---------------------------------------------------------*/           
0004.00 /*   ADDIFSSHR   :    IFS 共有の追加                       */           
0005.00 /*                                                         */           
0006.00 /*     実行には *IOSYSCFG 権限または IFS の所有者である    */           
0007.00 /*     ことが必要である。                                  */           
0008.00 /*     この CLP のコンパイルは QSECOFR で USRPRF(*OWNER)   */           
0009.00 /*     指定してコンパイルすること。                        */           
0010.00 /*                                                         */           
0011.00 /*         CRTCLPGM   PGM(XXX/ADDIFSSHRC) SRCFILE(XXX/QCLSRC) +   */    
0012.00 /*                       USRPRF(*OWNER)                           */    
0013.00 /*                                                         */           
0014.00 /*---------------------------------------------------------*/           
0015.00              DCL        VAR(&MSG) TYPE(*CHAR) LEN(80)                   
0016.00              DCL        VAR(&SHARENAME) TYPE(*CHAR) LEN(12)             
0017.00              DCL        VAR(&PATHNAME) TYPE(*CHAR) LEN(1024)            
0018.00              DCL        VAR(&TEXT) TYPE(*CHAR) LEN(50)                  
0019.00              DCL        VAR(&PERMISSION) TYPE(*CHAR) LEN(4)             
0020.00              DCL        VAR(&MAXUSERS) TYPE(*CHAR) LEN(4)               
0021.00              DCL        VAR(&CCSID) TYPE(*CHAR) LEN(4)                 
0022.00              DCL        VAR(&PATHLEN) TYPE(*CHAR) LEN(4)               
0023.00              DCL        VAR(&LEN) TYPE(*DEC) LEN(5 0) VALUE(1024)      
0024.00              MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))        
0025.00                                                                        
0026.00 /* 共有の追加 */                                                       
0027.00 LOOP:         IF         (%SST(&PATHNAME &LEN 1) *EQ ' ') THEN(DO)     
0028.00                 CHGVAR     (&LEN) VALUE(&LEN - 1)                      
0029.00                 IF         (&LEN *EQ 0) THEN(RETURN)                   
0030.00                 GOTO       LOOP                                        
0031.00               ENDDO                                                    
0032.00                                                                        
0033.00               CHGVAR     (%BIN(&PATHLEN)) VALUE(&LEN)                  
0034.00               CALL       PGM(QZLSADFS) PARM(&SHARENAME &PATHNAME +     
0035.00                            &PATHLEN &CCSID &TEXT &PERMISSION +         
0036.00                            &MAXUSERS X'00000000')                      
0037.00               SNDPGMMSG  MSG(' 共有 ' *BCAT &SHARENAME *BCAT +         
0038.00                            ' が作成されました。 ') MSGTYPE(*COMP)      
0039.00               RETURN                                                   
0040.00                                                                        
0041.00  ERROR:      RCVMSG     RMV(*NO) MSG(&MSG)                             
0041.00  ERROR:      RCVMSG     RMV(*NO) MSG(&MSG)         
0042.00  SNDMSG:     SNDPGMMSG  MSG(&MSG) TOMSGQ(*SYSOPR)  
0043.00              ENDPGM                                
【 コンパイル 】
CRTCLPGM MYLIB/ADDIFSSHRC SRCFILE(MYSRCLIB/QCLSRC)   USRPRF(*OWNER) AUT(*ALL)