@ -17,6 +17,7 @@
package org.apache.dolphinscheduler.service.expand ;
import static java.util.Objects.nonNull ;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.PARAMETER_PROJECT_CODE ;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.PARAMETER_PROJECT_NAME ;
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.PARAMETER_TASK_DEFINITION_CODE ;
@ -69,8 +70,13 @@ public class CuringParamsServiceImpl implements CuringParamsService {
private ProjectParameterMapper projectParameterMapper ;
@Override
public String convertParameterPlaceholders ( String val , Map < String , String > allParamMap ) {
return ParameterUtils . convertParameterPlaceholders ( val , allParamMap ) ;
public String convertParameterPlaceholders ( String val , Map < String , Property > allParamMap ) {
Map < String , String > paramMap = allParamMap
. entrySet ( )
. stream ( )
. filter ( entry - > nonNull ( entry . getValue ( ) . getValue ( ) ) )
. collect ( Collectors . toMap ( Map . Entry : : getKey , entry - > entry . getValue ( ) . getValue ( ) ) ) ;
return ParameterUtils . convertParameterPlaceholders ( val , paramMap ) ;
}
@Override
@ -212,6 +218,10 @@ public class CuringParamsServiceImpl implements CuringParamsService {
// whether external scaling calculation is required
if ( timeFunctionNeedExpand ( val ) ) {
val = timeFunctionExtension ( taskInstance . getProcessInstanceId ( ) , timeZone , val ) ;
} else {
// handle some chain parameter assign, such as `{"var1": "${var2}", "var2": 1}` should be convert to
// `{"var1": 1, "var2": 1}`
val = convertParameterPlaceholders ( val , prepareParamsMap ) ;
}
property . setValue ( val ) ;
}