BizTalk Flat File, многострочная запись записей - PullRequest
0 голосов
/ 11 января 2012

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

У меня большой файл с несколькими документами.Для примера предположим что-то вроде этого

DOCUMENT_IDENTIFIER    123400000000000000000123457   OTHER STUFF HERE
LINE WITH STUFF HERE
LINE WITH STUFF HERE
DOCUMENT_IDENTIFIER    123500000000000000000127456   OTHER STUFF HERE
LINE WITH STUFF HERE
LINE WITH STUFF HERE

Теперь мне нужно сохранить все в строке DOCUMENT_IDENTIFIER, начиная с первого 0 до 123 (или 127 во второмДокумент) Эта строка заголовка плюс все строки LINE WITH STUFF HERE ниже нее должны составлять один Документ, а новый документ должен начинаться со второй строки DOCUMENT_IDENTIFIER.

Когда я пытаюсь использовать стандартную DebatchingПри использовании конвейера происходит сбой: либо он полностью завершается неудачей (когда, например, я пытаюсь определить схемы заголовка и тела для конвейера), либо он никогда не запускает второй документ (если я пробую только схему тела).

Я уверен, что это что-то довольно простое, но я совершенно не понимаю, как это сделать.Любые предложения / направления будут приветствоваться.

Если это имеет значение, я застрял на BT2006 R2, в настоящее время.

1 Ответ

0 голосов
/ 16 февраля 2012

Как выглядит ваша схема тела? Я бы начал понимать это правильно и убедиться, что у вас есть что-то, что создаст xml с отдельными записями всех записей "DOCUMENT_IDENTIFIER 1234".

Я бы использовал бит 1234 "DOCUMENT_IDENTIFIER" в качестве идентификатора тега, а затем установил бы смещение тега на 4, чтобы избежать первых 4 символов.

Вы должны иметь

RecordForDocumentIdentifiers (корень вашей схемы) Group Maxoccurs = * RecordForDocumentIdentifier (Установите идентификатор тега здесь) Поля для столбцов, которые вы хотите проанализировать

  RecordForOtherLines   Group Maxoccurs=*
           RecordForOtherLine   Maxoccurs=* or whatever your rules are.   
                   Fields for the columns of other lines

Когда кажется, что это нормально для вашего примера и генерирования XML, который вы хотите, я бы начал создавать схемы заголовка и тела из этого. Я знаю, что это 2 шага, но от этого требуют некоторые догадки.

Я предполагаю, что схема заголовка будет выбрана из RecordDocumentIdentifier, а тело будет RecordForOtherLines (Внешняя запись для этого).

Надеюсь, это поможет. Если нет, опубликуйте свой фактический файл и схему и позвольте нам взглянуть на него.

...