Skip to main content

Versteckte User-Exits: 3-Way-Match (Warten auf Wareneingang)

Bei Rechnungen mit Bestellbezug erfolgt die Versendung der Rechnung häufig zeitgleich oder noch vor der Warenversendung. Selbst wenn die Rechnung zeitgleich mit der Ware ankommt, erfolgt die Wareneingangserfassung häufig erst nachdem die Rechnung im Workflow angelegt wurde. In der technischen Workflow-Aktion "Wait4IncomingGoods" ("Warten auf Wareneingang") können Rechnungen mit Bestellbezug eine definierte Anzahl an Tagen auf den Wareneingang warten.

Das Jobskript "Invoice_JOB_CheckGoodsReceipt" iteriert die auf Wareneingang wartenden Rechnungen mit Bestellbezug. Das Skript überprüft zunächst, ob jeder Rechnungsposition eine Bestell-Position zugeordnet wurde, denn ohne die Zuordnung zu einer Bestellposition kann der Position kein Wareneingang zugeordnet werden (ausgenommen sind als Zu-Abschlagszeilen markierte Positionen). Die Prüfung übernimmt die Funktion "Gentable.checkOrder()". Vor dieser Prüfung wird jetzt die UserExit-Funktion Gentable.ue_BeforeGoodsReceivedCheck() ausgeführt.
/** Diese UserExit-Funktion wird bei allen Rechnungen ausgeführt,
 * die im Workflow-Schritt "Warten auf Wareneingang" liegen.
 * @param {Log} log Logging-Objekt
 * @since Invoice 1.1.300
**/
Gentable.prototype.ue_BeforeGoodsReceivedCheck = function(log){
  ;
}
Wenn allen Positionen eine Bestell-Position zugeordnet wurde, dann werden über Gentable.checkIncomingGoods() die Wareneingänge geprüft und im Anschluss wird die neue UserExit-Funktion Gentable_ue_AfterGoodsReceivedCheck() ausgeführt.
/** Diese UserExit-Funktion wird bei den Rechnungen ausgeführt,
 * die im Workflow-Schritt "Warten auf Wareneingang" liegen 
 * und wo allen Positionen eine Bestellung zugeordnet wurde.
 * Die Prüfung auf einen Wareneingang (Gentable.checkIncomingGoods()) wurde bereits ausgeführt.
 * @param {Log} log Logging-Objekt
 * @since Invoice 1.1.300
**/
Gentable.prototype.ue_AfterGoodsReceivedCheck = function(log){
  ;
}
Wenn einer Rechnungs-Position keine Bestell-Position zugeordnet wurde und die Position auch nicht als Zu-Abschlagszeile markiert wurde, dann kann keine automatische Zuordnung zu einem Wareneingang erfolgen und die Rechnung muss zur manuellen Bearbeitung an einen Benutzer oder an eine Gruppe weitergeleitet werden. Vor der Weiterleitung wird jetzt die Funktion DocFile.ue_GoodsReceivedCheck_MissingOrder() ausgeführt.
/** Diese UserExit-Funktion wird bei den Rechnungen ausgeführt,
 * die im Workflow-Schritt "Warten auf Wareneingang" liegen 
 * und wo mindestens einer Positionen keine Bestellung zugeordnet wurde.
 * @param {Log} log Logging-Objekt
 * @since Invoice 1.1.300
**/
DocFile.prototype.ue_GoodsReceivedCheck_MissingOrder = function(log){
  ;
}
Über den Parameter "3WayMatchCheck_Wait4GoodsReceipt" kann festgelegt werden, wie lange eine Rechnung maximal auf einen Wareneingang warten soll. Wenn die definierte Anzahl an Tagen erreicht ist, wird die Rechnung ebenfalls automatisch weitergeleitet. Vor der Weiterleitung wird jetzt die Funktion DocFile.ue_AfterWait4GoodsReceived() ausgeführt.
/** Diese UserExit-Funktion wird bei den Rechnungen ausgeführt,
 * die länger im Workflow-Schritt "Warten auf Wareneingang" liegen 
 * und nach einer definierten Zeitspanne automatisch weitergeleitet werden sollen.
 * @param {Log} log Logging-Objekt
 * @since Invoice 1.1.300
**/
DocFile.prototype.ue_AfterWait4GoodsReceived = function(log){
  ;
}