« InQueue (TStereotypeClassQueue) » : différence entre les versions

De Wiki1000
Aucun résumé des modifications
m (Remplacement du texte — « http://frp.sage.fr/wiki1000/medias/images/stock/versionlatest-32x32.png » par « http://frp.sage.fr/wiki1000/medias/images/stock/version700-32x32.png »)
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{Latest}}
{{Version700}}
<source lang='delphi'>class function inQueue(const iTopic:string; const iSourceClassName:string; const iWhere:string; iDescendants:boolean; iArgs:Array of variant);</source>
<source lang='delphi'>class function inQueue(const iTopic:string; const iSourceClassName:string; const iWhere:string; iDescendants:boolean; iArgs:Array of variant);</source>


Ligne 43 : Ligne 43 :
<source lang='delphi'>
<source lang='delphi'>
//Procedure TestInQueue;
//Procedure TestInQueue;
var sel:TSelector;
var obj:MyQueue; inst:WFClasseA; S,stag:string;
begin
begin
   MyQueue.InQueue('wfclassea/@oid','WFClasseA','',true,[]);
   MyQueue.InQueue('wfclassea/@oid','WFClasseA','',true,[]);
  S := ''; stag := '';
  repeat
    obj := MyQueue.deQueue('') as MyQueue;
    if Assigned(obj) then
    try
      inst := obj.queueRef as WFClasseA;
      if Assigned(inst) then
        begin
          S := S+stag+inst.unCode;
          stag := ',';
        end;
    finally
    obj.DeleteThisObject;
    end;
  until not Assigned(obj);
  showMessage(S);
end;
end;
</source>
</source>
Ligne 55 : Ligne 72 :
{{Footer|Classe_file_d'attente_(stereotype)}}
{{Footer|Classe_file_d'attente_(stereotype)}}
[[Category:Stéréotype file d'attente]]
[[Category:Stéréotype file d'attente]]
[[Category:Latest]]
[[Category:Version700]]

Dernière version du 13 janvier 2015 à 09:42

{{#images:version700-32x32.png|stock}} <source lang='delphi'>class function inQueue(const iTopic:string; const iSourceClassName:string; const iWhere:string; iDescendants:boolean; iArgs:Array of variant);</source>

Cette méthode insère les objets de la classe iSourceName sélectionnés par l'expression iWhere dans la file d'attente.

iTopic Sujet des objets insérés
iSourceClassName Classe source des objets insérés
iWhere Expression objet sélectionnant les objets à insérer
iDescendants Insérer les objets descendants
iArgs Paramètres de l'expression

Insérer un objet de la classe source dans la file d'attente consiste à créer un objet de la file d'attente en positionnant :

  • queueState = 0 (Ready state)
  • queueTopic = valeur du sujet pour l'objet source
  • oidQueueRef = oid de l'objet source.

Seul les objets qui ne sont pas déjà présent (*) dans la file sont insérés, les objets déjà présent ont leur sujet mis à jour.

(*) : Il n'existe pas d'objet dans la file tel que oidQueueRef = oid de l'objet source

Sujet:

Le sujet des objets peut être paramétré par des attributs de la classe source, seul les attributs persistants sont autorisés et la valeur prise en compte est celle de la base de données.

Utilisez le préfixe @ pour désigner un paramètre.

Tip : L'opération est réalisée en SQL et encapsulée dans une transaction

Exemple :

<source lang='delphi'> //Procedure TestInQueue; var obj:MyQueue; inst:WFClasseA; S,stag:string; begin

 MyQueue.InQueue('wfclassea/@oid','WFClasseA',,true,[]);
 S := ; stag := ;
 repeat
   obj := MyQueue.deQueue() as MyQueue;
   if Assigned(obj) then
    try
      inst := obj.queueRef as WFClasseA;
      if Assigned(inst) then
       begin
         S := S+stag+inst.unCode;
         stag := ',';
       end;
    finally
    obj.DeleteThisObject;
    end;
 until not Assigned(obj);
 showMessage(S);

end; </source>

Voir aussi :

{{#if:Classe_file_d'attente_(stereotype)|

{{#if:Classe_file_d'attente_(stereotype)|— Classe_file_d'attente_(stereotype) |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}