Im Rahmen eines CRM Projekts haben wir die Funktionalität für die DiffMappings mit eingebaut. Dazu gibt es neu die Funktion 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 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.
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 MessageDeletor verbinden um so die alten Messages zu löschen.
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 MessageDeletor gelöscht werden, oder auch in eine andere MessageBox verschoben werden etc.