Execute (TitTask)

De Wiki1000
(Différences entre les versions)
Ligne 47 : Ligne 47 :
  
 
     // Add parameters to the message
 
     // Add parameters to the message
     // May be used in a task triggered by this one
+
     // May be used in an other task triggered by this one
 
     //
 
     //
 
     aMsg.AddParameter('Task1.uneChaine',uneChaine);
 
     aMsg.AddParameter('Task1.uneChaine',uneChaine);

Version du 3 avril 2019 à 09:05

function Execute(var aReason:string):boolean;
function Execute(var aReason:string):Integer;
function Execute:boolean;
function Execute:Integer;

Cette fonction doit être supportée par la classe tâche.

Différentes signatures sont supportées.

aReason Une information sur l'erreur
Result Le résultat de la tâche

Lorsque cette tâche est déclenchée par un message, celui-ci peut être récupéré dans le contexte de la tâche.

Il est possible d'ajouter des paramètres à ce message qui seront enregistrés dans l'événement correspondant au résultat de la tâche. Ce mécanisme permet de la passage de paramètres entre tâches.

Exemple :

//Function Execute(var aReason:string):boolean;
var aMsg:TdbmQueueMessage; idx:Integer; S:string;
begin
  // Add messages to the log
  ProgressMessage('HelloWorld');
  ProgressMessage(Format('uneChaine:%s',[uneChaine]));
 
  if Assigned(UserContext.TaskContext) and Assigned(userContext.TaskContext.EventContext) then
   begin
     userContext.TaskContext.AddMessage('Task context');
     //
     aMsg := userContext.TaskContext.EventContext.ReceivedMsg;
     if Assigned(aMsg) then
      begin
        userContext.TaskContext.AddMessage('Task context message');
        for idx:=0 to aMsg.Count-1 do
         begin
           S := aMsg.DisplayStrings(idx);
           UserContext.TaskContext.AddMessage(S);
         end;
      end;
 
     // Add parameters to the message
     // May be used in an other task triggered by this one
     //
     aMsg.AddParameter('Task1.uneChaine',uneChaine);
     aMsg.AddParameter('Task1.unEntier',unEntier);
     aMsg.AddParameter('Task1.uneDate',uneDate);
     aMsg.AddParameter('Task1.unMontant',unMontant.Value);
   end
   else ProgressMessage('no task context');
 
  aReason := '';
  Result := True;
end;

Voir aussi :

Classe_tâche_(stereotype)Développement DSM





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