ZUGFeRD Export ASP .NET 5: error -13

Guten Tag,

Ich habe LL26 Service Pack 4 installiert und ich versuche einen ZUGFeRD Export in ASP .NET 5 umzusetzen.

Code:

string xmlfile = @"C:\Users\install\AppData\Local\Temp\21-002.XML";

if (File.Exists(xmlfile)) File.Delete(xmlfile);
UTF8Encoding utf8 = new UTF8Encoding(true);
File.AppendAllText(xmlfile, xml, utf8);

var exportOptions = new ExportConfiguration(LlExportTarget.Pdf, "report.pdf", _path);

_LL.ExportOptions.Add(LlExportOption.ExportTarget, "PDF");
_LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDVersion, "2.0");
_LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDConformanceLevel, level);
_LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDXmlPath, xmlfile);

_LL.Export(exportOptions);

Das Programm erstellt die PDF, aber fügt die XML Datei nicht hinzu. Debwin zeigt folgenden Fehler:

Debwin4::CSV::V1;TypeCode;Timestamp;Level;Logger;Thread;Properties;Message
▪;1000;30.09.2021 10:20:25.113;1;LL.Printer;2AA4;100:2=CXLL26♦101:1=0; >EXPORT(000001C12930C6E0):End
▪;1000;30.09.2021 10:20:25.113;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;  [cxll26EX] Base:OnExportEnd()
▪;1000;30.09.2021 10:20:25.113;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;   [cxll26EX] PDF:EndExporting()
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;    [cxll26EX] CExportTypePDFNextGen::HandleZUGFeRD()
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;     [cxll26EX] CExportTypePDFNextGen::GetZUGFeRDPdfInvoiceType('2.0', 'EXTENDED')
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;      [cxll26EX] CExportTypePDFNextGen::helperGetZUGFeRDVersion('2.0')
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;      [cxll26EX] CExportTypePDFNextGen::helperGetZUGFeRDVersion(248) -> 1
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;      [cxll26EX] CExportTypePDFNextGen::helperGetZUGFeRDTypeConformanceLevel(248, 'EXTENDED')
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;      [cxll26EX] CExportTypePDFNextGen::helperGetZUGFeRDTypeConformanceLevel(128) -> 1
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;     [cxll26EX] CExportTypePDFNextGen::GetZUGFeRDPdfInvoiceType(128) -> 1
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;     [cxll26EX] Base:Error! DoSetLastError(-13,The file cannot be processed)
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;     [cxll26EX] ERR: adding the given ZUGFeRD file 'C:\Users\install\AppData\Local\Temp\21-002.XML' faild - reason: 'The file cannot be processed'
▪;1000;30.09.2021 10:20:25.114;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;    [cxll26EX] CExportTypePDFNextGen::HandleZUGFeRD() -> 0
▪;1000;30.09.2021 10:20:25.120;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;   [cxll26EX] ->0xffffffff
▪;1000;30.09.2021 10:20:25.120;1;LL.Generic;2AA4;100:2=CXLL26♦101:1=0;  [cxll26EX] ->-2147467259
▪;1000;30.09.2021 10:20:25.120;2;LL.Notification;2AA4;100:2=CXLL26♦101:1=2;  >@NOTIF.(code= 87, param=0000000000000064, user=0000000000000000)
▪;1000;30.09.2021 10:20:25.120;2;LL.Notification;2AA4;100:2=CXLL26♦101:1=2;  <@NOTIF.(code= 87) -> 0000000000000000
▪;1000;30.09.2021 10:20:25.120;4;LL.Printer;2AA4;100:2=CXLL26♦101:1=2;  ERR: EXPORT:End failed: -2147467259/-13
▪;1000;30.09.2021 10:20:25.120;1;LL.Printer;2AA4;100:2=CXLL26♦101:1=2; <EXPORT(000001C12930C6E0):End -> Unbekannter Fehler (80004005)

Und weiter unten:

