Partager via


UnenlistParties (exemple BizTalk Server)

L'exemple UnenlistParties décrit la désinscription de tous les tiers associés à un assembly BizTalk Server déployé.

Avertissement

Les scripts de déploiement devenus inutiles après le déploiement doivent être supprimés. Les scripts d'administration et autres scripts conservés doivent être sécurisés à l'aide de listes de contrôle d'accès et étroitement surveillés.

Prérequis

  • Vous devez disposer BizTalk Server privilèges d’administration pour utiliser les objets administratifs de cet exemple.

  • La stratégie d'exécution de Windows PowerShell doit autoriser l'exécution des scripts. Pour plus d’informations, consultez about_Execution_Policies.

Comment cet exemple est conçu et pourquoi

Cet exemple, écrit en Visual C# à l'aide d'objets du modèle objet de l'Explorateur BizTalk, effectue les opérations suivantes :

  • requête d'un assembly particulier ;

  • récupération de tous les rôles associés à cet assembly ;

  • désinscription de tous les tiers associés à de tels rôles ;

  • gestion de toutes erreurs de telle sorte que les informations significatives soient renvoyées à l'utilisateur.

Accès à l'exemple

L'exemple se trouve dans l'emplacement SDK suivant :

<Chemin d’accès> des exemples\Administration\ExplorerOM\UnenlistParties\

Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.

Fichier(s) Description
App.ico, AssemblyInfo.cs, UnenlistParties.csproj, UnenlistParties.sln, UnenlistParties.cs Fichiers de projet, de solution et sources pour la création d'une application de ligne de commande Visual C# qui désinscrit tous les tiers pour un assembly particulier.

Générer et initialiser cet exemple

  1. Dans Visual Studio, ouvrez le fichier solution UnnlistParties.sln.

  2. Dans le menu Générer, sélectionnez Générer la solution.

Exécuter cet exemple

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> des exemples\Administration\ExplorerOM\UnenlistParties\bin\Debug\

  2. Exécutez le fichier UnenlistParties.exe, en passant l'un des deux arguments de ligne de commande suivants :

    • <AssemblyName>. Nom d'un assembly dont tous les tiers associés doivent être désinscrits. Si le nom de l'assembly contient des espaces, placez-le entre guillemets.

    • /?. Affiche de l’aide.

      Par exemple :

    UnenlistParties "My BizTalk Assembly.dll"
    

    OU

    UnenlistParties /?
    

Exemple de script Windows PowerShell

Le fragment de script Windows PowerShell suivant peut être utilisé pour illustrer les mêmes fonctionnalités que les classes 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
  }
}

La sortie de script suivante a été générée à partir de tiers se désinscrivant de l'assembly Supplier qui fait partie de l'exemple PartyResolution. L’exemple PartyResolution se trouve dans le < répertoire Samples Path>\Administration\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.

Voir aussi

Admin-ExplorerOM (dossier d’exemples BizTalk Server)