Seite 1 von 1

XML-Schnittstelle nutzen? [ERLEDIGT]

Verfasst: Fr, 25. Mai 2018 9:08
von vorti
Hallo,
ich würde gerne ein kleines Tool schreiben um die Ust-Id zu prüfen.
Auf dieser Seite wird dazu eine Schnitstelle angeboten: https://evatr.bff-online.de/eVatR/xmlrpc/

Ich stell es mir in etwa so vor:
Eingabemaske: Prüfdaten eingeben -> Senden -> Antwort in eine neue Maske übergeben.

Leider reichen meine Kenntnisse dazu nicht aus.
Die Anfrage funktioniert über einen HTTP - Aufruf, gibt es da ne Funktion?
Wenn ja, wie werte ich die Antwort dann aus?
Ist das mit Xbase++ realisierbar.

Vielen Dank für eure Hilfe

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 9:28
von Jan
Ich arbeite mit der Abfrage beim BFF. Klappt sehr gut. Wobei ich mir das einfach mache und die Abfrage per LaodFromUrl() abschicke. Und die XML, die ich zurück bekomme, nicht mit den Alaska-XML-Funktionen auseinander brösele. Die ist extrem simpel aufgebaut, die arbeite ich deswegen mit einer einfachen String-Verarbeitung ab. Die gesamte Funktion hat gerade mal 80 Codezeilen (inkl. Leerzeilen, Schleifen, Zeilenumbrüch für bessere Lesbarkeit, etc.)

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:07
von vorti
Danke für die Antwort.
Also wenn ich das richtig verstanden habe sende ich einfach die Anfrage mit
< LoadFromUrl( cUrl ) >
und die Antwort speicher ich dann als String mit
< cAntwort := GetCgiString(LoadFromUrl( cUrl )) > ?

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:30
von brandelh
NEIN - die Funktion GetCgiString() ist für einen anderen Zweck gedacht.
Wenn z.B. eine Browserzeile reichen würde: "www.gibmirInfo.de/Info"
um den Text
<html>Hallo Welt</html>
im Browser angezeigt zu bekommen (also dort sähe man nur "Hallo Welt"), dann wird mit ...

cAntwort := LoadFromUrl("http://www.gibmitInfo.de/Info")

der Browseraufruf umgesetzt, und in cAntwort ist ...

cAntwort == "<html>Hallo Welt</html>"

bei JANs aufruf kommt dort eben die XML Daten raus, wobei ich nun nicht weiß, wie man dein Aufruf für euch umsetzen muss.
Diese cAnwort wird dann zerlegt, entweder mit substr() oder bei XML z.B. auch mit den neuen XML Klassen in Xbase 2.0

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:31
von Jan
Vorti,

das hier schicke ich:

Code: Alles auswählen

Rueckgabe := LoadFromUrl("https://evatr.bff-online.de/evatrRPC" + ;                               // Die URL zur Abfrage
                         "?UstId_1=[Deine ustID]" + ;                                             // Unsere UstID
                         "&UstId_2=" + Alltrim(cUstid) + ;                                        // Die UstID des Kunden
                         "&Firmenname=" + AllTrim(entferneUmlaute(cName)) + ;                     // Der Firmenname des Kunden, auf den die UstID ausgestellt ist
                         "&Ort=" + Alltrim(entferneUmlaute(cOrt)) + ;                             // Ort der IstID-Firma
                         "&PLZ=" + Alltrim(cPlz) +  ;                                             // PLZ der UstID-Firma
                         "&Strasse=" + AllTrim(entferneUmlaute(cStrasse)) + ;                     // Straße der UstID-Firma
                         "&Druck=")                                                               // Amtliche Bestätigung leer = Keine anfordern
