Zum Inhalt springen

Freigabe-Skripte

Ob eine Visums-Stufe für eine Kontierungs-Position greift, bestimmen ihre Visums-Regeln (siehe Freigaben). Normalerweise vergleicht eine Regel eine Eigenschaft wie Kostenstelle, Konto oder Projekt. Für komplexere Bedingungen kannst du auf einer Regel ein Skript hinterlegen. Der invoiceR führt es für jede Kontierungs-Position aus und entscheidet anhand des Ergebnisses, ob die Regel zutrifft.

Typische Beispiele: Die Stufe soll greifen, wenn …

  • auf eine bestimmte Kostenstelle und ein bestimmtes Konto gebucht wird,
  • die Kostenstelle mit 99 beginnt,
  • der Lieferantenname ein bestimmtes Wort enthält,
  • ein bestimmter MwSt-Code verwendet wird.
  1. Öffne die Visums-Regel im Fenster der Stufe.
  2. Schalte Skript ein.
  3. Wähle bei Bedarf ein Beispiel aus der Auswahlliste. Es erscheint im grossen Textfeld darunter.
  4. Passe das Skript an und speichere.
Fenster einer Visums-Regel mit eingeschaltetem Skript-Schalter, Beispiel-Auswahl und Skript-Textfeld

Das Skript ist C#-Code. Es kann auf diese Objekte zugreifen:

NameInhalt
irCaseder Beleg mit Kopfdaten und allen Kontierungs-Positionen
irItemLinedie Kontierungs-Position, die gerade geprüft wird
ruledie Visums-Regel selbst, inklusive der ausgewählten Werte (zum Beispiel Kostenstellen)
loggerzum Schreiben von Log-Einträgen aus dem Skript
foundMatchtrue, wenn die Regel schon mit den ausgewählten Werten auf die Position passt

Ist ein Skript hinterlegt, entscheidet sein Rückgabewert:

  • true: Die Regel trifft zu, die Stufe holt ihre Freigaben ein.
  • false: Die Regel trifft nicht zu.
  • null: Das Skript entscheidet nicht. Es zählt, ob die ausgewählten Werte passen. return null; wirkt also gleich wie return foundMatch;.

Beispiel: Die Regel soll nur greifen, wenn die ausgewählte Kostenstelle passt und auf ein Konto gebucht wird, das mit 6 beginnt.

if (!foundMatch)
{
return false;
}
var accountNumber = irItemLine.Account?.Number ?? "";
return accountNumber.StartsWith("6");