Skip to content

Commit

Permalink
[Fix-13814] [Built-in variable] shell task transfer param (#13974)
Browse files Browse the repository at this point in the history
  • Loading branch information
wcmolin authored Apr 24, 2023
1 parent f801eb3 commit 339881a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public static Map<String, Property> convert(TaskRequest taskExecutionContext, Ab

Map<String, Property> varParams = parameters.getVarPoolMap();

if (MapUtils.isEmpty(globalParams) && MapUtils.isEmpty(localParams)) {
if (MapUtils.isEmpty(globalParams) && MapUtils.isEmpty(localParams) && MapUtils.isEmpty(varParams)) {
return null;
}
// if it is a complement,
Expand Down Expand Up @@ -98,7 +98,9 @@ public static Map<String, Property> convert(TaskRequest taskExecutionContext, Ab
convertedParams = localParams;
}
if (varParams != null) {
varParams.putAll(globalParams);
if (globalParams != null) {
varParams.putAll(globalParams);
}
globalParams = varParams;
for (Map.Entry<String, Property> entry : varParams.entrySet()) {
convertedParams.put(entry.getKey(), entry.getValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,8 @@ private SqlBinds getSqlAndSqlParamsMap(String sql) {
Map<Integer, Property> sqlParamsMap = new HashMap<>();
StringBuilder sqlBuilder = new StringBuilder();

//replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job
sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime());
// combining local and global parameters
Map<String, Property> paramsMap = ParamUtils.convert(taskExecutionContext, getParameters());

Expand All @@ -452,9 +454,6 @@ private SqlBinds getSqlAndSqlParamsMap(String sql) {
sqlParameters.setTitle(title);
}

//new
//replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job
sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime());
// special characters need to be escaped, ${} needs to be escaped
setSqlParamsMap(sql, rgex, sqlParamsMap, paramsMap,taskExecutionContext.getTaskInstanceId());
//Replace the original value in sql !{...} ,Does not participate in precompilation
Expand Down

0 comments on commit 339881a

Please sign in to comment.