Und cRueckgabe mußt Du dann halt entsprechend auswerten.

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:32
von brandelh
wirklich schade, dass die kein Beispiel zum Üben anbieten, z.B. Herrn Mustermann ...

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:40
von Jan
Musteranfragen sind normale scharfe Anfragen. da das nichts kostet, nichts protokolliert wird, ist das vollkommen egal.

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:51
von Jan
Noch was: Wir haben immer wieder Ärger mit Kunden die sagen: Das, was ich Ihnen gegeben habe ist meine korrekte Firmierung und Anschrift. Was die Rückgabe der Abfrage ist ist falsch. Gerade Österreicher geben in der UstID-Anmeldung gerne ihre Privatnamen an statt die Firma.

Das muß mir aber vollkommen egal sein. Wenn das, was der Kunde mir als Rechnungsanschrift angibt, nicht mit dem übereinstimmt, was seine Registrierungsstelle über ihn gespeichert hat, dann darf ich ihm das nicht auf Basis dieser UstID senden. Denn wenn sein Finanzamt mal irgendwann die Rechnung prüft und feststellt, das die auf Basis falscher Daten erstellt worden ist, dann bin ICH dran!

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:55
von brandelh
Jan hat geschrieben: Fr, 25. Mai 2018 10:40 Musteranfragen sind normale scharfe Anfragen. da das nichts kostet, nichts protokolliert wird, ist das vollkommen egal.
Jan
Aber für einen Test, müsste ich ja eine konkrete Adresse wissen und woher soll ich mir jetzt eine ausdenken ;-)

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 10:57
von brandelh
entferneUmlaute(cName)

wird hier "ü" => "u" oder "ue" übersetzt ?

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 11:19
von Jan
Hubert,

"ue". Und "ß"->"ss"

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 11:22
von Jan
Hubert,

nimm Dir für einen Test einfach irgend eine österreichisch, französische, was auch immer Anschrift, zu der es eine UstID gibt. Ja, ist mir schon klar, woher nehmen. Muß man umständlich im Netz suchen, wenn man keine aktuellen Kunden in der Datenbank mit solchen Daten stehen hat. Aber das BFS hat das halt so geregelt. da kann man sich auf den Kopf stellen, da kommt man nicht dran vorbei.

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 12:16
von brandelh
Ich brauche es ja nicht ;-)

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 14:20
von vorti
Hallo Jan,
wie hast du das mit den Firmennamen gelöst.
Wenn ich die Firma unter den Namen "Musterfirma" suchen lasse, diese jedoch als "Musterfirma XY" eingetragen ist bei denen, stimmt sie ja bereits nicht mehr überein.

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 14:40
von Jan
Prinzipiell muß das schon übereinstimmen. Allerdings ist der Vergleich beim BFF da etwas flexibel. Wenn z. B. der Firmenname aus mehreren Worten besteht, und bei der Anfrage das letzte fehlt, klappt das trotzdem meistens. Die schreiben in der Doku zur Schnittstelle, das die flexibel sind, aber dem Anwender nicht erklären, in wie fern. Was dann schon irgendwie nachvollziehbar ist.

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 15:22
von Werner_Bayern
Servus,

wir nutzen dazu

Code: Alles auswählen

http://ec.europa.eu/taxation_customs/vies/services/checkVatService
Das offizielle Auskunftssystem der EU mit XML-Schnittstelle.

http://ec.europa.eu/taxation_customs/vies/

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 15:27
von Jan
Werner,

über den Weg, der oben beschrieben ist, kannst Du die aber aus Deinem Programm heraus abfragen und das Resultat intern entsprechend automatisch verarbeiten. Die Anfrage geht zwar an die deutsche Behörde, aber die holt sich dann die Daten bei den angeschlossenen ausländischen Behörden ab. Trotzdem läuft das nahezu verzögerungsfrei ab.

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 25. Mai 2018 16:53
von Werner_Bayern
Servus Jan,

das ist hier auch der Fall, nur dass es die EU ist und die dann bei Bedarf auch automatisch über die Länder geht. Zurück kommt ein XML-String.

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 01. Jun 2018 9:26
von Jan
Vorti,

bist Du da weiter gekommen?

Jan

Re: XML-Schnittstelle nutzen?

Verfasst: Fr, 01. Jun 2018 14:49
von vorti
Ja, danke. Funktioniert super