Я работаю над скриптом ETL, который считывает данные из БД, манипулирует им с помощью Java и, наконец, записывает его в файл CSV. Мой сценарий выглядит следующим образом:Условное письмо в CSV-файл с Scriptella
<query connection-id="db">
SELECT COLUMN_A AS A, COLUMN_B AS B
FROM DATABASE_TABLE
<script connection-id="java">
System.setProperty("a",String.valueOf(get("A")));
System.setProperty("b",String.valueOf(get("B")));
</script>
<script connection-id="csv_out">
$a,$b
</script>
</query>
Сценарии работает таким образом, что я получаю одну строку записывается в файл CSV для каждой строки в результате запроса. Но мне нужен способ создания более или менее строк, чем результат запроса. Поэтому я хочу, условный вывод в файл CSV, на основе значений, установленных в части Java:
<script connection-id="java">
System.setProperty("a",String.valueOf(get("A")));
System.setProperty("b",String.valueOf(get("B")));
</script>
// only create line when 'a' has specific value, e.g. '1'
<script connection-id="csv_out" if="$a == 1">
$a,$b
</script>
Этот подход не работает. Он ничего не пишет для CSV, даже если я задал значение «a» явно на 1. Итак, каков правильный способ выполнения условного скрипта в Scriptella? Или есть еще лучшее решение?