kann eine bestimmte Anzahl von Wertparametern umfassen, die zur Auswertung dieser Variable notwendig sind (die Variablen werden dem Unterprogramm als Parameter übergeben)
muss zwingend einen Referenzparameter umfassen. Dieser Parameter entspricht dem Auswertungsergebnis.
gibt neben dem Auswertungsparameter eine Variable vom Typ integer zurück, mit der ein Fehlercode definiert werden kann. Dieser Parameter muss nicht in der Parameterliste definiert werden, sondern wird beim Aufruf des Unterprogramms automatisch hinzugefügt: Er muss folglich im Code des Unterprogramms enthalten sein.
Beispiel:
Zu bestimmten Automatik-Buchungspositionen muss der anzuwendende Mehrwertsteuersatz bekannt sein, wobei der Steuercode, das Buchungsdatum und das Unternehmen berücksichtigt werden müssen. Für die Auswertung des Steuersatzes wurde in der Standardversion die Variable 'TVA' eingeführt. Diese umfasst folgende Parameter:
drei für die Auswertung des Steuersatzes notwendige Wertparameter: Unternehmen (CPY) vom Typ 'char', Steuercode (TAX) vom Typ 'char', Datum (DAT) vom Typ 'date'
ein Referenzparameter, der dem gesuchten Ergebnis entspricht: Steuersatz (VATRAT) vom Typ 'decimal'
Siehe Dokumentation Umsetzung
Übersicht
Mit der Syntax V_XXXXX (wobei XXXXX für den Variablencode steht) kann jede Variable in der den Buchungspositionsfeldern zugeordneten Formeltabelle verwendet werden. Nach der Erfassung einer Variablen wird ein kleines Fenster geöffnet, in dem der Benutzer die Werte aller Parameter erfassen muss, die zur Variablenauswertung benötigt werden (Wertparameter). Die zu den einzelnen Parametern angegebenen Werte müssen den korrekten Typ aufweisen.
Wir weisen darauf hin, dass es sich bei den beim Aufruf des Unterprogramms übergebenen Parametern um Konstanten, Variablen oder komplexe Ausdrücke mit Variablen handeln kann.
Beispiel :
Wenn in einer der Automatik-Buchung BPCIN zugeordneten Formel eine Variable mit dem Journalcode aus dieser Tabelle belegt werden soll, so ist die Formel [F:SIH]JOU als Parameter zu übergeben.
Es wird darauf hingewiesen, dass in einer Formel für eine Automatik-Buchungsposition mehrere Automatik-Buchungsvariablen verwendet werden können.
Beispiel: :
V_CONVERT-ar2(V_CONVERT/(1+V_TVA)) bzw. V_CONVERT soll einen Betrag inkl. Mehrwertsteuer zurückgeben, V_TVA soll einen Steuersatz zurückgeben, und die Formel soll einen Mehrwertsteuerbetrag zurückgeben.
Die Referenzierung einer Automatik-Buchungspositionsvariablen zieht in der Verarbeitung WMGAUYYYYY (wobei YYYYY für den Automatik-Buchungscode steht) den Aufruf des fraglichen Unterprogramms nach sich. Bei diesem Aufruf werden übergeben:
Variablenparameter korrekten Typs, in der Reihenfolge, wie sie bei der Parametrierung der Automatik-Buchungsvariable erfasst wurden
Parameter 'STAT' vom Typ 'integer', mit dem ggf. dem Automatik-Buchungsgenerator ein Rückgabestatus zurückgegeben werden kann. Ist STAT = 98, so wird keine Buchung generiert, und es wird die Fehlermeldung angezeigt, die in der globalen Variable GMESSAGE enthalten ist.
Darüber hinaus wird darauf hingewiesen, dass in den bei der Buchung der Automatik-Buchungen generierten Verarbeitungen die Haupttabelle nicht unter ihrer eigenen Abkürzung, sondern unter der Abkürzung [F:TB0] geöffnet ist; die Positionstabelle hingegen ist unter ihrer eigenen Abkürzung [F:TB1] geöffnet. Dies wirkt sich weder auf die erfassten Formeln noch auf die bei der Buchungsparametrierung übergebenen Parameterausdrücke aus. Da bei der Freigabe von Automatik-Buchungen die Abkürzungen in den Ausdrücken automatisch ersetzt werden, können die üblichen Abkürzungen der Haupttabellen weiterverwendet werden. Wenn allerdings die von der Variable aufgerufene Verarbeitung im aktuellen Datensatz mit Spalten der Haupttabelle oder der Positionstabelle arbeiten muss (was zum Beispiel der Fall ist, wenn die Verarbeitung Datensatzfelder prüft, die eventuell nicht als Argument übergeben wurden), müssen in der Verarbeitung die Abkürzungen [TB0] und [TB1] verwendet werden.
Beispiel: Nach der Referenzierung der Variable 'TVA' in Position 11 der Automatik-Buchung 'PRINC' wird in der Verarbeitung WMGAUPRINC folgender Aufruf generiert:
Call LECTAUX([F:TB0]CPY,[F :TB1]VATLIN,[F:TB0]ACCDAT,[L]VATRAT,STAT) From CPTINIVAR,
wobei TB0 für die Abkürzung der Triggertabelle steht (für die Automatik-Buchung PRINC ist dies die Tabelle PAYMENTH),
wobei TB1 die Abkürzung der 'allgemeinen' Tabelle bezeichnet (Tabelle PAYMENTD),
wobei die Parameter [F:TB0]CPY, [F :TB1]VATLIN, [F:TB0]ACCDAT den Wertparametern entsprechen,
wobei der Parameter [L]VATRAT dem Referenzparameter entspricht
und wobei der Parameter STAT für den Rückgabestatus steht.
Das Unterprogramm, das die Variable auswertet, muss in Einklang mit den beim Aufruf übergebenen Parametern stehen, d. h. das Unterprogramm muss folgende Elemente in folgender Reihenfolge umfassen:
Variablenparameter korrekten Typs, in der Reihenfolge, wie sie bei der Parametrierung der Variable erfasst wurden (char, integer, date oder decimal)
Parameter 'STAT' vom Typ 'integer', mit dem ggf. dem Automatik-Buchungsgenerator ein Rückgabestatus zurückgegeben werden kann. Sollte bei der Auswertung der Variable ein Fehler auftreten (z. B. Lesefehler), der die Anlage der Buchung verhindert, so muss das Unterprogramm die Variable STAT auf den Wert 98 setzen und die globale Variable GMESSAGE mit der entsprechenden Fehlermeldung belegen.
Beispiel: :
Subprog LECTAUX(SOC,TAX,DAT,TAUX,STAT)
Value Char SOC()
Value Char TAX()
Value Date DAT
Variable Decimal TAUX
Variable Integer STAT
If clalev([F:TRA])=0 : Local File TABRATVAT [TRA] : Endif
Filter [TRA] Where CPY=SOC & VAT=TAX & STRDAT<=DAT
Read [TRA]TRA0 Last
If fstat>2
Filter [TRA] Where CPY="" & VAT=TAX & STRDAT<=DAT
Read [TRA]TRA0 Last
If !fstat
TAUX = [F:TRA]VATRAT/100
Endif
Filter [TRA]
Endif
If fstat>2
STAT = 98
GMESSAGE = "Fehler bei der Auswertung des Steuersatzes" - TAX
Endif
End
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Kopf
|
|   |
|
Blocknummer 2
Unterprogramme
|   |
|   |
Tabelle Einstellungen
|   |
|
|   |
|   |
|
Bezeichnung
|   |
Schließen
Mit diesem Button kann der Variablencode einer Automatik-Buchung in einen anderen Ordner kopiert werden. |