BizTalk ListApp命令行

时间:2013-08-28 04:38:24

标签: biztalk

我在c#中使用以下代码从BizTalk服务器中的已部署应用程序获取策略\规则。

BTSTask.exe ListApp -ApplicationName:"EAISolution" -ResourceSpec:"c:\EAISolution.PolicyInf
o.xml" /Server:VHYDTRBELSUP-02 /Database:BizTalkMgmtDb

从上面的命令我得到如下输出

<?xml version="1.0" encoding="utf-16" ?> 
<ResourceSpec xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                              xmlns:xsd="http://www.w3.org/2001/XMLSchema" ApplicationName="EAISolution" xmlns="http://schemas.microsoft.com/BizTalk/ApplicationDeployment/ResourceSpec/2004/12">
<Resources>
<Resource Type="System.BizTalk:BizTalkAssembly" Luid="EAIOrchestration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=97e0f507fd7fd10d" /> 
<Resource Type="System.BizTalk:BizTalkAssembly" Luid="EAIServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=97e0f507fd7fd10d" /> 
<Resource Type="System.BizTalk:BizTalkAssembly" Luid="FFSchemasTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=97e0f507fd7fd10d" /> 
<Resource Type="System.BizTalk:Rules" Luid="RULE/ProcessPurchaseOrder/1.0" /> 
<Resource Type="System.BizTalk:BizTalkBinding" Luid="Application/EAISolution" /> 
</Resources>
</ResourceSpec>

从BizTalk服务器我使用BizTalk服务器管理中的策略导出获得以下输出

<?xml version="1.0" encoding="utf-8" ?> 
<brl xmlns="http://schemas.microsoft.com/businessruleslanguage/2002">
<ruleset name="ProcessPurchaseOrder">
<version major="1" minor="0" description="" modifiedby="username" date="2013-05- 27T12:04:55.6121122+05:30" /> 
<configuration /> 
<bindings>
<xmldocument ref="xml_31" doctype="RuleTest.PO" instances="16" selectivity="1" instance="0">
<selector>/*[local-name()='PurchaseOrder' and namespace-uri() ='http://EAISolution.PurchaseOrder']/*[local-name()='Item' and namespace-uri()='']</selector> 
<selectoralias>/PurchaseOrder/Item</selectoralias> 
<schema>....\PO.xsd</schema> 
</xmldocument>
<xmldocument ref="xml_32" doctype="RuleTest.PO" instances="16" selectivity="1" instance="0">
<selector>/*[local-name()='PurchaseOrder' and namespace-uri()='http://EAISolution.PurchaseOrder']    
</selector> 
<selectoralias>/PurchaseOrder</selectoralias> 
<schema>....\PO.xsd</schema> 
</xmldocument>
</bindings>
<rule name="ApprovalRule" priority="0" active="true">
<if>
<compare operator="less than or equal to">
<vocabularylink uri="3f0e9bcc-6212-4e6a-853c-e517f157a626" element="d4eb2deb-06d3-42c4-af49-ceb21331b1cc" /> 
<lhs>
<function>
<xmldocumentmember xmldocumentref="xml_31" type="int" sideeffects="false">
<field>*[local-name()='Quantity' and namespace-uri()='']</field> 
<fieldalias>Quantity</fieldalias> 
</xmldocumentmember>
</function>
</lhs>
<rhs>
<constant>
<int>500</int> 
</constant>
</rhs>
</compare>
</if>
<then>
<function>
<xmldocumentmember xmldocumentref="xml_32" type="string" sideeffects="true">
<field>*[local-name()='Status' and namespace-uri()='']</field> 
<fieldalias>Status</fieldalias> 
<argument>
<constant>
<string>Approved</string> 
</constant>
</argument>
</xmldocumentmember>
</function>
</then>
</rule>
</ruleset>
</brl>

请告诉我如何使用命令行获取第二个输出。

1 个答案:

答案 0 :(得分:0)

BTSTask只会将策略导出为MSI的一部分(见下文)。 然后,您可以提取MSI(请参阅How to extract msu/msp/msi fileds from the command line)以获取策略文件。

来自 How to Import a Policy

  
      
  • BTSTask不提供导入(或导出)策略的特定命令;但是,您可以使用BTSTask的ExportApp命令有选择地仅导出所需应用程序中的策略,包括其他应用程序工件。然后,您可以使用ImportApp命令将.msi文件导入到其他BizTalk组中的应用程序中。这是本主题中描述的方法。执行此操作时,策略将自动导入并在BizTalk组中发布,并添加到指定的应用程序。
  •   

以下步骤将导出策略,但作为MSI的一部分。

来自 How to Export a Policy

  
      
  • 使用带有/ ResourceSpec选项的BTSTask ListApp命令生成XML文件,该文件列出要从中导出策略的BizTalk应用程序中的工件,如ListApp命令中所述。   编辑上一步中生成的XML文件,删除除要导出的策略或策略之外的所有工件。   使用BTSTask ExportApp命令,并为/ ResourceSpec参数指定已修改的XML文件。有关更多信息,请参阅ExportApp命令。   BTSTask将指定的策略及其所有关联的词汇表导出到应用程序.msi文件中。
  •