ZUGFeRD API
- Merve Yurdakul
- Dennis Balzuweit
Verwendung
Die ZUGFeRD API ermöglicht die automatische Auslesung von Metadaten aus einer ZUGFeRD-PDF und überführt aufbereiteten Metadaten an ein anderes System zur Weiterverarbeitung.
Das Auslesen der Metadaten erfolgt über eine COM-Schnittstelle, die auf den eingebetteten XML-Datenstrom zugreift und die Metadaten automatisch speichert. Nachfolgend werden diese Daten entsprechend ausgelesen und an ein bereitgestelltes Feldschema übertragen.
Voraussetzung
Die DLL muss in Windows via regsvr32 registriert werden, da ansonsten die OLE-Objekte nicht auf die Methoden zugreifen können. Siehe auch https://de.wikipedia.org/wiki/Object_Linking_and_Embedding
Funktionen
Folgende Funktionen stehen zur Verfügung:
getDeliveryCount : Integer;
Gibt die Anzahl der Lieferinformationen zurück.
Beispiel
deliveryCount := document.getDeliveryCount; for i := 0 to deliveryCount-1 do begin document.deliveryIndex := i; showMessage('Delivery: '+ DateToStr(document.deliveryDate)); end;
getDeliveryNoteCount : Integer;
Gibt die Anzahl der Lieferscheininformationen zurück.
getLineItemCount : Integer;
Gibt die Anzahl der Positionen zurück
Beispiel
lineCount := document.getLineItemCount; for i := 0 to lineCount-1 do begin document.lineIndex := i; allowanceChargeCount := -1; lineText := ''; lineText := 'Line: '+ document.lineId +' '+document.lineName+' '; lineText := lineText + FloatToStr(document.lineQuantity)+' '+document.lineUnit+' pro'; lineText := lineText + floatToStr(document.linePriceBasisQuantity) +' '+ floatToStr(document.lineSinglePrice)+'+FloatToStr(document.lineTradeTax)+ ' '; lineText := lineText + document.lineGlobalArticleId+ ' ' +document.lineSellerArticleId + ' '+document.lineDeliveryId+' '; lineText := lineText + document.lineOrderId + ' ' + FloatToStr(document.lineTotalAmount); allowanceChargeCount := document.getAllowanceChargeCount(i); for j := 0 to allowanceChargeCount-1 do begin document.allowanceChargeIndex := j; lineText := lineText + CRLF; lineText := lineText + IntToStr(document.allChargeIndexTypeID)+ ' '; lineText := lineText + document.allChargeAmountDescription+ ' '; lineText := lineText + document.allChargeAmountCurrency+ ' '; lineText := lineText + floatToStr(document.allChargeAmountValue)+ ' '; lineText := lineText + floatToStr(document.allChargeCalculationPercent)+ ' '; lineText := lineText + floatToStr(document.allChargeAmountValue * document.allChargeCalculationPercent/100)+ ' '; end; showMessage(lineText); end;
getOrderCount : Integer;
Gibt die Anzahl der Bestellinformationen zurück.
Beispiel
orderCount := document.getOrderCount; for i := 0 to orderCount-1 do begin document.orderIndex := i; showMessage('Order: '+ document.paymentCurrencyCode+' '+document.paymentID); end;
getTaxCount : Integer;
Gibt die Anzahl der Steuerbeträgen zurück.
Beispiel
taxCount := document.getTaxCount; for i := 0 to taxCount-1 do begin document.taxIndex := i; showMessage('Tax: '+ FloatToStr(document.taxBasisAmount)+' '+FloatToStr(document.taxApplicablePercent)+' '+FloatToStr(document.taxCalculatedAmount)+' '+document.taxTypeCode); end;
getSellerBankCount : Integer;
Gibt die Anzahl der Bankverbindungen des Rechnungserstellers zurück.
Beispiel
bankCount := document.getSellerBankCount; for i := 0 to bankCount-1 do begin document.bankIndex := i; showMessage('Bank-Data: '+ document.bankName+', '+document.bankBiC+', '+document.bankIBAN+', '+document.bankID+', '+document.bankBLZ); end;
Technische Bezeichnung
cczugferdreader.dll