System.ArgumentNullException bei SEPA Lastschrift

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 20.10.2013 - 12:00 Uhr  ·  #1
Hi,

ich hab mir mit FinCmd ein Command gebastelt, um eine SEPA Lastschrift bei meiner Bank einzureichen.

FindCmd.exe sepa -xmlfile sepatest.xml -contactname MyBank -pin MyPin -acctno MyAcct -trace trace.log > out.txt 2> 2out.txt

Mit diesem Kommando und meiner XML Datei bekomme ich aber folgenden Fehler in der Datei 2out.txt

...
HIRMG;0010;"Nachricht entgegengenommen."
HKVVB;0020;"*Dialoginitialisierung erfolgreich"
HKISA;0020;"Bankschlssel sind aktuell."
HKISA;0020;"Bankschlssel sind aktuell."

System.ArgumentNullException: Der Wert darf nicht NULL sein.
bei Subsembly.FinTS.?..ctor(String sStringData)
bei Subsembly.FinTS.?.?(? ?)
bei Subsembly.FinTS.?.?(? ?, ? ?)
bei FinCmd.?.OnCreateOrder(? aService)
bei FinCmd.?.?(? ?, ? ?)
bei FinCmd.?.?(String ?, StringDictionary ?)

Das sieht so aus als wäre die Kommunikation mit der Bank in Ordnung, aber irgendwo passt noch etwas nicht. Leider sagt mir FinCmd nicht ob der Fehler im XML liegt oder sogar in welchem Feld der XML Datei.

Kann mir jemand von euch einen Tipp geben wie ich dem Fehler auf die Schliche komme und ob es eine Möglichkeit gibt ein SEPA XML File auf Richtigkeit zu prüfen?

Vielen Dank im Voraus und Viele Grüße
Andi
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 20.10.2013 - 17:30 Uhr  ·  #2
Hast du mal probiert, noch folgende Parameter zusätzlich anzugeben?
-acctbankcode
-acctcurrency
-bankcode

Ich weiß, dass manchmal in der Help "optional" steht aber einige sind nach meiner Beobachtung trotzdem zwingend nötig.
Bin mir nicht sicher, ob die alle in deinem Kontakt drin stehen.
Ich nutze es immer ohne Kontakt mit den vollständigen Parametern.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 20.10.2013 - 18:43 Uhr  ·  #3
Hi onibanker,

danke für deine Antwort. Ich habe die drei Parameter mal mit eingebaut, allerdings bekomme ich immernoch den Fehler:

System.ArgumentNullException: Der Wert darf nicht NULL sein.
bei Subsembly.FinTS.?..ctor(String sStringData)
bei Subsembly.FinTS.?.?(? ?)
bei Subsembly.FinTS.?.?(? ?, ? ?)
bei FinCmd.?.OnCreateOrder(? aService)
bei FinCmd.?.?(? ?, ? ?)
bei FinCmd.?.?(String ?, StringDictionary ?)

Zudem habe ich gerade noch einmal probiert ein Kommando zu bauen, das ohne den Parameter -contactname auskommt. Leider bekomme ich dann einen Connection Timeout zum Server mit der Fehlermeldung:

IKSYN;9000;"Failed to connect to Server (ConnectFailure)."

Folgende Parameter habe ich mitgegeben:
sepa
-xmlfile
-commaddress "https://hbci01.fiducia.de/cgi-bin/hbciservlet"
-fintsversion 300
-tanprocedure RDH10
-tanmedianame <PFAD_ZUR_SCHLUESSELDATEI>
-acctno <MEINE_KTO>
-acctbankcode <MEINE_BLZ>
-acctcurrency EUR
-bankcode <MEINE_BLZ>
-userid <BENUTZERKENNUNG>
-pin <PASSWORT_ZUR_SCHLUESSELDATEI>

Leider ist in der FintTSCmdUsage.txt der Parameter tanmedianame nicht sehr ausführlich erklärt. Ich schätze mal, dass der für die Schlüsseldatei gedacht ist. Zudem weiß ich nicht genau ob RDH10 ein gültiger Wert für den Parameter tanprocedure ist.

Wäre super, wenn ihr nochmal einen Blick drauf werft und mich wissen lasst wo ich Bockmist gebaut hab, um eventuell das Ding ans Laufen zu bekommen.

