====== StatefulDocumentMessageCollector ====== Im Rahmen eines CRM Projekts haben wir die Funktionalität für die [[transformation:mappings:funktionen:diffmappingfunktionen:start|DiffMappings]] mit eingebaut. Dazu gibt es neu die Funktion [[transformation:mappings:funktionen:diffmappingfunktionen:loadstatefuldocument|LoadStatefulDocument]], mit deren Hilfe man die vorherige erfolgreich verarbeitete Version desselben Dokumentes bekommt und diese dann laden kann. In diesem Zusammenhang kann man nun nicht mehr länger einfach mit dem [[prozessdefinition:jobs:jobsteps:allgemein:removemessages|RemoveMessage]] JobStep die alten Messages löschen, sondern sollte das so machen, dass das nicht nur nach Zeit, sondern eben auch nach der letzten Dokumenteninstanz geht. Insgesamt kann es dann sein, dass man mehrere tausend Dokumente vorhalten muss. {{:images:sign_warning.png?nolink|}}**Hinweis:** Um in diesem Szenario qualifiziert zu löschen, verwendet man den JobStep **StatefulDocumentMessageCollector**, um die geünschten Messages einzusammeln. Anschließend mit dem JobStep [[prozessdefinition:jobs:jobsteps:allgemein:messagedeletor|MessageDeletor]] verbinden um so die alten Messages zu löschen. ===== Verwendung ===== {{:prozessdefinition:jobs:jobsteps:allgemein:statefuldocumentmessagecollector1.png?nolink|}} ===== Eigenschaften ===== {{:prozessdefinition:jobs:jobsteps:allgemein:statefuldocumentmessagecollector2.png?nolink|}} ===== Hinweise ===== * **MessageBoxName** auf der gesucht werden soll * **StatefulEntityTypeName** ist der EntityType nach dem gesucht werden soll * **NumberOfDocumentInstancesToKeep** gibt an, wie viele erfolgreich verarbeitete Dokumenteninstanzen noch vorgehalten werden sollen((Also ein Wert größer oder gleich 1)) * **MinStateToCollect** gibt an ab welchem Status ein Dokument oder Message als erfolgreich angesehen wird. Rest ist wie beim MessageCollector Die Funktion sammelt dann die Messages ein, die genau ein Dokument des EntityTypes enthalten. Dann wird festgestellt, ob es ältere Dokumente desselben Types mit derselben DokumentenNr gibt. Es wird nach EntryDate absteigend sortiert und sobald die Anzahl „zu behaltender Dokumente“ mit derselben DokumentenNr erreicht ist, werden die älteren Instanzen der Dokumente oder Messages eingesammelt und in den Job als InputMessages geladen. Von dort können diese dann beispielsweise mit dem **[[prozessdefinition:jobs:jobsteps:allgemein:taskmessagedeletor|MessageDeletor]]** gelöscht werden, oder auch in eine andere MessageBox verschoben werden etc.