none
Ergebnis eines HTML Links im Report anzeigen

    Frage

  • Hallo zusammen.

    Ich hab da eine Idee um ausländische Umsatzsteuer-Identifikationsnummern auf Echtheit überprüfen zu lassen. Nur fehlt mir noch ein Schritt bis zu Vollendung.

    Folgendes:
    Unter (https://evatr.bff-online.de/eVatR/xmlrpc/) kann man anhand der USt-IdNr. das ganze auf Echtheit überprüfen.
    Wir haben im CRM ein Feld mit USt-IdNr. im Report ist das schnell zusammengebaut. Nun werden alle angezeigt die eine USt-IdNr. haben.

    SELECT        name AS Firmenname, new_uid AS UID, new_landidname AS Land
    FROM            FilteredAccount
    WHERE        (new_uid > N'0')

    Unter (https://evatr.bff-online.de/eVatR/xmlrpc/http) wird beschrieben wie man einen HTML Aufruf anhand der USt-IdNr. machen kann.

    Im Report ist das auch schnell zusammen gebaut:

    Ausdruck:
    ="https://evatr.bff-online.de/evatrRPC?UstId_1=DE12345678&UstId_2=" & Fields!UID.Value & "&Firmenname=Mustername&Ort=Musterort&PLZ=Muster_PLZ&Strasse=Musterstrasse&Druck=ja"

    nun habe ich schon einmal den Link zu jeder Firma mit USt.-IdNr. Wenn man den Link aufruft, bekommt man ein Ergebnis. Ist es nun möglich, das Ergebniss in dem Report anzeigen zu lassen?

    Vielen Dank für eure Antworten.

    Gruß Wolfi


    Wolle39


    • Bearbeitet Wolle39 Donnerstag, 13. November 2014 08:38
    Donnerstag, 13. November 2014 08:37

Alle Antworten

  • Moin,

    es ist sinnvoller, die Überprüfung mit einem Plugin durchzuführen, welches nach Änderung der UstID oder Firmenname oder Ort usw. den Web Service aufruft und das Ergebnis in einem separaten Feld im CRM an der Firma speichert.

    Die Überprüfung bei jedem Berichtsaufruf ist unnötig, meine ich. Und so hätte man den Vorteil, dass das Überprüfungs-Ergebnis auch im Formular und Ansichten dargestellt werden kann.

    Gruß

    Donnerstag, 13. November 2014 11:21
  • Hallo.

    Das sehe ich anders. So hat man einen Bericht und alle Firmen werden abgerufen. Die Adressdaten beziehen sich nur auf die Firmenadresse von dem der Anfragt - bleibt also immer gleich. Es wird also nur die USt-IdNr (UID) abgefragt. 

    Von dem mal abgesehen .... mit welchem Plugin könnte dein Vorschlag realisiert werden?

    Danke und Gruß 



    Wolle39

    Donnerstag, 13. November 2014 12:17
  • Nur warum sollten alle Firmen beim Aufruf des Berichts überprüft werden und nicht vorher schon? Ich bin mir nicht mal sicher, ob das überhaupt klappt, wie angedacht. Selbst wenn, dann öffnet man den Bericht mit 50 Firmen, es wird in diesem Moment 50x der Web Service zur Überprüfung aufgerufen und bis der Bericht vollständig am Schirm erscheint, muss der User diese 50 Web Service Aufrufe abwarten?

    Die Prüfung ist meiner Meinung nach ausreichend, sobald die Firma angelegt und/oder die UstID hinterlegt wurde. Evtl. verstehe ich falsch, was du mit "dem der anfragt" meinst.

    Das Plugin müsste zwar selbst entwickelt werden, ist aber kein Riesending (Web Service aufrufen, Ergebnis auslesen, im CRM-Feld speichern).

    Nochmal zu meinem Verständnis, Ablauf wäre:

    - ich lege eine Firma XY in meinem CRM an und vergebe deren UstID
    - ich rufe den Bericht auf, der hat fest hinterlegt meine UstID als Anfragender und die restlichen Parameter für die URL sind die Daten aus der Firma XY

    Donnerstag, 13. November 2014 12:32
  • Weil ca. 2000 Firmenadressen schon angelegt sind.

    Beispiel:
    Im Browser wird dieser Link eingegeben:
    https://evatr.bff-online.de/evatrRPC?UstId_1=DE12345678&UstId_2=IT12345678&Firmenname=Mustername&Ort=Musterort&PLZ=Muster_PLZ&Strasse=Musterstrasse&Druck=ja


    Ergebnis schaut so aus:
    UstId_1 DE12345678 ErrorCode 200 UstId_2 IT12345678 Druck ja Erg_PLZ B Ort Musterort Datum 13.11.2014 PLZ Muster_PLZ Erg_Ort B Uhrzeit 14:31:31 Erg_Name B Gueltig_ab Gueltig_bis Strasse Musterstrasse Firmenname Mustername Erg_Str B

    Der ErrorCode 200 sagt das die UstID gültig ist.

    Somit wären alle Firmen auf einen Schlag überprüft.

    In meinem Fall wäre das die schnellste Lösung. Ich hoffe Du kannst meinem Gedanken nun folgen.


    Wolle39

    Donnerstag, 13. November 2014 13:38
  • Hi,

    ich glaube dennoch, dass das nicht praktikabel ist, selbst wenn die Darstellung des Ergebnisses irgendwie klappt (wüsste aber grad nicht wie, um deine eigentliche Frage zu beantworten).

    Abgesehen von den 2000 Aufrufen an den Web Server, die abgearbeitet und vor allem erfolgreich sein müssen (keine HTTP Error, keine Timeouts), lassen sich die Prüfungs-Ergebnisse im Bericht doch schlecht weiterverarbeiten.

    Ist der Wert im CRM fest an der Firma gespeichert, hast du alle Möglichkeiten der erweiterten Suche, Ansichten und natürlich auch Ausgabe im Bericht.

    Bei 2000 Firmen ist es zwar lästig, aber gerade noch vertretbar, dass man (mindestens) 8 Seiten durchgeklickt, so für je 250 Firmen die Prüfung per Workflow/Plugin startet.

    Donnerstag, 13. November 2014 16:28
  • Hi,

    Die Adressdaten beziehen sich nur auf die Firmenadresse von dem der Anfragt - bleibt also immer gleich.

    Die Adressdaten sind die, die zu der abgefragten UstId gehören. Also ist das nicht die Adresse des Abfragenden. Das würde auch keinerlei Sinn machen.

    Da ich selbst vor kurzem eine Anwendung geschrieben habe, die die eVatR und Vies Webservices für Massenabfragen nutzt, kann ich dir mit Sicherheit sagen, dass die Dienste a) oftmals sehr langsam reagieren, es wird also teils eine erhebliche Zeit dauern, bis die Abfragen durch sind und b) sind die Dienste teils gar nicht erreichbar, so bspw. von 23 bis 5 Uhr. Erfahrungswert für 2000 Abfragen: Zwischen 15 Minuten und 2 Stunden bei sequentieller Abfrage.

    Des öfteren kommt es auch vor, dass die Dienste der einzelnen Länder, die im Hintergrund vom BzSt abgefragt werden, überlastet sind. Dann kommt es auch zu Timeoutfehlern.

    Dazu kommt, dass dir die Abfrage der UstId alleine nicht wirklich was bringt. Durch deine fehlerhafte Übergabe der Adressdaten wird wahrscheinlich auch so gut wie kein Aufruf den Rückgabewert 200 (oder was anderes, was sagt, dass ein Eintrag gültig ist) bringen.

    Neben 200 gibt es noch mehrere andere Antwortcodes, die sagen "ist ok". Daneben solltest Du auch auf die Rückgabewerte der qualifizierten Abfrage achten, die sind wichtig.

    Das aber nur so als Hinweis. Wie man das im CRM einbaut, weiß ich nicht, ich hab das mit .NET gemacht, ist erheblich netter zu handeln. Excel/CSV rein, Verarbeitung, Excel/CSV raus und fertig. Lässt sich auch über eine separate Kommandozeilenanwendung automatisieren.



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community




    Donnerstag, 13. November 2014 20:42
  • Hi,

    Ergebnis schaut so aus:
    UstId_1 DE12345678 ErrorCode 200 UstId_2 IT12345678 Druck ja Erg_PLZ B Ort Musterort Datum 13.11.2014 PLZ Muster_PLZ Erg_Ort B Uhrzeit 14:31:31 Erg_Name B Gueltig_ab Gueltig_bis Strasse Musterstrasse Firmenname Mustername Erg_Str B

    Der ErrorCode 200 sagt das die UstID gültig ist.

    hast Du dir das Ergebnis auch mal im Quelltext angeschaut? Das da oben ist nicht die Rückgabe, die ein Programm empfängt.

    Das ist die Rückgabe :)

    <params>
    <param>
    <value><array><data>
    <value><string>UstId_1</string></value>
    <value><string>DE12345678</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>ErrorCode</string></value>
    <value><string>214</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>UstId_2</string></value>
    <value><string>IT12345678</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Druck</string></value>
    <value><string>nein</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Erg_PLZ</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Ort</string></value>
    <value><string>Musterort</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Datum</string></value>
    <value><string>13.11.2014</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>PLZ</string></value>
    <value><string>Muster_PLZ</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Erg_Ort</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Uhrzeit</string></value>
    <value><string>21:40:11</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Erg_Name</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Gueltig_ab</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Gueltig_bis</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Strasse</string></value>
    <value><string>Musterstrasse</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Firmenname</string></value>
    <value><string>Mustername</string></value>
    </data></array></value>
    </param>
    <param>
    <value><array><data>
    <value><string>Erg_Str</string></value>
    <value><string></string></value>
    </data></array></value>
    </param>
    </params>
    

    Ich glaube nicht, dass deine Idee mit dem Report irgendwas bringt. Wie Matzer J schon gesagt hat: Lass die Daten separat prüfen und schreib das Ergebnis dann mit dem Prüfzeitpunkt in eine Tabelle.

    Denn ganz ehrlich: Dein Report sagt so erstmal gar nichts aus. Für eine ordentliche qualifizierte Prüfung (die man auf jeden Fall insbesondere im Hinblick auf eine evtl. in der Zukunft stattfindende Umsatzsteuerprüfung machen sollte), die auch später verwertbar ist, braucht es mehr als nur den Abruf.

    Kleiner Tipp noch: Bestimmte Zeichen sind vom Dienst überhaupt nicht verarbeitbar und führen zu falschen Ergebnissen (bspw. ° bei französischen Adressen, das wird in der Regel durch o ersetzt, bevor es übermittelt wird, da gibt es aber natürlich noch viele andere problematische Zeichen)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 13. November 2014 20:55
  • Hallo Stefan,

    im CRM ist es so, dass man für solche Dinge ebenfalls ein bisschen NET-Code für den eigentlichen Web Service Call und die Verarbeitung schreibt, was dann z.B. bei Änderung bestimmter Felder (UstID, Firmenname) getriggert wird. Wie man die Antworten letztendlich abspeichert, muss jeder für sich entscheiden. Kann ein Dropdown sein, was wiederum in Listen der Firmen die Möglichkeit gibt, entweder nach Firmen mit nicht verifizierten UstIDs zu filtern oder auch nach denen, die wg. der Sonderzeichen gar nicht erst verarbeitet werden konnten.


    Gruß
    Freitag, 14. November 2014 08:30
  • Hi,

    vielen Dank für die Aufklärung. Wie gesagt, CRM ist nicht wirklich meine Welt.

    Ich hab durch die Gespräche mit den Kunden bei der Entwicklung der UstId Prüfungs Anwendung die Erkenntnis gewonnen, dass es den meisten sehr recht ist, dass sie einfach eine Excel/CSV Datei exportieren, meine Anwendung damit füttern und das Ergebnis dann wieder importieren können.

    Es ist für die meisten Kunden einfacher, solch einen kurzen Export (UstId, ggfs. Kundennummer + Aressdaten) zu erstellen und das Ergebnis wieder zu importieren als selbst irgendwelche Programmierungen vorzunehmen.

    Die interne Verarbeitung, also bspw. Filter über Dropdowns, ... hängt ja nur von den Daten, nicht aber der Art der Datengewinnung ab.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 14. November 2014 10:25