2008-10-21 3 views
2

У меня есть схема с плоскими файлами, в которой есть заголовок и подробные записи. Это выглядит примерно так:Добавить новую строку в схему плоского файла в BizTalk 2006 R2

HDR**2401*XX0062484*22750***20081006000000*000******* 
LIN**001*788-0538-001*4891-788538010*20000*EA**0000*** 

Мне нужно добавить две пустые строки в конце сообщения. Прямо сейчас, если у меня есть несколько записей я получаю следующий результат:

HDR**2401*XX0062484*22750***20081006000000*000******* 
LIN**001*788-0538-001*4891-788538010*20000*EA**0000*** 
HDR**2401*XX0062484*22750***20081006000000*000******* 
LIN**001*788-0538-001*4891-788538010*20000*EA**0000*** 

То, что я хочу, чтобы произошло что-то вроде этого:

HDR**2401*XX0062484*22750***20081006000000*000******* 
LIN**001*788-0538-001*4891-788538010*20000*EA**0000*** 


HDR**2401*XX0062484*22750***20081006000000*000******* 
LIN**001*788-0538-001*4891-788538010*20000*EA**0000*** 

я мог бы построить пользовательский компонент трубопровода, чтобы сделать это, но мне интересно, есть ли более простой способ получить то, что мне нужно?

ответ

3

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

Основываясь на вашем примере файл я создал схему со следующей структурой записи:

 
<Schema>  
  <Root>  
    <HDRGroup>  
      <HDR>  
      <LIN>  

Если нажать на корневом узле вашей схемы вы должны увидеть список свойств для этого корневого узла. В одном разделе свойств есть заголовок «Плоский файл». В этом разделе с плоским файлом первые три свойства, которые вы можете установить, это Child Delimiter, Child Delimiter Type и Child Order.

Здесь можно настроить схему, чтобы создать пустые строки (в данном случае CR LF, но вы можете установить разные вещи, как вам нужно) Для примера я установил следующее:

 
Child Delimiter: 0x0D 0x0A 0x0D 0x0A  
Child Delimiter Type: Hexadecimal  
Child Order: Infix 

0x0D 0x0A является подача линии возврата каретки, поэтому приведенное выше просто создает две пустые строки, связанные между каждым дочерним узлом корневого узла.

<HDRGroup> затем функции, гарантирующие, что каждый заголовок и его линии хранятся вместе. Для его настройки разделителей я установил:

 
Child Delimiter: 0x0D 0x0A  
Child Delimiter Type: Hexadecimal  
Child Order: Postfix 

< В HDR > и <LIN> запись затем содержит фактическое определение схемы для строк сообщений, разделенной звездочкой.

Эта схема работает для чего-то похожего на то, что вы просили - такая схема flatfile и то, как она анализирует файл, в значительной степени зависит от небольших деталей, например, какой тип разрывов строк существует и если в конце файла есть разрывы строк.

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

+0

Дэвид, мне нужно было сделать что-то подобное. Ваше объяснение сработало для меня. Благодарю. – 2012-02-28 19:34:13

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^