27. März 2025 12:45
Wir haben diverse Jobs, die ständig laufen und bei Fehlern Mails verschicken, dass was schief gelaufen ist. Wir versuchen da gerade, den Spam zu verringern. Z.B. haben wir einen Job, der regelmäßig Aufträge prüft und wenn alles i.O. ist, diese freigibt. Jetzt ist ab und an mal ein Auftrag gesperrt -> Job läuft auf einen Fehler und schickt eine Mail.
Jetzt würde das gerne so ändern, dass ich zu Anfang des Freigabe-Versuchs diesen einzelnen Record versuche, zu sperren und wenn das klappt, möchte ich, dass der Job mit der Freigabe weiter macht, wenn nicht, soll der Auftrag einfach übersprungen werden. Das sollte weiter kein Problem sein, weil der Job sehr oft läuft und der Auftrag halt ein paar Minuten später freigegeben wird im Zweifel. Wir haben auch Monitorings, falls es dazu kommen sollte, dass viele Aufträge nicht freigegeben sind, also sollten wir spätestens darüber eine Dauersperre bemerken (für sowas haben wir aber auch ein separates Monitoring).
Hat dafür jemand einen Tipp, was da der "Königsweg" für ist? Evtl. einfach eine Try-Funktion mit SalesHeader.Locktable darin? kann ich dann sicher sein, dass wirklich nur der eine Record gesperrt wird? Direkt zu Anfang des Jobs alle potentiell freizugebenden Aufträge sperren möchte ich eigentlich gar nicht (z.B. per Findset(True)); wenn gerade jemand manuell da dran ist, dann lasse ich dem lieber den Vortritt.
Danke euch!