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