ADDIFSSHR コマンドは NetServer によって共有される IFSを追加するコマンドである。
ADDIFSSHR によって共有として追加されたIFSフォルダー内のストリーム・ファイルは
Winエクスプローラからも見るだけでなく編集することもできる。
例えばIFSに保管されているHTMLをWinエクスプーラで表示して、メモ帳で直接、表示して
編集することができる。上書きで保存すれば元のIFSに保管することができる。
このような編集はFTPによってダウンロードやアップロードの必要がないので開発の上では、
かなり効果的であるといえる。
あるいはExcelブックをIFSに保管しておいてWindowsからオープンすることもできる。
このようにIFSを共有化するとiSeries400のストリーム・ファイルの使用は今までとちがって
より一層扱いやすくなることは間違いない。
処理の方法としては
ENDTCPSVR *NETSVR STRTCPSVR *NETSVR
とするだけの簡単なものである。
ADDIFSSHR は EnterpriseServer Ver3.0 のIFSメニュー(GO IFS)に搭載されている。
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)
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)