ValidateInvoiceBusinessRules
发票、合规
描述
使用带版本的提供程序验证选定的内嵌发票 XML
语法
Delphi
Function TPDFlib.ValidateInvoiceBusinessRules(Const EmbeddedFileName: WideString;
Const Request: TPDFInvoiceValidationRequest;
Const Provider: IPDFInvoiceValidationProvider;
Out Report: TPDFInvoiceValidationReport): Boolean;备注
按精确且区分大小写的文件名查找文档级内嵌附件,并把 Request.XMLBytes 替换为解码后的附件字节;调用方提供的 XML 不能顶替实际发票
只有每个请求的阶段都成功完成才返回 true;Report.Complete=true 且 IsValid=false 表示验证已完成但发现问题,以此区别于引擎不可用、输入格式错误或运行不完整
附件缺失、含糊、不可读或过大时返回 false 并带 LastErrorCode=401 与 Invoice.Attachment* 诊断;匹配上限为 16384 个附件,解码上限为 64 MB
请显式设置 Request.Rules.Standard 与 Version,并为确切的语法与 Profile 提供可信的规则文件,包括所有必需的 Profile 专属规则
PLDefaultInvoiceValidationRequest 同时要求 schema 与 Schematron 两个阶段,设置 30000 毫秒超时与 8 MB 输出限制;调用方可以显式禁用某个阶段,该阶段会保持 not_checked 且不对那些规则做任何声明
IPDFInvoiceValidationProvider.ValidateStage 接收选定的 XML 与规则包,必须返回完整的阶段结果、引擎诊断与结构化问题;不可用或抛异常的提供程序不能通过
独立发票 XML 请直接使用 PLValidateInvoiceXML,内置工具适配器请使用 PLCreateExternalInvoiceValidationProvider,序列化带类型的结果请使用 PLInvoiceValidationReportToJSON
另请参阅
ValidateFacturXInvoice、ValidateInvoiceBusinessRules、ValidateInvoiceBusinessRulesWithTools、ExtractFacturXXMLToString