ESL заставляет сегмент игнорировать разделитель компонентных элементов ISA16 [mulesoft] - PullRequest
0 голосов
/ 22 января 2020

У меня есть 850 EDI, сгенерированный с нестрогой программой EDI.

в некотором сегменте сообщения произвольной формы MSG01, текст содержал разделитель элементов компонента ">", из-за чего мул выдавал ошибку / отказывался анализировать весь набор транзакций при анализе файла. Журнал трассировки ниже

2020-01-21 [MuleRuntime] MSG at 21 matched group component 300_N9_Loop
2020-01-21 [MuleRuntime] parsing structure:
 subsequence from 1:300: [ MSG ] with matcher variants { } terminations { MSG } with matcher variants { }
2020-01-21 [MuleRuntime] starting parse of subsequence from 1:300: [ MSG ] with matcher variants { } terminations { MSG } with matcher variants { }
2020-01-21 [MuleRuntime] MSG at 21 matched segment reference 300_MSG
2020-01-21 [MuleRuntime] parsing segment MSG at 21 (position 1:300)
2020-01-21 [MuleRuntime] fatal transaction error 'Too many data elements (more data elements than defined for the segment)' for component MSG01: 'Free-Form Message Text' at segment 21 of transaction Some(0001) in group Some(902105287) of interchange 902105287
2020-01-21 [MuleRuntime] now positioned at segment 'MSG'
2020-01-21 [MuleRuntime] finished parsing group component 300_N9_Loop with termed false

Поскольку я уже настраиваю файл схемы esl, хотелось бы узнать, можно ли заставить mule игнорировать символ ">" в этом сегменте.

соответствующий раздел, который я нашел для сегмента в esl

basedef.esl

- id: 'MSG'
  name: 'Message Text'
  values: 
  - { idRef: '933', usage: M }
  - { idRef: '934', usage: C }
  - { idRef: '1470', usage: O }
  rules: 
  - { type: C, items: [3, 2] }

  - { id: '933', name: 'Free-Form Message Text', type: AN, minLength: 1, maxLength: 264 }

850.esl

- groupId: 'N9_Loop'
  count: 1000
  usage: O
  items: 
  - { idRef: 'MSG', position: '300', usage: O, count: 1000 }
...