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