Правила развертывания и бизнес-правил BizTalk
Я новичок в разработке BizTalk, правильно использую его только в течение 6-7 недель, так что простите мою наивность.
У меня есть базовое приложение BizTalk 2013 в разработке, и я готов к развертыванию в тестовой среде.
Я использую бизнес-правила для определения местоположения исходящего транспорта, после того как все преобразования выполнены, данные отправляются в хранимую процедуру в SQL Server, которая вставляет / обновляет запись:
mssql://.//db1?
При развертывании в наших тестовых / реальных средах мы не сможем установить расположение исходящего транспорта для локального компьютера, поскольку базы данных будут храниться на отдельных серверах приложения. Например:
mssql://dbserver//db1?
Я просмотрел BizTalk Deployment Framework, чтобы увидеть, можно ли изменить бизнес-правила в зависимости от среды, но ничего не смог найти.
Итак, мой вопрос: каков наилучший (с минимальными затратами на обслуживание) способ управления параметрами среды для бизнес-правил? Использование инфраструктуры развертывания BizTalk было бы предпочтительным.
1 ответ
Я опубликую решение, которое я использовал, для дальнейшего использования и для помощи всем, кто сталкивается с этим в будущем.
В BizTalk Deployment Framework можно добавить дополнительные файлы XML в сборку и предварительно обработать их таким же образом, как файлы привязки предварительно обрабатываются в зависимости от среды.
Ниже приведены некоторые фрагменты из файла deploy.btdfproj. Не забывайте, что с BizTalk Deployment Framework порядок важен:
<!-- Add the policy file as an additional item to the build -->
<ItemGroup>
<AdditionalFiles Include="my_policy_file.xml">
<LocationPath>..\$(ProjectName)\location_to_policy</LocationPath>
</AdditionalFiles>
</ItemGroup>
<!-- Processes the additional XML policy files added to the MSI main build folder. -->
<ItemGroup>
<FilesToXmlPreprocess Include="my_policy_file.xml">
<LocationPath>..\</LocationPath>
</FilesToXmlPreprocess>
</ItemGroup>
<!-- You still have to add the business rule to the build. It is overwritten later. -->
<ItemGroup>
<RulePolicies Include="my_policy_file.xml">
<LocationPath>..\$(ProjectName)\location_to_property</LocationPath>
</RulePolicies>
</ItemGroup>
<!-- Towards the end of the file the pre-processed file overwrites the originally included policy file. -->
<Target Name="CopyXMLPreprocessedPoliciesToBRE" AfterTargets="PreprocessFiles">
<copy sourceFiles="..\my_policy_file.xml" DestinationFolder="..\BRE\Policies"/>
</Target>
Для получения дополнительной информации ознакомьтесь с этой веткой на сайте BizTalk Deployment Framework: https://biztalkdeployment.codeplex.com/discussions/392801