С вашим подходом есть 2 проблемы.
Во-первых, tExtractJSONFields
не поддерживает передачу полей (codeObjetStart, codeRetour, libelleCodeErreur, versionObjetStart).Если бы он это поддерживал, вам не пришлось бы устанавливать выражение jsonpath для каждого из этих полей, потому что вы уже прочитали их в своем tFileInputJSON
.Это подводит нас ко второй проблеме, заключающейся в том, что jsonpath не поддерживает родительский оператор, согласно его документации .
. Что вы можете сделать, так это прочитать свой файл, используя компонент, который может вернутьэто в одну строчку.Например, tFileInputDelimited
только с одним столбцом и разделителем строк и разделителем полей, которых нет в вашем файле.
Затем вы можете использовать tExtractJSONFields
с XPath для разбора полей, установивЗапрос цикла XPath для возврата потомков resultatSdt.
Примерно так:
Я использую tFixedFlowInput
со встроенным содержимым для удобства.
Ирезультат:
.--------------+----------+--------------------------------+-----------------+--------+------------------------------+--------------------------.
| tLogRow_3 |
|=-------------+----------+--------------------------------+-----------------+--------+------------------------------+-------------------------=|
|codeObjetStart|codeRetour|libelleCodeErreur |versionObjetStart|KVIOPEFL|NMLIBFRA |NMLIBANG |
|=-------------+----------+--------------------------------+-----------------+--------+------------------------------+-------------------------=|
|KVIOPEFL |00 |Traitement effectué sans erreur.|0 |0 |OPERATION SANS EFFET DE LEVIER|OPERATION WITHOUT LEVERAGE|
|KVIOPEFL |00 |Traitement effectué sans erreur.|0 |1 |LBO |LBO |
|KVIOPEFL |00 |Traitement effectué sans erreur.|0 |2 |FSA |SAF |
|KVIOPEFL |00 |Traitement effectué sans erreur.|0 |3 |CEL |CEL |
'--------------+----------+--------------------------------+-----------------+--------+------------------------------+--------------------------'