Procédure : modéliser des méthodes Web polymorphes
Le catalogue de données métiers peut prendre en charge les méthodes Web polymorphes. Une méthode Web polymorphe peut retourner des objets différents selon le type d'exécution de l'instance qui l'appelle. Par exemple, supposons qu'un service Web retourne des factures, des clients, des commandes et des détails connexes à partir d'un système de comptabilité. Vous pouvez utiliser une méthode Web unique telle qu'Object GetObject() pour retourner un client, une facture, une commande ou les détails de la commande en fonction de la valeur du paramètre d'entrée. Par exemple, si la méthode est appelée avec Customer en guise de type de retour attendu, cette méthode Web retourne un objet Customer.
Lorsque vous rencontrez une méthode Web polymorphe, vous devez définir (dans le fichier de définition d'application) chaque version du sous-type de retour de méthodes qui vous intéresse. Pour l'exemple précédent, vous définissez plusieurs méthodes, une pour chaque Customer GetObject(), Invoice GetObject(), Order GetObject(), OrderDetail GetObject(). Suivant les valeurs des paramètres d'entrée, le catalogue de données métiers appelle la méthode appropriée correspondant à la signature de méthode lors de l'exécution.
Exemple
<Methods>
<Method Name="CustomerSpecificFinder">
….
….
//The return parameter is a Customer object.
</Method>
<Method Name="InvoiceSpecificFinder">
….
….
//The return parameter is an Invoice object.
</Method>
<Method Name="OrderSpecificFinder">
….
….
//The return parameter is an Order object.
</Method>
<Method Name="OrderDetailSpecificFinder">
….
….
//The return parameter is an Order Detail object.
</Method>
</Methods>