Alle Banken liefern ein VWZ-Feld mit 140 Zeichen, ggf. mit Zeilenumbrüchen bzw. die HBCI-Schnittstelle addiert ggf. nach jeweils 28 Zeichen einen Zeilenumbruch.
Dh. ZiffernKolonnen werden an willkürlicher ZifferPosition umgebrochen (ggf. ZeilentauschRegel erzeugt damit fehlerhaftes Durcheinander).
Man kann in einer Regel nur pro VWZ-Zeile einen Zeichenkette identifizieren, aber nicht über mehrere/alle Zeilen, dh. wenn man nach einer - ggf. umgebrochenen - ZiffernKolonne sucht, wird diese nicht gefunden.
WisoMG sollte:
1.1) aus dem VWZ beim Einlesen ggf. sämtliche enthaltenen Zeilenumbrüche entfernen.
1.2) ein VWZ-Ziel-Feld bereitstellen welches länger, also zB. 2000 Zeichen lang ist (hiermit kann bei der ErsetzungsRegel die Warnung entfernt werden, dass beim Ersetzen ggf. die Feldlänge überschritten wird; Regeln sind dann weniger fehleranfällig=zuverlässiger/sicherer/korrekter).
1.3) im Frontend beim Editieren keine max.Zeilenlänge (28Zeichen) mehr erzwingen (das Feld wird ja nie wieder an die Bank zurückgesendet und soll nach dem Einlesen für den Anwender frei editierbar und TextErsetzRegel-bar sein mit viel Platz)
1.4) die Wiso-Regel sollte ein Steuerungszeichen bereitstellen, welches dem Anwender ermöglicht zB. TextErsetzen "SVWZ+ " ----- durch -----> Chr(13) & "SVWZ+") wobei Chr(13) für Zeilenumbruch steht.
ProgrammierPseudoCode: update Buchung set Verwendungszweck1bis8 = replace([Verwendungszweck1bis8], Chr(13), "");
Resultat:
der Anwender kann sich endlich eine funktionnierende Regeln erstellen (aktuell taugen die Regeln nix, weil man keine Möglichkeit geben nach etwas zu suchen (es wäre ja zufällig dass die Zeichenkette in einer Zeile steht und eben nicht umgebrochen wurde "in EINER VWZ-Zeile einen bestimmten Text enthält").
Empfänger:
WisoMG sollte:
2.1) den Empfänger grundsätzlich immer in Großbuchstaben wandeln, und Umlaute ersetzen (dito "ß" --- durch "SS").
(nicht im Verwendungszewck, ausschließlich im Empfänger!)
ProgrammierPseudoCode:
update Buchung set Empfänger = upper([Empfänger]);
update Buchung set Empfänger = replace([Empfänger], "Ä", "AE");
update Buchung set Empfänger = replace([Empfänger], "Ö", "OE");
update Buchung set Empfänger = replace([Empfänger], "Ü", "UE");
update Buchung set Empfänger = replace([Empfänger], "ß", "SS");
update Buchung set Empfänger = replace([Empfänger], " ", " ");
update Buchung set Empfänger = replace([Empfänger], " ", " ");
update Buchung set Empfänger = replace([Empfänger], " ", " ");
update Buchung set Empfänger = replace([Empfänger], " ", " ");
update Buchung set Empfänger = replace([Empfänger], " ", " ");
dh. 2 aufeinanderfolgende Leerzeichen durch 1Leerzeichen ersetzen (mehrmals, sodass der Anwender einigermaßen sicher davon ausgehen kann dass er nicht viele Varianten mit mehreren Leerzeichen in seinen Regeln detektieren muss, denn der Absender/Bank trägt ggf. auch Mal mehrere Leerzeichen ein, es ist ein vom Überweisenden frei editierbares Feld welches nicht zwingend mit dem Kto-Inhaber übereinstimmen muss, zB. schreibt die netbank manchmal in den Empfänger(bzw.Auftraggeber): "Scheckeinlieferung" statt "NETBANK").
Resultat: Der Anwender kann (er hat ggf. mehrere Banken, welche ggf. unterschiedlich bereitstellen) ohne über die Bank nachzudenken sich Regeln auf den Empfänger einfacher machen.