[recovery mode] Поддержка BizTalk Server: полезные советы. Часть 2

Мы продолжаем цикл статей, в которых делимся с вами своим опытом поддержки MS BizTalk Server 2010. В данной статье мы расскажем об инструменте, который сэкономит вам кучу времени! Речь пойдет о пайплайнах (Pipelines), а точнее о пайплайн-компонентах (Pipeline components). Ссылка на первую статью находится тут. В ней вы найдете немного общей информации о том, что такое MS BizTalk Server и для чего он может вам понадобиться.

image

Пайплайн — это элемент (чаще говорят артефакт) инфраструктуры приложения BizTalk Server, который содержит в себе .Net- или COM-компоненты для обработки входящего сообщения в определённой последовательности.

imageBizTalk Server предоставляет большой набор компонентов для пайплайнов, так сказать «из коробки». Для небольших приложений его бывает вполне достаточно. Но когда речь идёт о больших корпоративных решениях без компонентов собственной разработки не обойтись.

Для тех, кто знаком с данной темой, я уверен, не будет новостью, что на msdn имеются статьи на тему «Как разрабатывать собственные пайплайн компоненты». Там подробно расписаны типы компонентов, процесс создания проекта в Visual Studio, пространства имён, которые следует подключить, какие интерфейсы реализовать и т.п. Тут важно понять, что сделав один компонент, другой вы будете разрабатывать каждый раз аналогично. Знать это важно, но есть вариант, который позволит вам сэкономить время на подготовке проекта и сосредоточить своё внимание на написании кода. И это BizTalk Server Pipeline Component Wizard (страница проекта на codeplex). Дополнение для VS 2010 (имеется и для более свежих версий), которое в несколько простых шагов позволяет создать проект пайплайн-компонента, готовый к выполнению вашего кода, остаётся лишь его туда добавить.

И так есть задача:

Наша компания получает от клиентов заказы в виде файлов разных форматов. BizTalk Server имеет стандартный набор компонентов для работы с файлами в формате XML и текстовыми файлами, но для файлов других форматов придётся разрабатывать пайплайн-компонент, который будет конвертировать его в XML.

Но ближе к делу:

1. Со страницы проекта на codeplex скачайте архив plcwsrc2.20.

2. Для установки разархивируйте plcwsrc2.20 и вы получите проект для Visual Studio. Откройте и соберите проект и из папки the PipelineComponentWizard Setup project, запустите setup.exe.

3. Запустите Visual Studio 2010 и создайте новый проект BizTalk Server Pipeline Component Project.

image

4. Далее откроется Wizard, который предложит нам заполнить некоторые поля.

image

5. В следующем окошке нам предлагается внести имя компонента, версию и описание

image

Так же двойным кликом на imageможно сменить иконку компоненты (размер 16×16). Собственная иконка компоненты облегчит её поиск в списке компонентов. Выберем одну из стандартных иконок BizTalk

image

6. Далее предлагается добавить параметры компоненты. Параметры необязательны, но для примера добавим одно. Параметры так же доступны из Visual Studio для установки значений по умолчанию.

image

7. Далее нажмите Next, затем Finish. Wizard создаст проект пайплайн-компоненты. В проекте будет два файла: cs − скелет нашего компонента и .resx — содержит свойства с именем, описанием и версией. В сгенерированном классе у вас будет несколько секций:

• публичные переменные — параметры компоненты;
• IBaseComponent members — определяет свойства, которые предоставляют сведения о компоненте;
• IPersistPropertyBag members — определяет методы подготовки, загрузки и сохранения свойств компонента;
• IConponentUI — определяет значок компоненты и метод который проверяет, что все свойства заданы правильно;
• IComponent — определяет метод, запускающий обработку компонентой входящего сообщения.

Пример кода, который будет выполняться в методе Execute () этой компоненты:

image

В нашем случае это главный и единственный метод, в котором происходит обработка входящего сообщения. Так же важно, чтобы выходные данные, которые вы запишете в pInMsg.BodyPart.Data были стримом, являющимся XML. Для этого можно использовать обычный XmlWriter. Более того, так же должна быть .xsd схема сообщения, которое выходит из компоненты.

image

8. Соберите проект и скопируйте получившуюся DLL в C:\Program Files (x86)\Microsoft BizTalk Server 2010\Pipeline Components, но это необязательное условие, можете выбрать любую другую папку и закройте проект.

9. В Visual Studio откройте проект с пайплайном, в который хотите поместить свою компоненту, далее в контекстном меню Toolbox → Choose items→ BizTalk Pipeline Components, в списке выберите свой компонент и перенесите его на пайплайн.

Так же нам доступно единственно нами созданное свойство. Мы можем установить его значение по умолчанию перед деплоем сборки на BizTalk Server.

image

10. Cоберите и задеплойте сборку с пайплайном на BizTalk Server.

Готово! Вот так, в несколько простых шагов в своём приложении можно использовать пайплан с компонентой собственной разработки.

Комментарии (1)

  • 13 октября 2016 в 10:51

    0

    Немного монструозный стал BizTalk — особенно если знать о SiteServer. Хотя задачи можно решать практически все по обработке.

© Habrahabr.ru