DequeueList (TStereotypeClassQueue)
<source lang='delphi'>class function DequeueList(const iTopic:string):TQueueObjectList;</source>
Cette fonction consomme les objets suivant disponibles de la file d'attente vérifiant le sujet et retourne une liste.
| Result | Une liste des objets vérifiant le sujet. |
| iTopic | Nom de sujet demandé. |
Exemple :
<source lang='delphi'> //Procedure doDeQueueWithGroupBy; var obj:MyQueue; aList:TQueueObjectList; indx:Integer; aTopic,aGroupByTopic:string; begin
// In this step we dequeue and process the ready objects. // The objects are dequeued group by unCode
// Request objects in initial state in case of the queue contains multiple states aTopic := 'wfclassea/0/%';
// This is just an estimation of the count, could be false if several processes run in parallel
ProgressMax(MyQueue.CountWhere('queueTopic like %1',true,[aTopic]));
obj := MyQueue.GetFirst(aTopic);
Repeat
if Assigned(obj) then
begin
// Progress indicator
ProgressCount(indx);
// Get the topic on which to group by
aGroupByTopic := 'wfclassea/0/'+StringPart(obj.queueTopic,'/',2)+'/%';
// Get a list of queue object with this topic
aList := MyQueue.deQueueList(aGroupByTopic);
// the objects may has been consumed by an other process, so we have to check it again.
if Assigned(aList) and (aList.Count>0) then
try
// process the list of objects
doProcessList(aList);
aList.DeleteObjects;
except
// On error ReQueue the list
MyQueue.ReQueueList(aList,'/0/','/99/');
end;
end;
obj := MyQueue.GetNext(aTopic,obj);
Until not Assigned(obj);
//
ProgressFull();
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 —
}}