Viele Grüße
Andi
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 20.10.2013 - 19:02 Uhr  ·  #4
Bei der Fiducia (und derzeit auch noch bei GAD) brauchst du die -custid zwingend mit dabei, wenn du es ohne contactname machst! Die Volksbanken wollen immer drei Felder bei der Anmeldung haben. Also Anmeldename, Benutzerkennung und PIN (bei PIN/TAN zumindest).
Und der Parameter -tanmedianame ist die Telefonbezeichnung. Also nur bei Mobile TAN zu verwenden.
Wenn du mit Unteschriftsdatei arbeitest, geht das anders. Da kann ich aber leider nicht helfen, das weiß ich nicht.

Ansonsten zeig doch mal das Trace, falls eines erzeugt wurde. Sonst mal den Parameter -trace [dateiname] hinzufügen

Ich überlege gerade.
Zitat
Der Bankzugang muss auf eine der folgenden Arten angegeben werden:
a) Parameter -contactfile mit dem Dateinamen des gespeicherten
Bankzugangs; b) Parameter -contactname mit dem Namen des Bankzugangs;
oder c) die kompletten PIN/TAN Zugangsdaten (Eine genaue Beschreibung
der Parameter finden Sie weiter unten):


Wenn ich das korrekt interpretiere, kann man ohne contactname nur arbeiten, wenn es sich um ein PIN/TAN Verfahren handelt.
Da Du mit Unterschriftsdatei unterwegs bist geht es vermutlich nur mit contactname. Und über den Subsembly FinTS Admin müsstest du alles einstellen können.

Hast du parallel auch mTAN oder Chiptan bei der selben Bank zum testen?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4446
Dabei seit: 11 / 2004
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 08:31 Uhr  ·  #5
Hallo, ja beim RDH-Verfahren muss man zwingend mit einem im FinAdmin vorgefertigten Bankkontakt arbeiten.

Die Parameter -acctbankcode -acctcurrency -bankcode sind nur fallweise optional. Ein -bankcode ist nur erforderlich wenn man die PIN/TAN-Zugangsdaten alle auf der Kommandozeile angibt. Andernfalls wird der Parameter sogar ignoriert und die BLZ aus dem angegebenen Bankkontakt verwendet. Ein -acctbankcode muss nur dann angegeben werden, wenn die BLZ des Kontos von der BLZ im Bankkontakt abweicht. Ein -acctcurrency wird nur benötigt, wenn die Kontowährung nicht "EUR" ist.


Die Ursache des Fehlers könnte sein, dass die Bank das von Dir vorbereitete SEPA-Format nicht unterstützt. Welches SEPA Pain-Format willst Du denn bei welcher Bank einreichen?
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 10:01 Uhr  ·  #6
Hallo Adreas,

Der Anfang meiner SEPA XML Datei sieht so aus:
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">

Gibt es irgendwo eine Liste in der man sehen kann welches SEPA Pain-Format welche Bank unterstützt?

Im FinTS Admin habe ich mein Konto angelegt und der Sync der Unterkonten hat auch super geklappt, das sollte also tun.

Stehen im Trace kritische Daten, die man nicht veröffentlichen sollte? Sonst würde ich den Trace hier auch nochmal reinposten.

Viele Grüße
Andi
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 11:03 Uhr  ·  #7
Oha, wieder was gelernt, das kam mir bisher noch nicht unter. Es gibt unterschiedliche Funktionen, die man mit SEPA XML ausführen kann, die wichtigsten werden wohl diese sein:

pain.001 SEPA Überweisung (SCT, SEPA Credit Transfer, SEPA-CT)
pain.008 SEPA Lastschrift (SDD, SEPA Direct Debit, SEPA-DD)

Die Infos hab ich von da: http://www.hettwer-beratung.de…ichtentyp/

Ich will ja eine Lastschrift generieren, d.h. ich brauche pain.008 statt pain.001. Mit den Feldern Variante und Version kann ich bisher leider noch nicht viel anfangen, da muss ich mich mal noch weiter einlesen und weiter testen.

Gruß
Andi
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 11:30 Uhr  ·  #8
Das heißt, du bastelst die XML Datei selbst zusammen?
Da gibt es bei Lastschriften haufenweise Dinge, die beachtet werden müssen. Ist die Mandatsverwaltung schon fertig?
Im Trace brauchst du nur nach der Bankrückmeldung schauen. Nicht komplett hier posten.
Füge mal dem Aufruf ein 2>protokoll.txt hinzu.
Das schreibt ein HBCI Protokoll, also die komprimierten Meldungen.
Die kannst du hier mal zeigen.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 11:53 Uhr  ·  #9
Es geht in die nächste Runde. Ich habe jetzt eine SEPA XML mit folgendem PAIN Format erstellt:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02 pain.008.003.02.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Nachdem ich rausgefunden, dass es CtrlSum statt ControlSum heißen muss bekomme ich jetzt wieder den selben Fehler wie vorhin:

