AppliquerMethodeComposant
Rôle : |
Appel synchrone d'une méthode publique d'un composant. |
Syntaxe : |
AppliquerMethodeComposant <code composant>.<code méthode> [(<liste de paramètres>)] |
Notes : |
|
Cette instruction effectue un appel synchrone à la méthode <code méthode> du composant <code composant>. La méthode invoquée doit être une méthode publique ; en d'autres termes, elle doit correspondre à l'une des méthodes de l'objet INTERFACE du composant.
<code composant> peut représenter un composant ou un contexte de composant déclaré avec l'instruction CreerContexteComposant.
<code méthode> et <code composant> sont des constantes de type chaîne ou plus généralement des expressions de type chaîne.
La liste des paramètres respecte la même syntaxe que l'instruction AppliquerMethode classique du langage.
Explications :
Lors du premier appel, l'instruction AppliquerMethodeComposant se charge d'établir le dialogue avec le composant en lien. Une fois le dialogue établi, la méthode invoquée est déclenchée. L'appel étant synchrone l'objet appelant reste en attente du résultat tant que l'exécution de la méthode n'est pas terminée. Au retour de l'appel, les éventuels paramètres passés par références sont à jours. Par contre les données d'interface du composant doivent être actualisée grâce à l'instruction LireInterface. Si les données de l'interface sont significatives dans tous les cas, on utilise l'instruction AppliquerMethodeComposantLire.
Exemple :
AppliquerMethodeComposant "CLIENT"."LECTURE"(FACTURE.CLIENT_IDENT)
Variables : Chaine vcomposant="CLIENT"
AppliquerMethodeComposant vcomposant."LECTURE"(FACTURE.CLIENT_IDENT)
|
Lors de la programmation d'un objet INTERFACE, il ne faut surtout pas utiliser l'instruction ApliquerMethodeComposant pour appeler une méthode publique de son propre objet. Cet erreur est fréquente, elle provoque la création d'une nouvelle instance de l'objet INTERFACE en cours. Ici, il faut bien évidemment utiliser l'instruction AppliquerMethode.
Si le composant appelé est en mode "Serveur", il est préférable d'utiliser l'instruction AppliquerMethodeComposantLire afin d'éviter les phases critiques éventuelles liées à des appels concurrents.
|