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
Öffnen Sie in Visual Studio die Projektmappendatei UnenlistParties.sln.
Wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus.
Dieses Beispiel ausführen
Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:
<Beispielpfad>\Admin\ExplorerOM\UnenlistParties\bin\Debug\
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.