Как суммировать вставленные строки в компоненте tjavaflex при итерации между входами? - PullRequest
0 голосов
/ 31 января 2019

In Talend (открытая студия для интеграции данных) 7.0.1 (и более ранние версии).Я использую tJavaFlex, чтобы регистрировать, сколько строк было вставлено в базу данных.

Задание Talend Подробнее: 1. Разбить большой файл на несколько меньших 2. Перебрать файлы меньшего размера, вставить их в базу данных 3. Записать, сколькостроки были вставлены

Talend job

Часть ведения журнала регистрирует каждую итерацию, чтобы выглядеть следующим образом:

2019-01-31 09:39:20 |Stage_SalesInvoiceLine | Rows inserted 5000
2019-01-31 09:39:25 |Stage_SalesInvoiceLine | Rows inserted 5000
2019-01-31 09:39:32 |Stage_SalesInvoiceLine | Rows inserted 5000

Мне нужна помощь, чтобы выяснить, как ее получитьвыглядит так:

2019-01-31 09:39:32 |Stage_SalesInvoiceLine | Rows inserted 15000

поведение tJavaFlex при изменении положения цикла Я пытался найти здесь ответ, но не смог решить мою проблему

Текущий код в tJavaFlex Основная часть кода (начальная и конечная части пусты)

Integer Inserted = ((Integer)globalMap.get("tJDBCOutput_6_NB_LINE"));
String InsertedS = "Rows inserted " + Integer.toString(Inserted);
row19.TimeStamp = TalendDate.getDate("yyyy-MM-dd HH:mm:ss ");
row19.LogRow = "Stage_SalesInvoiceLine | " + InsertedS;

1 Ответ

0 голосов
/ 31 января 2019

Если вы используете локальные переменные в tJavaFlex, они будут сбрасываться при каждой итерации.Вместо этого вы можете определить глобальную переменную перед началом вашей подзадачи, увеличить ее внутри tJavaFlex и получить ее значение после того, как вы сделали все ваши вставки.

tSetGlobalVar (NB_INSERTS set to 0)
    |
OnSubjobOK
    |
database inserts -- OnComponentOK -- tJavaFlex
    |
tFixedFlowInput -- tFileOutputDelimited

В приведенном выше tJavaFlex вы можете увеличиватьВаша переменная в основной части:

globalMap.put("NB_INSERTS", (Integer)globalMap.get("NB_INSERTS") + (Integer)globalMap.get("tJDBCOutput_1_NB_LINE_INSERTED"))

in tFixedFlowInput: "Rows inserted " + (Integer)globalMap.get("NB_INSERTS")

...