Contrôleur (type)

De Wiki1000

Contrôleur

Le type de données « Contrôleur » est un type de donnée permettant de contrôler le déroulement d’une transaction entre un fournisseur de service et un client du service.

La transaction est identifiée par un identifiant client et un identifiant serveur qui sont stockés dans la base de données. La transaction est démarré soit par l’affectation d’un identifiant client soit par l’appel explicite à la méthode « Execute »

Opérations de contrôle

Le contrôle de la transaction est effectuée à l’aide de cinq opérations :

Function OpValidate(const idc :string) :string ;

Cette méthode détermine si les conditions nécessaires pour déclencher une transaction sont remplies.

Idc Identifiant de transaction client courant.
Retour Nouvel identifiant de transaction
  • Si la valeur de retour est égale au paramètre Idc le contrôleur ne démarre pas de transaction
  • Si la valeur de retour est vide le contrôleur annule la transaction précédente mais ne démarre pas de nouvelle transaction
  • Si la valeur de retour est non vide et différente de la valeur précédente le contrôleur annule la transaction précédente et démarre une nouvelle transaction.
Function OpRequest(const oldidf, newidc:string; var aMsg:string) :Integer ;

Cette méthode démarre une transaction auprès du fournisseur

oldIdf Identifiant de transaction du fournisseur si cette demande est une reprise
newIdc Identifiant de transaction du client.
aMsg Message de réponse du fournisseur
Retour Code de retour du fournisseur.
  • Si Retour égal zéro la transaction est supposée correctement démarrée et le message contient l’identifiant de transaction du fournisseur.
  • Si Retour est différent de zéro le démarrage de la transaction à échoue et le message contient un message d’erreur à destination de l’utilisateur.
  • En cas d’erreur une exception est déclenchée.
Procedure OpCancel(const idf :string) ;

Cette méthode annule une opération précédemment démarrée.

Idf Identifiant de transaction du fournisseur
Function OpCanComit(const oldidf, newidf:string; var aMsg:string) :Integer ;

Cette méthode prépare la validation d’une transaction précédemment démarrée.

oldIdf Identifiant de transaction du fournisseur si cette validation est une reprise
newIdf Identifiant de transaction du fournisseur
aMsg Message de réponse du fournisseur
Retour Code de retour du fournisseur.

Le fournisseur doit préparer la validation de la transaction, oldidf correspond à l’identifiant de la transaction de reprise si elle existe, newidf à l’identifiant de la nouvelle transaction.

  • Si retour égal zéro la validation de la transaction est considéré possible et le processus de validation se poursuit.
  • Si retour est différent de zéro la validation de la transaction n’est pas possible et aMsg contient un message d’erreur. Le contrôleur déclenche alors une exception et la validation est interrompue. Le fournisseur doit se trouver dans l’état précédant l’appel à OpCanCommit et accepter un opCancel sur cette transaction.
Procedure OpCommit(const oldidf, newidf :string) ;

Cette méthode valide une transaction précédemment démarrée.

oldIdf Identifiant de transaction du fournisseur si cette validation est une reprise
newIdf Identifiant de transaction du fournisseur

Cette opération ne doit pas échouer, le fournisseur doit effectuer la validation lors de l’opération opCanCommit.

Convention de nom

Les opérations associées à un attribut contrôleur doivent être portées par la classe qui détient l’attribut et doivent respecter la convention de nom suivante :

OpValidate « nom_attribut_contrôleur »_Validate
OpRequest « nom_attribut_contrôleur »_Request
OpCancel « nom_attribut_contrôleur »_Cancel
OpCanCommit « nom_attribut_contrôleur »_CanCommit
OpCommit « nom_attribut_contrôleur »_Commit
Voir un exemple d’utilisation de contrôleur dans la classe TdetailOperationLogistique de la Gestion Commerciale.




Whos here now:   Members 0   Guests 1   Bots & Crawlers 0
 
Outils personnels