Skip to main content

User-Exit Funktionen

Es werden diverse User-Exit Funktionen bereitgestellt, um die Daten zu gegebenen Zeitpunkten zu manipulieren.

CreditorCsv( DocFile, Log )

Technisch wird im Hintergrund ein Objekt vom Typen CreditorCsv erzeugt. Dem Objekt muss zwingend ein DocFile-Objekt übergeben werden. Wenn kein spezifisches Logging-Objekt übergeben wird, wird ein eigenes erzeugt. Das Objekt selber enthält folgende Attribute:

  • Error {string} Fehlermeldung
  • Log {Log} Das übergebene Log Objekt
  • DocFile {DocFile} Das übergebene DocFile Objekt
  • ID {string} ID des DocFile-Objekts
  • Gentable {Gentable} Gentable des übergebenen DocFile Objekts
  • CsvArr {Array} Array mit den CSV-Zeilen
  • Seperator {string} CSV-Trennzeichen
  • DecSeperator {string} Dezimaltrennzeichen
  • NoHeadLineCol {int} Anzahl zu überspringende Kopfzeilen
  • CsvMapping {Array} Array mit Spalten-Mapping-Objekten

Die User-Exit-Funktionen werden via prototype hinzugefügt. Dadurch erhält der Anwender Zugriff auf die Objekt-Attribute. In der Regel muss in den User-Exit-Funktionen zwischen den Kreditoren unterschieden werden. Der Kreditor kann über das DocFile-Objekt ermittelt werden.

 

ue_CreditorCsv_AdjustLineString(currentLine, lineNo)

Die Funktion wird nach dem Auslesen jeder einzelnen Zeile aufgerufen. Durch die Funktion kann der komplette Zeilen-String manipuliert werden. Zum Beispiel kann via util.transcode() ein falsches Encoding korrigiert werden.

/** CSV-Zeile manipulieren
 * @param {string} currLine CSV-Zeile als String
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {string} Angepasste CSV-Zeile als String
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustLineString = function(currLine, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
      return util.transcode("ISO-8859-15", currLine, "UTF-8");
    }
  	return currLine;
}

 

ue_CreditorCsv_IgnoreLine(currentLineArr, currentLine, lineNo)

Nachdem die Zeile ausgelesen wurde wird die Zeile über den Trenner gesplittet und die Teil-Strings werden in ein Array geschrieben. Die CSV-Dateien können Summenzeilen enthalten, welche beim Auslesen übersprungen werden sollen. Oft können solche Zeilen einfach identifiziert werden, da bestimmte Spaltenwerte fehlen. Es kann auch sein, dass eine CSV die Daten von mehreren Rechnungen enthält. Über die Funktion können die Zeilen mit abweichender Rechnungsnummer übnersprungen werden.

/** CSV-Zeile überspringen
 * @param {Array} currLineArray CSV-Zeilen Array mit den einzelnen String-Werten
 * @param {string} currLine CSV-Zeile als String
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {boolean} 'true' um Zeile zu überspringen
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustLineString = function(currLineArray, currLine, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	if( currLineArray[10]==="" ){
         	return true; 
        }
    }
  	return false;
}