%%SET

MFBSI における %%SET の有効な構文は次のとおりです。

%%SET %%VarName[space(s)]=[space(s)]Expression

Expression 次のいずれかになります。

この例は、%%SET 変数置換を示しています。

文/式 解決結果
%%SET %%PARM=XYZ
%%PARM:      [XYZ]
%%SET   %%PARM  =XYZ
%%PARM:      [XYZ]
%%SET %%PARM  =    XYZ
%%PARM:      [XYZ]
%%SET %%PARM  =    X Y   Z
%%PARM:      [XYZ]
%%SET %%PARM=ABC  DEF
%%PARM:      [ABCDEF]
%%SET %%PARM=ABC%%BLANK2DEF
%%PARM:	     [ABC  DEF]
%%SET %%PARM=ABC%%BLANKDEF
%%PARM:	     [ABC DEF]
%%SET %%PARM=ABCDEF%%BLANK5
%%PARM:	     [ABCDEF     ]
%%SET %%PARM=ABCDEF%%BLANK3
%%PARM:	     [ABCDEF   ]
%%SET %%PARM='ABCDEF%%BLANK5'
%%PARM:	     ['ABCDEF     ']
%%SET %%PARM=%%$ODATE%%.ABC
%%PARM:	     [20110701ABC]
%%SET %%PARM=%%$ODATE.ABC
%%PARM:	     [20110701.ABC]
%%SET %%PARM=%%$ODATEABC
エラー:%%$ODATEABC は解決できません。
注: これがプール内に存在する場合、%%PARM の値はそのまま残ります。
  %%SET %%A=1
  %%SET %%B=2
  %%SET %%A2=100

//       TAPE=TAPE%%A%%B,
//       TAPE=TAPE%%A.%%B,
//       PARM=PRM%%A%%.%%B,
//       PARM=PRM%%A%%..%%B,
//       PARM='%%A%%%BLANK3%%B',
//DDN  DD DSN=HLQ.DATASET.A%%A.%%B,
//DDN  DD DSN=HLQ.DATASET.A%%A..%%B,
//DDN  DD DSN=HLQ.DATASET.A%%A%%..%%B,
//DDN  DD DSN=HLQ.DATASET.A%%A%%B,



//       TAPE=TAPE100,
//       TAPE=TAPE1.2,
//       PARM=PRM12,
//       PARM=PRM1.2,
//       PARM=’1   2’,
//DDN  DD DSN=HLQ.DATASET.A12,
//DDN  DD DSN=HLQ.DATASET.A1.2,
//DDN  DD DSN=HLQ.DATASET.A1.2,
//DDN  DD DSN=HLQ.DATASET.A100,
%%$ODATE%%BLANK5%%#AS-IS%%BLANK5%%WEEK
20110716     %%AS-IS     28

この例は、%%SET 制御文における日付関数の解決を示しています。

文/式 解決結果
%%$YEARWK# %%$DATE   
%%$YEARWK# 20010214  
%%$YEARWK# 20050101  
%%$YEARWK# 20011231  
                     
%%$YEARWK# 20101220  
%%$YEARWK# 20101227  
%%$YEARWK# 20110102  
%%$YEARWK# 20110103  

%%$CALCDTE %%$ODATE +D1        
%%$CALCDTE   %%$ODATE +1        
                                 
%%SET %%ADD_DATE=7
%%$CALCDTE %%$ODATE +%%ADD_DATE 
%%$CALCDTE 20110101 -1          
%%$CALCDTE 20101231 +1          
%%$CALCDTE 20110228 +1          
%%$CALCDTE 20110228 +1
[2011W28] 
[2011W28] 
[2011W28] 
[2011W28] 
          
[2011W28] 
[2011W28] 
[2011W28] 
[2011W28]

[20110717]
[20110717]

[7]       
[20110723]
[20101231]
[20110101]
[20110301]
[20110301]

この例は、%%SET 制御文における %%PLUS / %%MINUS の解決を示しています。

文/式 解決結果
%%SET %%_SCRATCH1=10 %%PLUS 25         
%%SET %%_SCRATCH2=  %%B   %%MINUS   %%A
%%SET %%_SCRATCH3=%%A %%PLUS %%B
[35]  
[1]
[3]

この例は、%%SET 制御文における %%SUBSTR の解決を示しています。

文/式 解決結果
%%SET %%STR=00-01-02                     
%%SET %%TAPE_01=%%SUBSTR %%STR 4 2       
%%SET %%TAPE_02=EE100002                 
%%SET %%TAPE_03=EE100003                 
%%SET %%TAPE_04=EE100004                 
%%SET %%TAPE_05=EE100005                 
%%SET %%TAPE_06=EE100006                 
%%SET %%TAPE_07=EE100007                 
%%SET %%TAPE_08=EE100008                 
%%SET %%TAPE_09=EE100009                 
%%SET %%TAPE_10=EE100010                 
%%SET %%TAPE_11=EE100011                 
%%SET %%TAPE_12=EE100012                 
                           
//    UNIT=TAPE,VOL=SER=TAPE%%TAPE_01,   
//    UNIT=TAPE,VOL=SER=%%TAPE%%OMONTH,
[00-01-02]
[01]
[EE100002]
[EE100003]
[EE100004]
[EE100005]
[EE100006]
[EE100007]
[EE100008]
[EE100009]
[EE100010]
[EE100011]
[EE100012]

//    UNIT=TAPE,VOL=SER=TAPE01,
//    UNIT=TAPE,VOL=SER=EE100007,