HIRMG;0010;"Nachricht entgegengenommen."
HKVVB;0020;"*Dialoginitialisierung erfolgreich"
HKISA;0020;"Bankschlssel sind aktuell."
HKISA;0020;"Bankschlssel sind aktuell."

System.ArgumentNullException: Der Wert darf nicht NULL sein.
bei Subsembly.FinTS.?..ctor(String sStringData)
bei Subsembly.FinTS.?.?(? ?)
bei Subsembly.FinTS.?.?(? ?, ? ?)
bei FinCmd.?.OnCreateOrder(? aService)
bei FinCmd.?.?(? ?, ? ?)
bei FinCmd.?.?(String ?, StringDictionary ?)

Das ist der Auszug des Fehlers, den ich mit 2> umgeleitet habe.

Leider sagt mir FinCmd.exe nicht welcher Wert hier nicht NULL sein darf. Kann ich das in irgendeiner Weise weiter einschränken oder könnt ihr mir sagen ob VRBanken diese Version des PAIN annehmen?

Viele Grüße
Andi

EDIT:
P.S.: onlbanker, ich hab deinen Beitrag erst gerade gesehen.

Ich bastel die XML Dateien mehr oder weniger selbst. Ich nutze bisher noch vorgefertigte PHP Klassen, die ich nach und nach meinen Anforderungen anpasse. Die Mandatsverwaltung feile ich aktuell noch aus. Bisher steht aber schon mein Formular für die Kunden mit allen Informationen. Ich muss mir noch die Verwaltung basteln, um zu wissen wann die erste und die letzte Abbuchung für einen Kunden läuft, sodass daraus dann die korrekten Lastschriften generiert werden können, aber die Verwaltung der Bankdaten inkl. IBAN und BIC ist bereits im System. Das kommt alles nach und nach. Ich muss mich eben einlesen und hoffe hier und da auf eure Unterstützung, wenn's hakt wie hier gerade bei meiner ersten automatisierten Testlastschrift.
Benutzer
Avatar
Geschlecht:
Herkunft: links unten
Alter: 40
Homepage: fides.ch
Beiträge: 1170
Dabei seit: 03 / 2008
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 12:09 Uhr  ·  #10
Zitat
eider sagt mir FinCmd.exe nicht welcher Wert hier nicht NULL sein darf. Kann ich das in irgendeiner Weise weiter einschränken oder könnt ihr mir sagen ob VRBanken diese Version des PAIN annehmen?

die pain version 008.003.02 ist erst ab dem 04.11.2013 gültig, vr-banken nehmen diese auch erst ab diesem zeitpunkt entgegen.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 12:14 Uhr  ·  #11
Hi problem7,

danke für die Info. Ich hab die pain Version auf 008.002.02 gestellt und siehe da:

HIRMG;0010;"Nachricht entgegengenommen."
HKVVB;0020;"*Dialoginitialisierung erfolgreich"
HKISA;0020;"Bankschlssel sind aktuell."
HKISA;0020;"Bankschlssel sind aktuell."
HIRMG;0010;"Nachricht entgegengenommen."
HKDSE;0020;"*SEPA-Lastschrift erfolgreich"

Das sieht schonmal nicht ganz schlecht aus. Jetzt muss ich mal schauen was ich da gerade auf meinen Konten hin und her geschoben hab und ob alle Randinformationen passen.

Damit kann ich jetzt aber auf jeden Fall mal weiter basteln.

Vielen Dank!
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4446
Dabei seit: 11 / 2004
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 14:51 Uhr  ·  #12
Hallo,

welche Pain-Formate die Bank unterstützt sieht man im HISPAS-Segment in den BPD der Bank. Bei der Fiducia sind das

pain.001.001.02
pain.001.002.02
pain.001.002.03
pain.008.002.01
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8
Dabei seit: 10 / 2013
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 14:53 Uhr  ·  #13
Hallo,

zum Verständnis nochmal:

pain.001.001.02
pain.001.002.02
pain.001.002.03

Sind alles SEPA-Überweisungen, aber eben in unterschiedlichen Versionen

pain.008.002.01

Ist die SEPA Basis Lastschrift.

Ist das so korrekt?

Gruß
Andi
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4446
Dabei seit: 11 / 2004
Betreff:

Re: System.ArgumentNullException bei SEPA Lastschrift

 · 
Gepostet: 21.10.2013 - 16:14 Uhr  ·  #14
Ja, das letzte ist eine SEPA-Lastschrift - egal ob Basis oder Firmenlastschrift, das wird erst im Inhalt der Datei festgelegt.
Gewählte Zitate für Mehrfachzitierung:   0