versuche es mal so
PHP-Code:
DCL VAR(&YEARTYPE(*CHARLEN(2)               
DCL VAR(&MONTHTYPE(*CHARLEN(2)              
DCL VAR(&DAYTYPE(*CHARLEN(2)                
DCL VAR(&DATETYPE(*CHARLEN(8)               
DCL VAR(&DIRTYPE(*CHARLEN(250)              
                                                
RTVSYSVAL SYSVAL(QMONTHRTNVAR(&MONTH)         
RTVSYSVAL SYSVAL(QDAYRTNVAR(&DAY)             
RTVSYSVAL SYSVAL(QYEARRTNVAR(&YEAR)           
                                                
CHGVAR VAR(&DATEVALUE('20' *TCAT &YEAR *TCAT +
&
MONTH *TCAT &DAY)                              
                                                
CHGVAR &DIR ('/.../.../.../' *TCAT &DATE)              
QSYS/CRTDIR +                                   
DIR(&DIR

Das Problem ist, dein &DATE steht zwischen den beiden Anführungszeichen. Somit interpretiert er das als Text und nicht als Variable
Gruß Ronald