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.
Skript einschalten
Abschnitt betitelt „Skript einschalten“- Öffne die Visums-Regel im Fenster der Stufe.
- Schalte Skript ein.
- Wähle bei Bedarf ein Beispiel aus der Auswahlliste. Es erscheint im grossen Textfeld darunter.
- Passe das Skript an und speichere.
Was das Skript zur Verfügung hat
Abschnitt betitelt „Was das Skript zur Verfügung hat“Das Skript ist C#-Code. Es kann auf diese Objekte zugreifen:
| Name | Inhalt |
|---|---|
irCase | der Beleg mit Kopfdaten und allen Kontierungs-Positionen |
irItemLine | die Kontierungs-Position, die gerade geprüft wird |
rule | die Visums-Regel selbst, inklusive der ausgewählten Werte (zum Beispiel Kostenstellen) |
logger | zum Schreiben von Log-Einträgen aus dem Skript |
foundMatch | true, wenn die Regel schon mit den ausgewählten Werten auf die Position passt |
Rückgabewert
Abschnitt betitelt „Rückgabewert“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 wiereturn 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");