Методы преобразования данных
В некоторых шагах можно самостоятельно определить алгоритм обработки данных. К таким шагам относятся HashJoin, MergeJoin, Map, Rollup. Пользовательский алгоритм преобразования в этих шагах определяется в атрибуте с именем "transform" с помощью JavaScript:
<Node id="m" type="Map">
<Attr name="transform">
<![CDATA[//...]]>
</Attr>
</Node>
В шагах, использующих функцию преобразования, можно применять методы для работы с записями, описанные в примере ниже:
<Node id="map" guiX="250" guiY="100" guiName="map" type="Map">
<Attr name="transform"><![CDATA[//
$out[0].person = $in[0].name.toString() + "_" + $in[0].surname.toString();
$out[1].person = $in[0].name.toString().toUpperCase() + " " + $in[0].surname.toString().toUpperCase();
return ALL;
Param(param_name)
возвращает значение param_name, но выдает ошибку unknown parameter 'param_name', если имя параметра не определено
0 => $out[0].obj_type = param("X"),
1 => $out[0].obj_type = param("RbISb"),
2 => $out[0].obj_type = format!("secure number is {}", param("FILE_PRM_NUM")),
Param_or(param_name, default_value)
возвращает значение параметра или default_value, если параметра нет
3 => $out[0].obj_type = input.obj_type + " is not " + ¶m_or("XX", "goose") + "!",
Try_param(param_name)
возвращает Some(value) (value является строкой) в случае,
если параметр есть, None, если параметра нет
4 => $out[0].obj_type = if let Some(obj_type) = try_param("X") { obj_type } else { "tuturu".to_string() },
Param_parse_or(param_name, default_value)
возвращает преобразованное значение параметра, если он есть или default_value. Возвращает ошибку, если значение параметра не преобразуется к типу
5 | 6 => {
$out[0].y_coord = param_parse_or("X", 24);
$out[0].obj_type = param_parse_or("X", "tururu".to_string());
}
_ => $out[0].obj_type = input.obj_type,
index += 1;
return ALL;