Skip to main content

Versteckte User-Exits Invoice-Jobs

Invoice_JOB_CheckPostingStatus

Der Job überprüft den Buchungs-Status (Spalte "PostingStatus") in der Tabelle "Invoice_PostingHead" für alle Rechnungs-Mappen mit der Aktions-ID "Posting" und dem Aktions-Status "TechActionJob". Aus der Tabelle werden folgende Feldwerte in die Mappe übernommen:

  • PostingStatus
  • PostingNumber
  • PostingPeriod
  • PostingDate
  • PostingUser
  • PostingError

Bei einem Fehler-Status ("error") wird der Beleg zur im Feld "ActionAccessProfile" hinterlegten Gruppe zur Nachbearbeitung gesendet. Technisch kann in das Feld "ActionAccessProfile" auch ein Benutzer-Login geschrieben werden. Bei erfolgter Buchung (Status "posted")  wird der Beleg zur nächsten Workflow-Aktion gesendet.

Im Skript wird zunächst das FileResultset ermittelt. Erst wenn mindestens 1 Beleg gefunden wurde wird ein Log erzeugt und erst dann werden auch die folgenden User-Exit-Funktion ausgeführt. Vor dem FileResultset wird "context.setSuperMode(true)" gesetzt. Alle User-Exits werden im Super-Mode ausgeführt! Der Job importiert die "Invoice__ImportLib". Die UserExits können demnach zur "Invoice__UserExit_CustomLib" hinzugefügt werden.

/** Diese optionale Funktion wird noch vor der FileResultset-Schleife ausgeführt und kann verwendet werden,
 * um zum Beispiel den Buchungs-Status aus einem externen System zu übertragen.
 * @param {Log} log Logging-Objekt
 * @returns {} Die Rückgabe wird nicht ausgewertet
 * @since Invoice 1.1.015
**/
function ue_checkPostingStatus_BeforeLoop(log){
  log.info("["+docFile.getid()+"] function ue_checkPostingStatus_BeforeLoop(log)");
  return true;
}

/** Diese optionale Funktion wird direkt zu Beginn in der Schleife ausgeführt.
 * @param {DocFile} docFile Aktuelle Rechnungs-Mappe im FileResultset
 * @param {Log} log Logging-Objekt
 * @returns {boolean} true / false (durch false wird die Überprüfung der Mappe abgebrochen)
 * @since Invoice 1.1.015
**/
function ue_checkPostingStatus_DocFileStart(docFile, log){
  log.info("["+docFile.getid()+"] function ue_checkPostingStatus_DocFileStart(docFile, log)");
  return true;
}

/** Diese optionale Funktion wird nur ausgeführt, wenn der Buchungsstatus in der Tabelle "error" zurückliefert.
 * Die Feldwerte werden gesetzt aber die Mappe wurde noch nicht weitergeleitet.
 * @param {DocFile} docFile Aktuelle Rechnungs-Mappe im FileResultset
 * @param {Log} log Logging-Objekt
 * @returns {boolean} true / false (durch false wird die Mappe nicht an die Gruppe zur Überprüfung weitergeleitet)
 * @since Invoice 1.1.015
**/
function ue_checkPostingStatus_OnPostingError(docFile, log){
  log.info("["+docFile.getid()+"] function ue_checkPostingStatus_OnPostingError(docFile, log)");
  return true;
}

/** Diese optionale Funktion wird nur ausgeführt, wenn der Buchungsstatus in der Tabelle "posted" zurückliefert.
 * Die Feldwerte werden gesetzt aber die Mappe wurde noch nicht weitergeleitet.
 * @param {DocFile} docFile Aktuelle Rechnungs-Mappe im FileResultset
 * @param {Log} log Logging-Objekt
 * @returns {boolean} true / false (durch false wird die Mappe nicht zur nächsten Workflow-Aktion weitergeleitet)
 * @since Invoice 1.1.015
**/
function ue_checkPostingStatus_Posted(docFile, log){
  log.info("["+docFile.getid()+"] function ue_checkPostingStatus_Posted(docFile, log)");
  return true;
}

/** Diese optionale Funktion wird nur ausgeführt, wenn der Buchungsstatus in der Tabelle "posted" zurückliefert.
 * Die Feldwerte werden gesetzt und die Mappe erfolgreich weitergeleitet.
 * @param {DocFile} docFile Aktuelle Rechnungs-Mappe im FileResultset
 * @param {Log} log Logging-Objekt
 * @returns {} Die Rückgabe wird nicht ausgewertet
 * @since Invoice 1.1.015
**/
function ue_checkPostingStatus_PostedAndForwarded(docFile, log){
  log.info("["+docFile.getid()+"] function ue_checkPostingStatus_PostedAndForwarded(docFile, log)");
  return true;
}