[gelöst] USt.-VA bzw. Elster-Übertragung Hinweis/Warnung
Verfasst: 11. Februar 2015 14:40
Die USt.-VA bzw. Elster-Übertragung funktioniert derzeit mit Dynamics NAV nur sporadisch. Das liegt daran, dass die im Elster Transfer Handler fest hinterlegten IP-Adressen nur noch teilweise gültig sind.
Von obigen IP-Adressen sind derzeit nur noch die 62.* aktiv, sollen aber zukünftig ebenfalls abgeschaltet werden. Da der Elster Transfer Handler die Adresse jeweils "zufällig" ermittelt, tritt regelmäßig ein Übertragungsfehler auf (2200), wenn einer der letzten Server verwendet werden soll.
Laut Entwicklerforum der Steuerbehörde sollen zukünftig (eigentlich seit Mitte Januar) nur noch die folgenden Server für Übermittlungen verwendet werden:
Dazu muss der Elster Transfer Handler angepasst werden. Das habe ich bereits bei Microsoft eingekippt.
Jetzt sind wir in der Situation, dass dieses "neue Feature" aufgrund des Mainstream-Support-Endes für den Classic Client (2009), möglicherweise nicht mehr implementiert wird. Dazu bekomme ich aber noch ein Feedback, wir werden sehen.
Eine DLL für die Versionen ab 2013 wird sicherlich in nächster Zeit folgen. Sollte sich bewahrheiten, dass Microsoft diese Anpassung nur für aktuell im Mainstream-Support befindliche Versionen durchführt (meiner Meinung nach wahrscheinlich (und korrekt)), dann muss für alte Versionen ein COM-Wrapper entwickelt werden, der vom Dynamics NAV Classic Client aus aufrufbar ist und die Aufrufe durchreicht.
Wen das jetzt schon nervt, oder befürchtet, dass auch die letzten 2 IP-Adressen bald abgeschaltet werden, der kann die neuen Adressen faken (vorsicht, nicht getestet, Bestätigung erwünscht). Code für 2013+, sollte aber mit kleinen Anpassungen auch unter 2009 R2 RTC funktionieren:
- http://62.157.211.58:80/Elster2/EMS
- http://62.157.211.59:80/Elster2/EMS
- http://193.109.238.26:80/Elster2/EMS
- http://193.109.238.27:80/Elster2/EMS
Von obigen IP-Adressen sind derzeit nur noch die 62.* aktiv, sollen aber zukünftig ebenfalls abgeschaltet werden. Da der Elster Transfer Handler die Adresse jeweils "zufällig" ermittelt, tritt regelmäßig ein Übertragungsfehler auf (2200), wenn einer der letzten Server verwendet werden soll.
Laut Entwicklerforum der Steuerbehörde sollen zukünftig (eigentlich seit Mitte Januar) nur noch die folgenden Server für Übermittlungen verwendet werden:
- http://datenannahme1.elster.de/Elster2/EMS
- http://datenannahme2.elster.de/Elster2/EMS
- http://datenannahme3.elster.de/Elster2/EMS
- http://datenannahme4.elster.de/Elster2/EMS
Dazu muss der Elster Transfer Handler angepasst werden. Das habe ich bereits bei Microsoft eingekippt.
Jetzt sind wir in der Situation, dass dieses "neue Feature" aufgrund des Mainstream-Support-Endes für den Classic Client (2009), möglicherweise nicht mehr implementiert wird. Dazu bekomme ich aber noch ein Feedback, wir werden sehen.
Eine DLL für die Versionen ab 2013 wird sicherlich in nächster Zeit folgen. Sollte sich bewahrheiten, dass Microsoft diese Anpassung nur für aktuell im Mainstream-Support befindliche Versionen durchführt (meiner Meinung nach wahrscheinlich (und korrekt)), dann muss für alte Versionen ein COM-Wrapper entwickelt werden, der vom Dynamics NAV Classic Client aus aufrufbar ist und die Aufrufe durchreicht.
Wen das jetzt schon nervt, oder befürchtet, dass auch die letzten 2 IP-Adressen bald abgeschaltet werden, der kann die neuen Adressen faken (vorsicht, nicht getestet, Bestätigung erwünscht). Code für 2013+, sollte aber mit kleinen Anpassungen auch unter 2009 R2 RTC funktionieren:
- Code:
LOCAL PROCEDURE FakeNewServerList@50002();
VAR
ElsterTransferHandlerNavision@50008 : DotNet "'Microsoft.Dynamics.ElsterTransferHandler, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.Microsoft.Dynamics.ElsterTransferHandler.ExternalCommunication" RUNONCLIENT;
DotNetType@50003 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Type" RUNONCLIENT;
BindingFlags@50002 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Reflection.BindingFlags" RUNONCLIENT;
FieldInfo@50001 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Reflection.FieldInfo" RUNONCLIENT;
ElsterServerArray@50005 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Array";
BEGIN
IF ISNULL(ElsterTransferHandlerNavision) THEN
ElsterTransferHandlerNavision := ElsterTransferHandlerNavision.ExternalCommunication;
DotNetType := DotNetType.GetType('System.String', FALSE);
ElsterServerArray := ElsterServerArray.CreateInstance(DotNetType, 4);
ElsterServerArray.SetValue('http://datenannahme1.elster.de/Elster2/EMS', 0);
ElsterServerArray.SetValue('http://datenannahme2.elster.de/Elster2/EMS', 1);
ElsterServerArray.SetValue('http://datenannahme3.elster.de/Elster2/EMS', 2);
ElsterServerArray.SetValue('http://datenannahme4.elster.de/Elster2/EMS', 3);
BindingFlags := 40; // Static | Private
DotNetType := ElsterTransferHandlerNavision.GetType();
FieldInfo := DotNetType.GetField('listHTTPSERVER', BindingFlags);
FieldInfo.SetValue(ElsterTransferHandlerNavision, ElsterServerArray);
// Send document here…
END;