Debwin4::CSV::V1;TypeCode;Timestamp;Level;Logger;Thread;Properties;Message
▪;1000;30.09.2021 10:20:25.123;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;<LlPrintEnd() -> -13 (0xfffffff3) (Beim Exportieren ist ein Fehler aufgetreten (z.B. keine Zugriffsrechte auf Zielpfad, zu exportierende Datei schon vorhanden und schreibgeschützt).)
▪;1000;30.09.2021 10:20:25.123;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;>LlSetOption(1,53=<internal>,0000000000000000)
▪;1000;30.09.2021 10:20:25.123;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;<LlSetOption() -> 0 (0x00000000)
▪;1000;30.09.2021 10:20:25.124;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;>LlSetOption(1,253=LL_OPTION_ILLDATAPROVIDER,0000000000000000)
▪;1000;30.09.2021 10:20:25.124;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;<LlSetOption() -> 0 (0x00000000)
▪;1000;30.09.2021 10:20:25.124;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;>LlSetOption(1,353=LL_OPTION_ILLPREPRINTTEXTPROCESSOR,0000000000000000)
▪;1000;30.09.2021 10:20:25.124;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;<LlSetOption() -> 0 (0x00000000)
▪;1000;30.09.2021 10:20:25.126;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;>LlGetErrortext(-13,000001C129687010,16384)
▪;1000;30.09.2021 10:20:25.126;2;LL.API;2AA4;100:2=CXLL26♦101:1=1;<LlGetErrortext() -> 0 (0x00000000) ['Beim Exportieren ist ein Fehler aufgetreten (z.B. keine Zugriffsrechte auf Zielpfad, zu exportierende Datei schon vorhanden und schreibgeschützt).']
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR: Caught LL_Exporting_Exception (Beim Exportieren ist ein Fehler aufgetreten (z.B. keine Zugriffsrechte auf Zielpfad, zu exportierende Datei schon vorhanden und schreibgeschützt).). 
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:  Inner Exception:  () 
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:  Stack Trace: 
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:     at combit.Reporting.LLException.CheckReturn(Int32 returnValue)
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:    at combit.Reporting.LlCore.LlPrintEnd(Int32 pages)
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:    at combit.Reporting.ListLabel.PrintReportFromRelationalDataSourceNewMode(IDataProvider dataSource, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, String dialogTitle, Boolean showPrintOptions, String tempPath)
▪;1000;30.09.2021 10:20:25.164;4;LL.NetFX;2AA4;100:2=CXLL26♦101:1=0;ERR:    at combit.Reporting.ListLabel.AutoPrint(LlProject projectType, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, String dialogTitle, Boolean showPrintOptions, String tempPath)

Da das PDF korrekt erzeugt wird ist der Schreibschutzfehler wohl eher irreführend und es liegt eher am hinzufügen der XML Datei. Ich habe bereits hier im Forum gesucht. Es gibt ähnliche Fehler, aber die Lösungen scheinen nicht zu helfen. (DLL Access scheint nicht zu fehlen, XML Datei wird vom Programm selbst erzeugt.)

Hier die xml Datei. Ich habe auch versucht Sie anders zu kodieren, aber der Fehler bleibt der gleiche. 21-002.XML (9.2 KB)

Falls ich noch irgendetwas übersehe, sagen Sie es mir bitte.

Schöne Grüße

Sascha Lorenz

Die Zugferd dll liegen in einem seperaten Verzeichnis:

C:\Program Files (x86)\combit\LL26\Verschiedenes\Optionale Module unter OSI-Lizenzen\ZUGFeRD

Du musst die Datein mit kopieren. Sonst funktioniert es nicht.

LG,
Marco

In LL26 gibt es eigentlich einen neuen PDF-Exporter, der das ZUGFeRD-Handling schon integriert hat. Daher sollte die OSI-Geschichte keine Rolle mehr spielen.

Auffällig ist aber, dass das XML scheinbar noch ZUGFeRD “1.0” mit “Extended” verwendet:
<ram:ID>urn:ferd:CrossIndustryDocument:invoice:1p0:extended</ram:ID>

Aber in den Optionen wurde “2.0” verwendet:
_LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDVersion, "2.0");

Die Angabe im XML wie auch in den definierte Optionen sollte übereinstimmen. Entweder das XML “upgraden” oder die Optionen “anpassen”. Hilft das weiter?

Die beiden zugferd dlls liegen bereits im Arbeitsverzeichnis.

Danke, Die Version explizit auf 1.0 stellen hat geholfen. Die Fehlermeldungen waren wirklich irreführend.

2 Likes

© combit GmbH