19. Dezember 2024XML verarbeiten mittels "deserialize from Xml" Action

FSBs überprüfen - programmatisch und automatisch

Platzhalterbild für eine:n Autor:in
Anführungszeichen IconAnführungszeichen Icon
Thomas Hauling
Workflow itwo

In diesem Artikel zeige ich, wie die Gültigkeit von Freistellungsbeschreibungen (FSBs) mithilfe der EIBE-Schnittstelle des Bundeszentralamts für Steuern (BZSt) überprüft werden kann.

Aufruf der EIBE-Schnittstelle

Die EIBE-Schnittstelle wird über eine URL aufgerufen, die die notwendigen Parameter enthält. Ein Beispiel für eine solche URL lautet:

eibe.bff-online.de/eibe/eibeRPC?user=Benutzername&key=Passwort&stnr=123/4567/8910&sinr=12345678&land=50

In dieser URL müssen die Platzhalter Benutzername, Passwort, stnr (Steuernummer), sinr (Steuer-Identifikationsnummer) und land (Ländercode) durch die entsprechenden Werte ersetzt werden.

Fehlerhafte Datensätze

Ein fehlerhafter Datensatz kann beispielsweise so aussehen:

<params>
  <param>
    <value>
      <struct>
        <member>
          <name>fehler_code</name>
          <value>
            <string>Ihre Benutzerkennung ist gesperrt. Bitte kontaktieren Sie das BZSt, um Ihr Konto wieder freizuschalten.</string>
          </value>
        </member>
      </struct>
    </value>
  </param>
</params>

In diesem Fall enthält der Datensatz einen Fehlercode, der darauf hinweist, dass die Benutzerkennung gesperrt ist.

Erfolgreicher Login und Verarbeitung der Daten

Ein erfolgreicher Login erzeugt einen XML-String, der ein struct-Element enthält. Mithilfe der "Deserialize from XML"-Aktion in iTWO 4.0 kann dieser XML-String in ein JavaScript-Objekt konvertiert werden. Das resultierende Objekt enthält den entsprechenden Schlüssel struct.

Überprüfung der Gültigkeit der FSB

Die Gültigkeit der FSB kann anhand der folgenden Logik überprüft werden:

if ('struct' in Context.eibeXml) {

  // Überprüfen, ob der Datensatz gefunden wurde
  Context.fsbAvailable = Context.eibeXml.params.param[1].value.array.data.value[1].string === 'Datensatz gefunden.';

  // Ablaufdatum des Datensatzes in ein lesbares Datum umwandeln
  Context.fsbExpirationDate = new Date(Context.eibeXml.params.param[6].value.array.data.value[1].string).toLocaleDateString();

  // Ablaufdatum in ein numerisches Format umwandeln (YYYYMMDD)
  Context.fsbExpirationComputeDate = Number(new Date(Context.eibeXml.params.param[6].value.array.data.value[1].string).toISOString().substring(0, 10).replaceAll('-',''));

  // Aktuelles Datum in ein numerisches Format umwandeln (YYYYMMDD)
  Context.nowDate =  Number(new Date().toISOString().substring(0, 10).replaceAll('-',''));

  // Überprüfen, ob das Ablaufdatum in der Zukunft liegt
  Context.fsbValid =  Context.fsbExpirationComputeDate > Context.nowDate;

  // Context.endWf = false, wenn der Datensatz gültig ist. Der Status wird per "Status Wechseln" Action aus "abgelaufen" gesetzt
  Context.endWf = Context.fsbValid;

} else {
  // Workflow ohne Statuswechsel beenden, wenn keine Struktur gefunden wurde
  Context.endWf = true;
}

Erklärung der Logik

  • Prüfung auf struct:

    • Zuerst wird überprüft, ob das struct-Element im XML-Objekt vorhanden ist.

  • Verfügbarkeit der FSB:

    • Die Verfügbarkeit der FSB wird anhand des Werts im XML-Objekt überprüft. Wenn der Wert Datensatz gefunden. lautet, ist die FSB verfügbar.

  • Ablaufdatum der FSB:

    • Das Ablaufdatum der FSB wird aus dem XML-Objekt extrahiert und in ein lesbares Datumsformat konvertiert.

  • Berechnung des Ablaufdatums:

    • Das Ablaufdatum wird in eine numerische Form umgewandelt, um es mit dem aktuellen Datum zu vergleichen.

  • Gültigkeitsprüfung:

    • Die Gültigkeit der FSB wird überprüft, indem das Ablaufdatum mit dem aktuellen Datum verglichen wird. Wenn das Ablaufdatum in der Zukunft liegt, ist die FSB gültig.

  • Workflow-Ende:

    • Der Workflow wird basierend auf der Gültigkeit der FSB beendet.

Zusammenfassung

Die EIBE-Schnittstelle des BZSt bietet eine effiziente Möglichkeit, die Gültigkeit von Freistellungsbeschreibungen zu überprüfen. Die XML Response kann in ITWO 4.0 per "XML From XML" zu einem JS Objekt konvertiert werden. Durch die Implementierung der oben beschriebenen Logik in iTWO 4.0 kann sichergestellt werden, dass nur gültige FSBs verwendet werden und abgelaufene FSBs entsprechend gekennzeichnet werden.