# UserExit-Funktionen

Um die UserExit-Funktionen nutzen zu können werden sehr gute PortalScripting-Kenntnisse und Kenntnisse der im Invoice verwendeten JavaScript-Objekte vorausgesetzt.

Eine fix zu einem Kreditor verknüpfte Standardkontierung kann automatisch über eines der bestehenden UserExits aufgerufen werden. Im Skript "**DEXPRO\_\_UserExit\_WorkflowLib**" befindet sich zum Beispiel die UserExit-Funktion "**<span style="color: #dcdcaa;">ue\_Initialization</span>**" und hier wird die Funktion "**DocFile.useCreditorDefaultAccounting()**" bereits auskommentiert ausgeliefert. Für den folgenden Screenshot wurde der Part einkommentiert.

[![image-1668173091685.png](https://docs.squeeze.one/uploads/images/gallery/2022-11/scaled-1680-/image-1668173091685.png)](https://docs.squeeze.one/uploads/images/gallery/2022-11/image-1668173091685.png)

Bei der Anwendung einer Standardkontierung werden die Rechnungspositionen neu erstellt. Hierfür wird ein Gentable-Objekt erstellt und nach der Ausführung und vor dem Schreiben des Gentable ("Gentable.createGentableStr()") wird die User-Exit-Funktion "**Gentable.ue\_AfterStandardAccounting()**" ausgeführt. Die Funktion kann verwendet werden um zum Beispiel zusätzliche Betragswerte zu berechnen. Die Funktion wird bereits im Skript "**DEXPRO\_\_UserExit\_GentableAdd**" ausgeliefert.

Erläuterungen zum Gentable-Objekt finden sich an anderer Stelle der WEB-Dokumentation.

```JavaScript
/** Before standard accounting execution
 * @since Invoice 1.1.300
**/
Gentable.prototype.ue_BeforeStandardAccounting = function(standardAccountingObj){
    /* example: cut Gentable to standard accounting position size *
    accObj.getAccountingPositions(accObj.AccountingName);
    var accPos = accObj.Accounting[accObj.AccountingName];
    if( this.Rows.length>accPos.length ){
        for( r=this.Rows.length-1; r>=accPos.length ;r-- ){
            if( this.Logg instanceof Log ){
                this.Logg.info("["+r+"] this.Rows.pop();");
            }
            this.Rows.pop();
        }
    }
    */
}

/** Before standard accounting execution
**/
Gentable.prototype.ue_AfterStandardAccounting = function(standardAccountingObj){
    ;
}
```