cimerp:0140_workflow:0080_workflow_beispiele:0040_beispiel_pruefung_uid_rest_api
Inhaltsverzeichnis
Workflow - Prüfung der Umsatzsteuer ID Nummer des Kunden/Lieferanten via REST-API
Das folgende Beispiel beschreibt die automatisierte Prüfung der Umsatzsteuer bei Speichern eines Kunden-/Lieferantenstammsatzes.
ACHTUNG: Ab dem 30.11.2025 ist die alte XML-RPC-Schnittstelle des Bundeszentralamt für Steuern (BZSt) nicht mehr verfügbar und es steht nur noch die neue REST-API zur Verfügung.
Hierzu wurde eine neue Funktion implementiert, die sehr ähnlich zur bestehenden Bestätigungsabfrage agiert.
HINWEIS: Sollte es zu Störungen der API kommen, können Sie dies unter folgendem Link einsehen:
https://www.bzst.de/DE/Unternehmen/Identifikationsnummern/Umsatzsteuer-Identifikationsnummer/eVatR/eVatR_node.html
Umsetzung
Definition Workflow
Formel
WICHTIG: Hier neuer Prozeduraufruf mit anderen Parametern.
Erläuterung der Parameter unterhalb.
declare
retcode = integer not null with default,
result = varchar(2000) not null with default,
terminal_id = varchar(50) not null with default,
enddeclare
begin
callproc cdpr3_GenerateWorktableID(byref(terminal_id));
ResultString = 'Überprüfung UST-Identnummer zu Kunde: ' + text(ikey1) + HC_NEWLINE;
// Prozedur kann periodisch in Schleife, für einen Massenlauf, aufgerufen werden
retcode = cdwpr4_check_ustident_api(strResult = byref(result),
pKundenNr = ikey1,
iNameDepth = 1,
pIdentNummer = '',
pFirmenname = '',
pFirmenname2 = '',
pFirmenname3 = '',
bDebugApiOutput = false,
bProtokoll = true,
bTestAufruf = false,
pTerminalId = terminal_id,
bCheckStammNr = false,
pStammNr = '',
bQualifizierteAnfr = true,
// Nur wichtig wenn bQualifizierteAnfr = true übergeben wurde
pStrPlz = '',
pOrt = '',
pStrasse = '',
bStrictName = false,
bStrictPlace = false,
bStrictPostCode = false,
bStrictStreet = false
);
ResultString = ResultString + result;
//message ResultString;
if retCode <0 then
return true; // Fehler
else
return true; // in Ordnung
endif;
end
Erläuterung Parameter
| Name Parameter | Art d. Variable | Beschreibung |
| strResult | alphanummerisch - maximal 256 Zeichen | Auswertbarer Rückgabewert, z.B. „Die angefragte Ust-IdNr. ist zum Anfragezeitpunkt gültig.“ |
| pKundenNr | nummerisch - Ganzzahl | Kunden-Nr. - Wichtig, wenn nicht gesetzt, funktioniert Aufruf nicht |
| pIdentNummer | alphanummerisch - maximal 16 Zeichen | Angefragte Ust.-Ident - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. |
| iNameDepth | nummerisch (Nur Werte 1-3 erlaubt, 1 = default) | Wenn Prüfung auf name_zeile1 fehlschlägt wird bei iNameDepth = 2 auf name_zeile1 + name_zeile2 geprüft |
| pFirmenname | alphanummerisch - maximal 64 Zeichen | Name Zeile 1 des Kunden - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. |
| pFirmenname2 | alphanummerisch - maximal 64 Zeichen | Name Zeile 2 des Kunden (Nur relevant wenn iNameDepth min. 2 - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. |
| pFirmenname3 | alphanummerisch - maximal 64 Zeichen | Name Zeile 3 des Kunden (Nur relevant wenn iNameDepth min. 3 - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. |
| bDebugApiOutput | boolean (true/false) | Aktivierung Debugausgaben in Log-Datei zusätzlich wird eine Datei im w4glerrors-Ordner erzeugt, mit der rohen Rückgabe des API-Aufrufs |
| bProtokoll | boolean (true/false) | Aktivierung Protokollierung in Protokolltabelle sta_ustident_protokoll anhand Terminal-ID |
| bTestAufruf | boolean (true/false) | Wenn true verwendet vom BZSt. vergebene Dummy-Daten zur Prüfung der Funktionalität der API |
| pTerminalId | alphanummerisch - maximal 64 Zeichen | Terminal-ID für Protokolltabelle - Wird autom. erzeugt wenn nicht vergeben und bProtokoll mit true übergeben wurde |
| bCheckStammNr | boolean (true/false) | Wenn true, wird bei fehlgeschlagener Prüfung des Kunden die im Kundenstamm hinterlegte Stamm-Nr. verwendet |
| pStammNr | nummerisch - Ganzzahl | Wenn bCheckStammNr = true wird diese anstatt der Kunden-Nr. verwendet, sollte die Prüfung der Kunden-Nr. fehlschlagen (wird autom. ermittelt) |
| bQualifizierteAnfr | boolean (true/false) | Wenn true, dann wird zusätzlich zum Namen und Ust.-Ident auch auf PLZ, Ort und Strasse geprüft |
| pStrPlz | alphanummerisch - maximal 11 Zeichen | Postleitzahl des Kunden - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. (Nur relevant wenn bQualifizierteAnfr mit true übergeben wurde) |
| pOrt | alphanummerisch - maximal 64 Zeichen | Ort des Kunden - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. (Nur relevant wenn bQualifizierteAnfr mit true übergeben wurde) |
| pStrasse | alphanummerisch - maximal 64 Zeichen | Strasse des Kunden - Wenn nicht gesetzt wird autom. ermittelt anhand der Kunden-Nr. (Nur relevant wenn bQualifizierteAnfr mit true übergeben wurde) |
| bStrictName | boolean (true/false) | Wenn true und die Namensprüfung der qualifizierten Anfrage schlägt Fehl, wird die Prüfung als fehlerhaft erachtet |
| bStrictPlace | boolean (true/false) | Wenn true und die Ortsprüfung der qualifizierten Anfrage schlägt Fehl, wird die Prüfung als fehlerhaft erachtet |
| bStrictPostCode | boolean (true/false) | Wenn true und die Postleitzahlprüfung der qualifizierten Anfrage schlägt Fehl, wird die Prüfung als fehlerhaft erachtet |
| bStrictStreet | boolean (true/false) | Wenn true und die Strassenprüfung der qualifizierten Anfrage schlägt Fehl, wird die Prüfung als fehlerhaft erachtet |
Ergebnis
Historieneintrag
Reportaufruf
Reportergebnis
cimerp/0140_workflow/0080_workflow_beispiele/0040_beispiel_pruefung_uid_rest_api.txt · Zuletzt geändert: von herrmann






