Freigeben über


UnenlistParties (BizTalk Server-Beispiel)

Das Beispiel „UnenlistParty“ veranschaulicht, wie alle Parteien ausgetragen werden, die einer bereitgestellten BizTalk Server-Assembly zugeordnet sind.

Warnung

Bereitstellungsskripts sollten nach einer Bereitstellung entfernt werden (wenn sie nicht mehr benötigt werden). Verwaltungsskripts und andere Skripts, die vorhanden sein müssen, sollten über die Zugriffssteuerungsliste geschützt und genau überwacht werden.

Voraussetzungen

  • Sie müssen über BizTalk Server Administratorrechte verfügen, um die Administrativen Objekte in diesem Beispiel verwenden zu können.

  • Für die Skriptausführung erfordert das Windows PowerShell-Skript die Windows PowerShell-Ausführungsrichtlinie. Weitere Informationen finden Sie unter about_Execution_Policies.

Wie dieses Beispiel gestaltet ist und warum

In diesem in Visual C# geschriebenen Beispiel, in dem Objekte aus dem BizTalk-Explorer-Objektmodell verwendet werden, werden die folgenden Vorgänge ausgeführt:

  • Abfrage nach einer bestimmten Assembly

  • Abrufen aller der Assembly zugeordneten Rollen

  • Austragen aller Parteien, die den einzelnen Rollen zugeordnet sind

  • Behandeln von Fehlern, damit sinnvolle Informationen an den Benutzer zurückgegeben werden

Speicherort dieses Beispiels

Das Beispiel ist im folgenden SDK-Verzeichnis gespeichert:

<Beispielpfad>\Admin\ExplorerOM\UnenlistParties\

In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.

Datei(en) BESCHREIBUNG
App.ico, AssemblyInfo.cs, UnenlistParties.csproj, UnenlistParties.sln, UnenlistParties.cs Projekt-, Projektmappen- und Quelldateien zum Erstellen einer Visual C#-Befehlszeilenanwendung, mit der alle Parteien für eine bestimmte Assembly ausgetragen werden.

Erstellen und Initialisieren dieses Beispiels

  1. Öffnen Sie in Visual Studio die Projektmappendatei UnenlistParties.sln.

  2. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus.

Dieses Beispiel ausführen

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\Admin\ExplorerOM\UnenlistParties\bin\Debug\

  2. Führen Sie die Datei UnenlistParties.exe aus, und übergeben Sie dabei eines der beiden folgenden Befehlszeilenargumente:

    • <AssemblyName>. Der Name der Assembly, aus der alle zugeordneten Parteien ausgetragen werden sollen. Wenn der Assemblyname Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden.

    • /?. Zeigt die Hilfe an.

      Beispiel:

    UnenlistParties "My BizTalk Assembly.dll"
    

    ODER

    UnenlistParties /?
    

Beispiel für ein Windows PowerShell-Skript

Das folgende Windows PowerShell-Skriptfragment kann verwendet werden, um die gleichen Features der ExplorerOM-Klassen zu veranschaulichen:

#===================#
#=== 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
  }
}

Die folgende Skriptausgabe wurde beim Austragen von Parteien aus der Assembly „Supplier“ generiert. Diese ist Bestandteil des Beispiels „PartyResolution“. Das PartyResolution-Beispiel befindet sich im < Verzeichnis Samples Path>\Admin\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.

Weitere Informationen

Admin\ExplorerOM (Ordner für BizTalk Server-Beispiele)