共用方式為


UnenlistParties (BizTalk Server 範例)

UnenlistParties 範例示範如何取消登錄與已部署之 BizTalk Server 組件關聯的所有合作對象。

警告

如果在部署後不需要部署指令碼,就應該將其移除。 必須保留的系統管理指令碼和其他指令碼都應該由 ACL 保護,而且予以密切監控。

必要條件

  • 您必須擁有BizTalk Server系統管理許可權,才能使用此範例中的系統管理物件。

  • Windows PowerShell腳本需要Windows PowerShell執行原則,才能允許腳本執行。 如需詳細資訊,請參閱 about_Execution_Policies

此範例的設計方式和原因

此範例是以 Visual C# 撰寫而成,並使用 [BizTalk 總管] 物件模型中的物件,執行下列作業:

  • 查詢特定組件。

  • 擷取與該組件相關聯的所有角色。

  • 取消登錄與每個這類角色相關聯的所有合作對象。

  • 處理任何錯誤,讓有意義的資訊能傳回給使用者。

可在何處找到此範例

這個範例位於下列 SDK 位置:

<範例路徑>\管理員\ExplorerOM\UnenlistParties\

下表顯示此範例中的檔案,並描述其用途。

檔案 Description
App.ico, AssemblyInfo.cs, UnenlistParties.csproj, UnenlistParties.sln, UnenlistParties.cs 專案、解決方案和原始程式檔,用於建置 Visual C# 命令列應用程式,以取消登錄特定組件的所有合作對象。

建置並初始化此範例

  1. 在 Visual Studio 中,開啟方案檔 UnenlistParties.sln。

  2. 在 [建置] 功能表中,選取 [建置方案]

執行這個範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\管理員\ExplorerOM\UnenlistParties\bin\Debug\

  2. 執行 UnenlistParties.exe 檔案,它會傳遞下列其中一個命令列引數:

    • <AssemblyName>。 凡是與該組件名稱相關聯的合作對象都將取消登錄。 如果組件名稱包含空格,請用引號括住該名稱。

    • /?. 顯示說明。

      例如:

    UnenlistParties "My BizTalk Assembly.dll"
    

    -或-

    UnenlistParties /?
    

Windows Powershell 腳本範例

下列 Windows Powershell 腳本片段可用來示範 ExplorerOM 類別的相同功能:

#===================#
#=== Main Script ===#
#===================#

#=== Make sure the ExplorerOM assembly is loaded ===#

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")

#=== Connect to the BizTalk Management database ===#

$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"

#=====================================================#
#=== If no assembly name is specified, just list   ===#
#=== the assemblies, roles and partyies enlisted.  ===#
#=====================================================#

if ($args[0] -eq $null)
{
  Write-Host `r`n===========================================================
  Write-Host No assembly name provided for party unenlist operation.
  Write-Host Listing Parties for each assembly on local BizTalk Server:
  Write-Host ===========================================================`r`n

  foreach ($assembly in $Catalog.Assemblies)
  {
    write-host $Assembly.Name`r`n

    foreach ($role in $Assembly.Roles)
    {
      write-host `t($role.name)

      foreach($party in $role.EnlistedParties)
      {
        Write-Host `t`t($party.Party.Name)
      }
      write-host
    }
  }

  write-host
}

#=====================================================#
#=== If assembly name is specified, remove parties ===#
#=== enlisted in all roles for the assembly.       ===#
#=====================================================#

else
{
  $Assembly = $Catalog.Assemblies[$args[0]]

  if ($assembly -eq $null)
  {
    write-host Assembly named $args[0] not found.`r`n
  }

  else
  {
    write-host `r`nUnenlisting parties from all roles in ($Assembly.Name)`r`n

    foreach ($role in $Assembly.Roles)
    {

      $count = $role.EnlistedParties.count

      for($c=0; $c -lt $count; $c++)
      {
        #==========================================================#
        #=== Array index stays at zero because the collection   ===#
        #=== changes after each item is removed.                ===#
        #==========================================================#

        $party = $role.EnlistedParties[0]

        Write-Host Unenlisting ($party.Party.Name) from ($role.Name)...
        $role.RemoveEnlistedParty($party)
        Write-Host done.`r`n
      }
    }

    write-Host Comitting changes...
    $catalog.SaveChanges()
    Write-Host done.`r`n
  }
}

下列腳本輸出是從 Supplier 元件的取消列出合作物件產生,這是 PartyResolution 範例的一部分。 PartyResolution 範例位於 <Samples Path> \管理員\Orchestrations\PartyResolution 目錄中。

PS C:\> .\UnenlistParties.ps1 Supplier

Unenlisting parties from all roles in Supplier

Unenlisting ShipmentAgency1 from ShipmentRole ...
done.

Unenlisting ShipmentAgency2 from ShipmentRole ...
done.

Unenlisting BuyerAgency from Buyer ...
done.

Comitting changes...
done.

另請參閱

Admin-ExplorerOM (BizTalk Server Samples 資料夾)