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,並為確切的語法與設定檔提供可信的規則檔,包括設定檔專屬的必要規則

PLDefaultInvoiceValidationRequest 要求 schema 與 Schematron 兩個階段,預設 30000 ms 逾時與 8 MB 輸出限制;呼叫端可以明確停用某個階段,該階段會維持 not_checked,也不對那些規則做任何宣稱

IPDFInvoiceValidationProvider.ValidateStage 會收到所選 XML 與規則封裝,必須傳回完整的階段結果、引擎診斷與結構化問題;無法使用或丟出例外的供應商不可能通過

獨立的發票 XML 請直接用 PLValidateInvoiceXML,內建工具配接器用 PLCreateExternalInvoiceValidationProvider,把具型別結果序列化用 PLInvoiceValidationReportToJSON

另請參閱

ValidateFacturXInvoice, ValidateInvoiceBusinessRules, ValidateInvoiceBusinessRulesWithTools, ExtractFacturXXMLToString