BizTalk 2010: доступ к контексту на карте - PullRequest
0 голосов
/ 07 февраля 2011

Это может быть очень простой вопрос, но, надеюсь, кто-нибудь сможет ответить на него.

Я получаю сообщения (HL7), используя пользовательский конвейер приема.Внутри моего собственного конвейера я продвигаю свойства в контекст.Я создал карту, где мне нужно получить доступ к этим свойствам.Тем не менее, я хотел бы получить доступ к этим свойствам на стороне отправки.Причина, по которой он должен быть на стороне отправки, заключается в том, что я присоединяю свою карту к порту отправки, поэтому я предполагаю, что сообщение уже достигло MessageBox и будет отображено на стороне отправки.Надеюсь, это имеет смысл ...

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

Может ли кто-нибудь указать мне правильное направление с этим?

Ответы [ 4 ]

1 голос
/ 28 февраля 2011

Действительно, функтоид C # обеспечивает доступ к свойствам контекста, но, похоже, работает только с картами на Получающем порте или внутри Оркестровки .

1 голос
/ 22 сентября 2011

Вы можете использовать функцию доступа к контексту, чтобы сделать это ... Объедините его конвейерный компонент с вашим, и он должен работать ... Осторожно, он должен обрабатываться в том же потоке ...

http://contextaccessor.codeplex.com/

0 голосов
/ 09 марта 2017

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

Шаги:

  1. создать новую схему, скажем "FileSchema" FileNode (rootNode) -FileName (fieldElement)

  2. Щелкните по схеме и в целевом пространстве имен свойств - очистите пространство имен.

  3. выделите свойство FileName.Rt.Нажмите FileName, покажите рекламные акции и добавьте FileName на вкладку «Отличительные свойства».

  4. В вашей целевой схеме добавьте поле FileName.для меня я добавил его в схему SQL, так как мне нужно имя файла для каждой строки в базе данных

  5. В вашей оркестрации используйте форму назначения сообщения и введите ниже

// создаем переменную varFileXML типа System.XML.XMLDocument

// Я создаю XML-файл, аналогичный схеме файла, загружаю его в переменную XML и затем назначаючто для Сообщения типа FileSchema

varFileXML = new System.Xml.XmlDocument();
varFileXML.LoadXml("<FileNode><FileName>FileName_0</FileName></FileNode>");
Msg_FileSchema = varFileXML;

// Получить FileName для переменной типа string

varFileName = Msg_FlatFileSchema(FILE.ReceivedFileName);
varFileName = System.IO.Path.GetFileName(varFileName);

// Получить доступ к свойству имени файла из сообщения и назначить переменную длячто

Msg_File.FileName = varFileName;

Теперь, когда мы получили FileName в сообщении, вы можете использовать его при сопоставлении с целевой схемой

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

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

спасибо и привет

Силам

0 голосов
/ 21 февраля 2011

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

Прекрасные инструкции Грега Форсайта

...