JSON в плоский файл в Mule 4? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть простое требование преобразовать входные данные JSON в плоский файл в Mule 4, но я не могу найти solid примеров в Интернете. Я начал создавать образец схемы следующим образом, но он не работает.

схема test.ffd:

form: FLATFILE
id: 'test'
tag: '1'
name: Request Header Record
values:
- { name: 'aa', type: String, length: 10 }
- { name: 'bb', type: String, length: 8 }
- { name: 'cc', type: String, length: 4 }

dataweave:

%dw 2.0
output application/flatfile schemaPath='test.ffd'
---
{
    aa : payload.a,
    bb : payload.b,
    cc : payload.c
}

Ввод JSON:

{
  "a": "xxx",
  "b": "yyy",
  "c": "zzz"
}

Но он не может сказать

Message               : "java.lang.IllegalStateException - Need to specify structureIdent or schemaIdent in writer configuration, while writing FlatFile at 
4| {
 |  ...
8| }

Как мне сделать это правильно?

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

В сообщении об ошибке сообщается, что пропущено.

Необходимо указать structIdent или schemaIdent в конфигурации модуля записи

Добавьте один из них, и плоский файл или фиксированная пропускная способность должны нормально работать. .

Например, добавьте сегментIdent :

%dw 2.0
output application/flatfile schemaPath = "test1.ffd",
 segmentIdent = "test1"
---
payload map (a, index) -> {
    aa: a.a,
    bb: a.b,
    cc: a.c
}

Good result with good preview

Вот пример использования FIXEDWIDTH правильно https://simpleflatservice.com/mule4/FixedWidthSchemaTransformation.html

0 голосов
/ 13 марта 2020

Если вы пытаетесь вывести файл фиксированной ширины, который выглядит так, как вы, измените

form: FLATFILE

на

form: FIXEDWIDTH

Имейте в виду, что использование этого FFD будет работать только если у вас есть одна структура. Вы можете передать:

    payload map {
        aa: $.a,
        ...
    }

Если у вас есть набор, и он все еще будет работать, но если вам понадобится несколько структур, вы не сможете использовать сокращенную схему.

И Чтобы объяснить, почему вы получили эту ошибку, посмотрите на эти документы, читая «Свойства Writer (для плоского файла)»:

https://docs.mulesoft.com/mule-runtime/4.2/dataweave-formats#writer_properties_flat_file

...