SCF(中大型用FSP系)
●SCF(エスシーエフ)System Control Facility
XSPシステムの自動運転を実現する機能。
-----------------------------------
●SYSOPN
コンピュータ立上げから、1日の処理
/ DEFINE SYSOPN,SKP=N,DEBUG=YES
PROC SYSOPN,TYPE=(KEEP)
*********************************************************
** ABCD システム オープン **
*********************************************************
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>'
MSG '<<<<< SYSTEM OPEN >>>>'
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>'
**
COMMAND 'CHAM SYS.XSPMAC'
**
*********************************************************
** 日付セット **
*********************************************************
***(トウジツ SET)****
SET #YMD1=#SYSDATE
SET #YY=#CHAR(#YMD1,2)
SET #MD=#CHAR(#YMD1,5,B)
SET #MM=#CHAR(#MD,2)
SET #DD=#CHAR(#MD,2,B)
COMMAND ':ESET X8.DATE1=#YMD1',ID=TOD1
WAIT CMD(TOD1)
COMMAND ':ESET X8.DATE2=#YY#MM#DD',ID=TOD2
WAIT CMD(TOD2)
COMMAND ':ESET X8.YYMM=#YY#MM',ID=TOD3
WAIT CMD(TOD3)
COMMAND ':ESET X8.YY=#YY',ID=TOD4
WAIT CMD(TOD4)
COMMAND ':ESET X8.MM=#MM',ID=TOD5
WAIT CMD(TOD5)
COMMAND ':ESET X8.DD=#DD',ID=TOD6
WAIT CMD(TOD6)
*******************************************************
** IDCM START **
*******************************************************
EVENT WTO(JYM410I)
COMMAND 'START IDCM'
WAIT WTO(JYM410I)
WAIT INTV(10S)
*******************************************************
** AIM START **
*******************************************************
EVENT WTO(JXAA25I)
COMMAND 'START AIM'
WAIT WTO(JXAA25I)
*******************************************************
** SIS START **
*******************************************************
EVENT WTO(JXJ510I)
=JALT JC=AIM,S,SIS,SISN=SIS00
WAIT WTO(JXJ510I)
*******************************************************
** APG START **
*******************************************************
EVENT WTO(JXJM02I)
=JALT JC=AIM,S,APG,APGN=APG00
WAIT WTO(JXJM02I)
*
EVENT WTO(JXJM02I)
=JALT JC=AIM,S,APG,APGN=APG01
WAIT WTO(JXJM02I)
*******************************************************
** DCMS START **
*******************************************************
EVENT WTO(JXJ550I)
=JALT JC=AIM,START,DCMS
WTO(JXJ550I)
*******************************************************
** 処理開始 **
*******************************************************
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>'
MSG '<<<<< DAILY システム START >>>>>'
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>'
COMMAND ':S ABCD0010'
WAIT TIME(10.00)
RDYJOB (ABCD0011)
WAIT TIME(12.00)
RDYJOB (ABCD0020)
WAIT TIME(14.00)
RDYJOB (ABCD0030)
CALLPROC (ABCD0040,10)
*
RDYPROC (ABCD0042)
JOBS (ABCD0041,10)
JOBP (ABCD0100,10),
(ABCD0200,10)
EVENT WTO('MSG ABCD0050 NORMAL END')
EVENT WTO('MSG ABCD0060 NORMAL END')
=\\ ABCD0050
=\\ ABCD0060
WAIT WTO('MSG ABCD0060 NORMAL END')
WAIT WTO('MSG ABCD0050 NORMAL END')
=:SET WTO('MSG (ABCD0030 NORMAL END'),
WTO('MSG (ABCD0040 NORMAL END'),
CMD=':S (ABCD007S',ONCE,ID=TEMP
JOBS (ABCD0300,10,,(PR1=\PR1,PR2=\PR2,PR3=\PR3))
**
/ IF SKP=Y,SKP02
SKP01: NOP
JOBS (ABCD0310,10,,(PR1=\PR1,PR2=\PR2,PR3=\PR3))
SKP02: NOP
** 00003200
*******************************************************
** 処理終了 **
*******************************************************
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>'
MSG '<<<< SYSCLS ジヨウケン ノ SET >>>'
MSG '<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>'
=:SET END(AAA00010),
END(BBB00010),
CMD=':S SYSCLS',ONCE,ID=DCLS
MSG 'MSG SYSOPN NORMAL END'
**
PEEND: NOP
PEND
/ DEFEND
-----------------------------------
●SYSCLS
コンピュータの落とし
/ DEFINE SYSCLS
PROC SYSCLS,TYPE=(KEEP)
*********************************************************
** ABCD システム クローズ **
*********************************************************
=STOP DV=L0
WAIT INTV(10S)
=CANCEL US=INT0
=JALT JC=AIM,POST,END,P=ABCD00,MD=E
=JALT JC=AIM,POST,END,P=ABCD01,MD=E
WAIT INTV(10S)
EVENT WTO(JXJ560I)
=JALT JC=AIM,P,DCMS
WAIT WTO(JXJ560I)
WAIT INTV(20S)
=JALT JC=AIM,P,APG,APGN=APG00
EVENT WTO(JXJ530I)
=JALT JC=AIM,P,SIS,SISN=SIS00
WAIT WTO(JXJ530I)
WAIT INTV(20S)
EVENT WTO(JXAA26I)
=STOP AIM
WAIT WTO(JXAA26I)
EVENT WTO(JYM426I)
=STOP IDCM
WAIT WTO(JYM426I)
=STOP DV=C0
STPAIF
COMMAND 'STOP GSM'
PRCF
STPVTAM
COMMAND ':START STPLIB'
COMMAND ':C MRCE'
COMMAND 'JALT MRCE,STOP'
COMMAND ':C MTRREQDF'
PPADIAE
IF #SYSTIME>04.30,THEN=PEEND
POFF /
PEND
**
MSG 'MSG SYSCLS NORMAL END'
**
PEEND: NOP
PEND
/ DEFEND
JCL(中大型用FSP系)
●JCL(ジェーシーエル) Job Control Language
ジョブ制御文を記述する言語。
-----------------------------------
●JCL処理サンプル1
/EXPAN DEFINE MABC0010,RN=1
\ JOBG DBMENT,MULTI=1,REL
\ JOB MABC0010,ACCT='ABC1',RSTEP=\RN,MULTI,PRTY=(3,5)
\********************************************************
\* 在庫更新処理 *
\********************************************************
\*
\ EX FDLT
\ FD LIST=DUMMY
\ FD COIN=*
/ F WWABCD31,000010
/ F WWABCD32,000011
/ FIN
\**
\ EX PABCD075
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(30,30,RLSE),SOUT=B
\ FD AIMPED=SSI,SUBSYS=(AIM,PDBCD075,APG00)
\ FD U31=DUMMY
\*
\ EX PABC2030
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(1,1,RLSE),SOUT=B
\ FD AIMPED=SSI,SUBSYS=(AIM,PDABC00A,APG00)
\ FD LIST=DUMMY
\ FD WWW51403=DA,VOL=000010,FILE=WWABCD31,TRK=(270,90,RLSE)
\*
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WWABCD31,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WWABCD32,TRK=(90,30,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT KEYS=(01,2,CH,A)
OMIT COND=(84,1,EQ,C'1',OR,
01,2,EQ,C'31',OR,
01,2,EQ,C'10'),
FORMAT=CH
END
\ EX ABC12550
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(1,1),SOUT=B
\ FD C124C03B=DA,VOL=000011,FILE=WWABCD32
\ FD LIST0000=DA,VOL=WORK,SOUT=K,TRK=(100,100,RLSE)
\ FD LIST=DUMMY
\********************************************************
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WXYJANNZ,DISP=(DLT,LOCK)
\ FD SORTOUT=DA,VOL=000010,FILE=WWABCD39,TRK=(10,10,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(188,1,CH,A,181,7,CH,A,128,6,CH,A,18,10,CH,A)
INCLUDE COND=(189,1,EQ,C'1'),
FORMAT=CH
END
\**
\ EX FSET
\ FD PRGLIB=DA,FILE=SYS.X8SYSTEM.UTYEB
\ PARA BLKS=3600,RCDS=200
\ FD U01=DA,VOL=000010,FILE=WXYJANNZ,TRK=(10,10)
\ FD LIST=DUMMY
\*
\**************************************************************
\ EX ABC12290
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(1,1),SOUT=B
\ FD C124C03B=DA,VOL=000010,FILE=WWABCD39
\ FD C224C03C=DA,VOL=000012,FILE=WXYJANNX,TRK=(100,10,RLSE)
\ FD LIST=DUMMY
\ FD WXYAM010=DA,FILE=(WXYPUMB010,OT)
\ FD UIN=*
0001
\*
\*
\ EX FCPY
\ PARA / FCPY IN=U01,OUT=U05,COUNT=YES
\ FD U01=DA,VOL=000011,FILE=WWWACD12
\ FD U05=DA,VOL=000010,FILE=(WXYJAERR,AD),DISP=LOCK
\ FD LIST=DUMMY
\**EX *
\**PAUSE !!!!!!!! TEST !!!!!!!!!
\ EX PABC123B
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(1,1),SOUT=B
\ FD U30=DA,VOL=000001,FILE=WWABC101,FCB=(OPTCD=X)
\ FD CF=DA,VOL=000002,FILE=WWABC102,FCB=(OPTCD=X)
\ FD U31=DA,VOL=000001,FILE=WWABC103,TRK=(90,30),DISP=(CONT,DLT)
\ FD U32=DA,VOL=000005,FILE=WWABC104,TRK=(5,5,RLSE)
\ FD U38=DA,VOL=000001,FILE=(WWABC300,AD)
\ FD LIST=DA,VOL=WORK,TRK=(30,30,RLSE),SOUT=K
\*
\ EX *
\ FD U06=DA,VOL=000001,FILEWWABC101,DISP=DLT
\*
\ EX FTOF
\ FD PRGLIB=DA,FILE=SYS.X8SYSTEM.UTYEB
\ FD U01=DA,VOL=000010,FILE=WWABCD35,DISP=DLT
\ FD U02=DA,VOL=000013,FILE=WWABCD36,TRK=(100,100,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
/ FTOF IN=U01,OUT=U02,BLKS=2100,RCDS=210
/ FS 0001DX(200) 0001DX(200)
/ FS 0201 '&X8.DATE2'
/ FIN
\**
\ EX FCPY
\ PARA / FCPY IN=U01,OUT=U05,COUNT=YES
\ FD U01=DA,VOL=000009,FILE=WXYNTHZN,DISP=DLT
\ FD CF=DA,VOL=000013,FILE=WXYNTHZ5,DISP=DLT
\ FD U05=DA,VOL=000012,FILE=WXYNTHZ6,TRK=(600,200,RLSE)
\ FD LIST=DUMMY
\**
\********************************************************
\ EX *
\ FD CATF=MT,FILE=WWABC2(0),DISP=CONT
\*
\ EX FCPY,COND=10
\ PARA / FCPY IN=U01,OUT=U02
\ FD U01=DA,FILE=WWXYZ002
\ SW U02=CATF,FILE=(WWXYZ002.X&X8.DATE2,FA),DISP=CONT
\ FD LIST=DUMMY
\*
\ EX FCPY,COND=10
\ PARA / FCPY IN=U01,OUT=U02
\ FD U01=DA,VOL=000004,FILE=WWXYZ003
\ SW U02=U02,FILE=(WWXYZ004.X&X8.DATE2,FA)
\ FD LIST=DUMMY
\********************************************************
\*
\********************************************************
\**
\ EX *
\ MSG MABC0010 NORMALEND
\*
\ JEND
\ JGEND
/ DEFEND
●JCL処理サンプル2
/EXPAN DEFINE MABC0020,RN=1,FP=1,SYSYM=,SYSMM=,SYSYY=,DZ=,TZ=
/ SET SYSYM=&X8.YYMM
/ SET SYSMM=&X8.MM
/ SET SYSYY=&X8.YY
/ SET DZ=&X8.ZYYMM
/ SET TZ=&X8.YYMM
\ JOBG ABCDE,REL
\ JOB MABC0020,ACCT='S23A',RSTEP=\RN
\********************************************************
\* 在庫データ保存処理 *
\********************************************************
\ EX FDCV
\ FD U01=F1
\ FD U30=DA,VOL=000004,FILE=WWABCDN2,TRK=(50,50,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
/ OUT U30,WWABCDN2,RL=80,BF=13
/ CNVB *
/ LOAD
/ FIN
\*
\ EX *,COND=(15,60)
\ FD U01=DA,VOL=000004,FILE=WWABCDN2,DISP=DLT
\*
/ IF SYSMM=02,SKP01
\ EX FCPY
\ PARA / FCPY IN=U01,OUT=U02,COUNT=YES
\ FD U01=MT,VOL=MT0104,FILE=WWABCDN3
\ FD U05=DA,VOL=000002,FILE=WWABCDN4,TRK=(60,30)
\ FD LIST=DUMMY
\ FD COIN=*
/ FCPY IN=U01,OUT=U05
/ FIN
\*
/ SKIP SKP02
/SKP01 NOP
\ EX FSET
\ FD PRGLIB=DA,FILE=SYS.X8SYSTEM.UTYEB
\ PARA BLKS=1800,RCDS=600
\ FD U01=DA,VOL=000002,FILE=WWABCDN5,TRK=(60,30)
\ FD LIST=DUMMY
\*
/SKP02 NOP
\*******************************************************
\ EX *
\ FD CATF=MT,FILE=BOISGS(0),DISP=CONT
\*
\ EX ISFG
\ SW U01=CATF,FILE=WWABCDN&X8.ZYYMM
\ FD U05=DA,VOL=000003,FILE=WWABCDN6,FCYL=10
\ FD LIST=DUMMY
\ FD COIN=*
/ ISFG IN=U01,OUT=U05
/ AREA PRIM=25
/ BTYP RKYP=1,KEYS=8,RCDS=200,BLKS=1000,BLKD=80
/ FIN
\**
\*******************************************************
\*
\ EX PABCD200
\ FD PRGLIB=DA,FILE=SYSELIB
\ FD CF=DA,FILE=CALIB
\ FD SYSDBOUT=DA,VOL=WORK,TRK=(30,30,RLSE),SOUT=B
\ FD LIST=DUMMY
\ FD WWXYZ002=DA,FILE=WWXYZ002
\ FD WWABCDN6=DA,VOL=000003,FILE=WWABCDN6
\ FD AN032111=DA,VOL=000002,FILE=WWABCDN7,TRK=(90,30,RLSE)
\ FD UIN=DA,VOL=000001,FILE=DX23AM03.X0
\*
\*************************************************************
/ IF SYSMM^=02,SKPGG
/ IF SYSYM=0101,SKP0A
/ SKIP SKPGG
\**
/SKP0A NOP
\ EX *
\ FD CATF=MT,FILE=ABCDE(-1),DISP=CONT
\*
\ EX FCPY
\ PARA / FCPY IN=U01,OUT=U02
\ FD U01=*
DUMMY
\ SW U02=CATF,FILE=DUMMY,DISP=CONT
\ FD LIST=DUMMY
\*
\ EX *
\ SW CATF=U02,FILE=ABCDE(+1),DISP=CAT
\*
\ EX *
\ UNCAT FILE=ABCDE(-2)
\****
\ EX *
\ FD CATF=MT,FILE=ABCDE(0),DISP=CONT
\*
\ EX FCPY
\ FD U01=DA,VOL=000002,FILE=WWABCDN7,DISP=DLT
\ SW U05=CATF,FILE=(WWABCDN&X8.ZYYMM,OT),DISP=CONT
\ FD LIST=DUMMY
\ FD COIN=*
/ FCPY IN=U01,OUT=U05
/ FIN
/SKIP SKP22
\*******************************************************************
/SKPGG NOP
\ EX *
\ FD CATF=MT,FILE=ABCDE(0),DISP=CONT
\*
\ EX FCPY
\ FD U01=DA,VOL=000002,FILE=WWABCDN7,DISP=DLT
\ SW U05=CATF,FILE=(WWABCDN&X8.ZYYMM,OT),DISP=CONT
\ FD LIST=DUMMY
\ FD COIN=*
/ FCPY IN=U01,OUT=U05
/ FIN
\*
\*
/SKP22 NOP
\*
\ EX FCPY
\ FD U01=DA,VOL=000003,FILE=WWABCDN6,DISP=DLT
\ SW U05=U05,FILE=(WWABC&X8.ZYYMM,FA)
\ FD LIST=DUMMY
\ FD COIN=*
/ FCPY IN=U01,OUT=U05
/ FIN
\***************************************************************
\ EX *
\ MSG MABC0020 NORMALEND
\*
\ JEND
\ JGEND
/ DEFEND
JCL/SORT(中大型用FSP系)
●SORT基本形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
27,11,CH,A 27から11バイトの文字を正順にSORTする
27,11,CH,D 27から11バイトの文字を逆順にSORTする
●SORT抽出形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
INCLUDE COND=(60,1,EQ,C'A',AND,24,1,EQ,C'2'),
FORMAT=CH
END
60,1,EQ,C'A',AND,24,1,EQ,C'2'
60から1バイトがAで、24から1バイトが2を抽出する
(注)ENDはなくてもよい
●SORT除外形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
OMIT COND=(60,1,EQ,C'A',AND,24,1,EQ,C'2'),
FORMAT=CH
END
60,1,EQ,C'A',AND,24,1,EQ,C'2'
60から1バイトがAで、24から1バイトが2以外を抽出する
○算術判定
EQ =
NE NOT=
GT > より大きい
GE >= 等しいかり大きい
LT < より小さい
LE <= 等しいかより小さい
○文字判定
C'A' 文字のA
●SORT出力レイアウト作成形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
INCLUDE COND=(60,1,EQ,C'A',AND,24,1,EQ,C'2'),FORMAT=CH
OUTREC FIELDS=(1,3,4,4,8,5,14,5,20,5,26,5,
32,5,38,5,44,5,50,5,56,5,
62,5,68,5,74,5,97,13)
●SORT合計形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
INCLUDE COND=(60,1,EQ,C'A',AND,24,1,EQ,C'2'),FORMAT=CH
SUM FIELDS=(43,4,ZD,53,9,ZD)
OUTREC FIELDS=(3,2,26,4,43,4,53,9,68,4)
●SORTスキップ形
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF01,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A),SKIPREC=10
SKIPREC=10 最初の10件は読み飛ばし
●SORT応用形 3ファイルマージ
\ EX SORT
\ FD SORTIN=DA,VOL=000010,FILE=WA05FF0A,DISP=DLT
\ FD CF=DA,VOL=000010,FILE=WA05FF0B,DISP=DLT
\ FD CF=DA,VOL=000010,FILE=WA05FF0C,DISP=DLT
\ FD SORTOUT=DA,VOL=000011,FILE=WA05FF02,TRK=(150,90,RLSE)
\ FD LIST=DUMMY
\ FD COIN=*
SORT FIELDS=(27,11,CH,A,54,4,CH,A)
●もろもろ使用例
----------
SORT FIELDS=(1,7,CH,A)
INCLUDE COND=(208,1,NE,C' ',OR,1,1,EQ,C'G'),FORMAT=CH
----------
SORT FIELDS=(27,11,CH,A,77,6,CH,A)
INCLUDE COND=(45,6,GE,C'970218'),FORMAT=CH
----------
SORT FIELDS=(42,7,CH,A)
INCLUDE COND=(04,2,EQ,C'08',AND,(42,01,EQ,C'8',OR,
42,01,EQ,C'9')),FORMAT=CH
----------
SORT FIELDS=(32,1,CH,A)
INCLUDE COND=(01,2,EQ,C'01',AND,7,2,LT,C'21'),
FORMAT=CH
----------
SORT FIELDS=(32,6,CH,A)
INCLUDE COND=(32,6,EQ,C'F96039',OR,
32,6,EQ,C'F85321',OR,
32,6,EQ,C'F84935',OR,
32,6,EQ,C'ZZZZZZ'),
FORMAT=CH
----------
INCLUDE COND=(1,2,EQ,C'01',AND,32,1,EQ,C'F',OR,
1,2,EQ,C'01',AND,32,1,EQ,C'Q'),
FORMAT=CH
----------
SORT FIELDS=(32,1,CH,A,13,6,CH,A,19,4,CH,A)
INCLUDE COND=((01,02,EQ,C'01',AND,31,1,EQ,C'C'),OR,
(01,02,EQ,C'01',AND,159,2,EQ,C'7A')),
FORMAT=CH
----------
SORT FIELDS=(32,6,CH,A,13,10,CH,A)
INCLUDE COND=(1,2,EQ,C'01',AND,
(31,1,EQ,C'C',OR,159,2,EQ,C'7A'),AND,
32,1,NE,C'E',AND,32,1,NE,C'G'),
FORMAT=CH
----------
INCLUDE COND=(1,2,EQ,C'01',AND,17,2,GT,C'15'),
FORMAT=CH
----------
INCLUDE COND=(013,04,EQ,C'&X8.ZYYMM'),
FORMAT=CH
----------
INCLUDE COND=(001,1,GE,C'D',AND,
001,1,LE,C'D'),
----------
INCLUDE COND=(1,2,EQ,C'01',AND,
(31,1,EQ,C'C',OR,159,2,EQ,C'7A'),AND,
32,1,NE,C'E',AND,32,1,NE,C'G'),
FORMAT=CH
----------
SORT FIELDS=(45,11,CH,A,12,10,CH,A,38,01,CH,A)
INCLUDE COND=(052,04,EQ,C' ',AND,
038,01,NE,C'9',AND,
093,01,NE,C'T'),
FORMAT=CH
END
----------
INCLUDE COND=((52,6,EQ,C'M56930',OR,
52,6,EQ,C'M55950',OR,
52,6,EQ,C'ZZZZZZ'),AND,
12,6,EQ,C'1D735L'),
FORMAT=CH
----------
SUM FIELDS=(31,8,PD)PD パツク ZD 10 シン
OUTREC FIELDS=(11,10,31,8,1,4)
----------
SORT FIELDS=(24,2,CH,A,1,7,CH,A)
OMIT COND=(30,9,EQ,000000000),FORMAT=ZD
----------
SORT FIELDS=(1,1,CH,A),EQUALS
OMIT COND=(129,2,EQ,C'XX',OR,
129,2,EQ,C'08',AND,184,1,EQ,C'0',OR,
129,2,EQ,C'09',AND,184,1,EQ,C'0'),
FORMAT=CH
END
----------
CL(オフコンESP系)
●サンプルCL
001 PROC 0
001 LIB ('C.ALIB')
001 CONTROL NOFLUSH PROMPT NOLIST NOCONLIST NOSYMLIST NOMSG
001 /***************************************************************/
001 * /** プログラムID ABCD0300 **/
001 * /** 概要 在庫データ作成 **/
001 * /** 作成者 山田太郎 2006/01/11 **/
001 /***************************************************************/
009 FREE ALL
009 SET &PRM99=&SUBSTR(1:3,&SYSUID)
009 IF &PRM99=ISK THEN GOTO A3
009 FREE ALL
001 /*
001 * PDT00: WRITE ABCD0300 在庫データ作成
009 WRITE
009 * WRITE ※終了するには E を入力して下さい
009 WRITE
009 * WRITE 処理NOを入力して下さい(例 529842)
009 WRITE
001 * PDT10: WRITENR 処理NO------->
009 READ &SD
009 IF &SD=E THEN GOTO A3
009 IF &SD=&STR() THEN GOTO PDT10
001 /*
009 WRITE
009 WRITE
009 * WRITE 処理中です...
009 WRITE
001 /*
009 * DLTDS 'WWABC020'
009 FREE ALL
009 SET &PRM91=&SUBSTR(1:6,&SD)
009 SET &PRM99=&SYSUID
001 /*
009 EXCCL ASCAIM FILE('MIG.JCL') PARAM('P2 M(SYSTEM.AIM00.MD) +
018 P(RDWWUTRO) A(APGRV00) C1(A) OF(ZZZZSG) D(00)')
009 ALLOC F(RDWWS001) REUSE SPACE(100 10) TRACKS RELEASE
009 * EXCCL @DLTFILE FILE('MIG.JCL') PARAM('FILE(WWABC020)')
009 DFNFATR ZZZZSG BLKSIZE(4000) LRECL(250) DSORG(PS) RECFM(F B)
009 ALLOC DDNAME(SYSUOUT) UNIT(DA) +
018 * DSNAME('WWABC020') +
018 NEW REUSE USING(ZZZZSG) VOLUME(VOL006) +
018 SPACE(100 10) TRACKS RELEASE
009 INDATA SYSIN
009 DATA PROMPT
018 UNLOAD TO DDNAME SYSUOUT &STR(+)
018 WITH NONULL NOPRINT &STR(+)
018 AS SELECT * &STR(+)
018 FROM &STR(+)
018 MIGDB.RDBABC010_PF &STR(+)
018 * WHERE WWWSTS = '1' AND WWWHADT = &PRM91 &STR(+)
018 ORDER BY WWWNBR
009 ENDDATA
009 EXCCL ASCAIM FILE('MIG.JCL') +
018 PARAM('P3 OF(ZZZZSG) D(00)')
009 IF &LASTCC GT 12 THEN GOTO ERRMSG
009 FREE ALL
001 /*
009 ASCLP SYSDBOUT SYSOUT(B)
009 ASCLP SYSOUT SYSOUT(B)
002 EXCCL ASCAIM PARAM('P1 P(RDBABCD2) A(APGRV00) M(SYSTEM.AIM00.MD) +
009 D(00)') FILE('MIG.JCL')
009 * ASCFILE DDNAME(WWABC020) DSNAME('WWABC020.PF') SHR
009 ASCFILE DDNAME(WWABC030) DSNAME('WWABC030.PF') SHR
009 ASCFILE DDNAME(WWABC040) DSNAME('WWABC040.PF') SHR
009 ** ASCFILE DDNAME(WORKF) DSNAME('WWABC050') SHR
009 * EXCPGM PABCS7 '&PRM99' FILE('ABCLIB.LOAD')
009 IF &LASTCC NE 0 THEN GOTO ERRMSG
009 * DLTDS 'WWABC020'
009 FREE ALL
001 * /*
009 * GOTO PDT00
001 * /*
001 * A3: FREE ALL
009 * WRITE
009 * FREE ALL
009 * EXIT
001 * ERRMSG: FREE ALL
009 * SEND '**** ABCD0300 ERR ***'
009 * FREFILE ALL
009 * DLTDS 'WWABC020'
009 * FREE ALL
009 * WRITE
009 * FREE ALL
009 * SET &MAXCC=999
009 * EXIT CODE(&MAXCC)
|
|