Odoo 对接 BMD:月度交接前如何核对导出批次

返回
Kevin Riedl

12 分钟 阅读 · 2026年11月5日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

一个虚构导出批次的总额是 300.00 欧元,其中两张单据的金额仍然有错。下面的示例说明:文件已生成、总额也相符,并不能证明交接正确。

核对 Odoo 到 BMD 的交接,应同时依据已批准的源单据、具体导出配置和接收方的接收证据。先比较单据身份与逐项金额,再查看汇总值。保留贷项、公司边界和版本变更记录,确认接收方接受了哪些单据之后再关闭交接任务。

资料核查日期:2026 年 11 月 5 日。本文参考 Odoo 官方文档、BMD 公开的标准接口课程大纲及针对具体版本的供应商资料。我们运行了十三个合成 Python 比较案例,没有执行真实的 Odoo 导出、BMD 导入、客户账务核查或财务审批。可下载模型使用规范化示例数据,并非 BMD 文件格式实现。

Odoo 到 BMD 的交接需要证明什么?

交接需要分别证明三件事:选中了正确的源数据范围,导出保留了已批准的业务含义,目标系统接受了预定单据。为每个阶段保留标识与证据。下载完成只能说明文件存在;接收方的实际记录才能说明文件到达后发生了什么。不要把这些不同结论压缩成一个含义不明的成功状态。

先请接收团队定义“已接受批次”。它是指单据已准备好等待审核,还是分录已导入指定工作区?记录双方同意的结果。如果双方对“已导入”的理解不同,共用这个状态也无法形成明确交接。

建议月度交接中的三个证据边界
边界需要保留的证据回答的问题
已批准的源数据快照、公司、期间、单据状态与排除项。哪些业务单据应该转移?
生成的批次连接器和配置版本、确切文件标识、逐单据比较。这份导出携带了什么业务含义?
目标结果导入报告、已接受和已拒绝的单据引用、未决项目。接收方接受了哪些预定记录?

批次可以通过导出核对,但目标接收情况仍然未知。应明确保留这一状态,并提供双方都能查阅的证据。

你正在验证哪一个连接器和导入配置?

验证时要明确 Odoo 的版本与版本类型、已安装连接器的具体修订,以及 BMD 接收配置。请负责人用这套组合演示一张有代表性的单据。产品名称本身无法证明目标会如何解释你的记录。保留实际采用的配置和演示结果,后续变更才有可比较的依据。

MPI 的 BMD 模块页面针对 Odoo 19,列出了 Enterprise 会计、奥地利本地化和可配置导出列。这是特定版本的供应商说明。如果目标是 Odoo 20,需要另行确认支持情况。

Odoo 20.0 奥地利本地化文档介绍会计与报表模块,以及 SAF-T XML 导出。这些功能并不能确定所选 BMD 导入配置要求的文件格式。

BMD 标准接口课程大纲区分主数据、余额和记账文件导入,并涉及导入错误与提示。大纲不是完整字段规范。实现文件布局前,应向接收方取得适用配置及映射要求。

演示范围应包括需要支持的贷项和更正单据,必要时带上附件。普通发票并不会验证这些路径。记录为使示例成功而在目标端进行的任何人工准备。

如果托管方式或 API 访问决定集成路径,可参考已有的 Odoo 集成架构指南。无论由人传递已批准文件,还是由自动流程传输,本文的验收约定都可以保留。

月度导出约定应包含哪些内容?

导出约定需要固定预定单据范围、已批准的转换规则和目标端所需证据,并明确谁有权修改这些决定。审批应绑定源快照和批次版本。源数据或映射后续发生变化,就要重新审查。这样,批准的是哪份文件、哪些业务含义,才能在交接之后继续查清。

一个持续运行的 Odoo/BMD 批次建议约定
决定导出前明确应检查的证据
数据范围公司、记账期间、允许状态和明确排除项。已批准的源引用与提取参数。
身份稳定源标识、版本和目标引用。每张源单据在整个交接过程中都可追踪。
金额币种、净额/税额/总额口径与约定精度。逐项数值,以及按公司和币种分组的合计。
映射所选配置下已批准的科目、往来方和税务含义。明确的映射版本和负责财务复核的人。
贷项与更正单据关系及接收配置中已批准的处理方式。代表性更正到达预定目标结果。
支持文件必需文件、身份以及授权接收者的访问。正确文件可从正确业务记录中取回。
完成条件接受的含义,以及部分或未知结果的处理方式。绑定本批次及其单据的目标证据。

区分单据日期与本次交接使用的期间。决定迟到单据和更正如何进入后续批次,以及由谁批准处理方式。比较器负责检查既定规则,财务负责人负责批准账务处理。

保留可以独立复核的源依据。如果同一段错误转换同时生成导出值和预期值,比较结果就可能与错误一致。先选取源单据,直接对照已批准映射核查,再信任汇总控制。

单据进入系统时尚未解决的决定,由另一篇 发票异常处理流程负责。导出不应把未决的源问题转换成看似合理的目标数值,从而掩盖它。

为什么总额正确仍可能隐藏错误单据?

方向相反的错误会在相加时抵消,因此正确合计可能掩盖错误单据。记录数量同样丢失了身份信息。应逐张比较已批准源单据与导出对应项,再把分组合计作为额外控制。本合成示例保留三张单据和全部合计,但其中两张单据的净额、总额都存在错误。

示例中虚构的已批准源数值,币种均为 EUR
单据净额税额总额
INV-001100.0020.00120.00
INV-002200.0040.00240.00
CR-001-50.00-10.00-60.00
合计250.0050.00300.00

负数贷项只是示例约定。这些金额没有规定 BMD 的正负号规则,也没有证明税务处理有效。虚构映射标签 DEMO-MAP-1不具备账务依据。

现在把第一张发票改成净额 101.00 欧元、总额 121.00 欧元;第二张改成净额 199.00 欧元、总额 239.00 欧元。两张发票的税额和贷项保持不变。净额仍为 250.00 欧元,税额仍为 50.00 欧元,总额仍为 300.00 欧元。每行的净额加税额也仍等于总额。

逐单据比较会发现四处差异:两张发票各有净额、总额两个字段变化。即使合计相符,这些差异也会阻止批次通过。按标识比较仍不能自行确认参考值正确,更不能证明真实会计导出已经通过验证。

十三个已运行模型案例证明了什么?

十三个案例展示了规范化比较如何区分源差异、没有导入回执的正确候选批次,以及不完整的目标确认。脚本只使用虚构 JSON 单据和 Python 标准库,检查示例定义的规则。它没有解析 BMD 文件,也没有运行 Odoo 或 BMD。因此,结果只适用于所展示的本地模型边界。

2026 年 11 月 5 日本地模型观察到的决定
案例观察结果在模型中的含义
批次未变且模型回执完整ACKNOWLEDGED_IN_MODEL参考值、候选批次和虚构回执一致。
没有目标回执READY_FOR_IMPORT_REHEARSAL候选批次核对通过,但目标接受尚未得到证明。
贷项缺失BLOCKED缺少一张预期单据。
单据重复BLOCKED同一个复合源身份出现两次。
金额错误相互抵消BLOCKED数量和合计一致,四个金额字段却有差异。
公司错误BLOCKED候选批次包含批准身份范围之外的单据。
记账期间错误BLOCKED一张单据的期间与已批准源值不同。
币种错误BLOCKED币种与参考值不同。
映射缺失BLOCKED必需的虚构映射引用为空。
文件引用缺失BLOCKED缺少必需支持文件的标签。
导入配置变化BLOCKED候选批次不再指向已审核的配置。
目标回执不完整RECONCILIATION_REQUIRED并非所有预定单据都有已接受的目标引用。
回执属于其他内容RECONCILIATION_REQUIRED回执没有标识当前候选内容。

下载可运行比较模型和记录的运行结果。保存 Python 文件后执行:

python3 reconcile-export.py

十三项预期决定均与本地运行相符。金额按示例的精确比较规则使用十进制运算。内容哈希绑定的是规范化 JSON,而非导出的 BMD 文件。生产流程需要识别实际文件字节和配置,并保留真实的目标单据证据。

附件标签非空,并不能证明接收方取到了正确 PDF。真实验收时应检查文件本身及其与业务记录的关联。

部分导入后应该怎样恢复?

先确定哪些单据已接受、哪些被拒绝、哪些结果未知,再决定重做什么。根据目标报告和记录引用,与接收负责人约定更正动作。批次级失败消息不代表每张单据都失败;换一个文件名也不会让重复单据变成新的业务事件。恢复决定应以已查清的目标状态为依据。

交接后建议采用的恢复决定
观察情况下一步完成前所需证据
尚无接收证据索取目标结果,保持接收状态未决。确定是否已有单据被处理。
部分接受、部分拒绝逐张核对处理结果,约定被拒单据如何更正或再次提交。已接受记录得到说明,恢复没有产生未经批准的重复。
中断后导入结果未知再次执行前检查目标记录。动作依据已确认结果,而非对中断的猜测。
批准后源数据或映射变化建立可识别的新版本,重做受影响比较。当前批次有当前审批,并可追溯上一次尝试。

不要预设目标支持某种更正、撤销或选择性重放机制。应与接收团队在实际配置下演示双方认可的流程。即使更正后的批次替代了原尝试,也要保留原来的证据。

如果 n8n 负责调度或传输文件,它的执行记录可以证明传输过程。n8n 重试与恢复指南解释了稳定业务身份和已知目标结果的重要性。在这里,决定后续动作的证据是接收端每张单据的处理情况。

财务与工程团队分别验收什么?

工程团队应证明选择、转换、传输和恢复过程可追踪;授权财务负责人应批准映射与结果的账务含义。两类决定分别记录。比较没有差异,不能代替财务批准。模板即使已经获批,其中的检查仍需要在真实系统上执行,才能支持对实际导入行为和交接结果的结论。

建议的十三项验收表初始执行状态为 NOT_RUN,财务批准状态为 PENDING。实际证据和批准人字段为空。检查涵盖源范围、贷项、重复、金额、公司、期间、币种、映射、文件、版本、部分导入及最终确认。

在受控环境中运行一个普通批次,以及一个刻意安排的接收不完整案例。加入已批准的贷项示例和一张必须继续拦截的单据。让双方仅依据保存的证据,把同一张源单据经由导出批次追踪到目标结果。

一次性系统迁移应使用更完整的 Odoo 迁移验收框架。持续运行时,每个月的证据都应与当月批次和未决事项一起保存。连接器或接收配置变化后,应在下一次交接前重做受影响检查。

上线前 QA 检查表可以把这些控制纳入整体交付决定。明确谁调查迟迟未到的确认,谁有权批准更正批次,使流程在日常操作人员缺席时仍能执行。

我们会先实施哪一部分?

先确定一个已批准源范围、一套具体导出配置,以及能指出结果单据的接收确认。自动安排执行时间前,先演示一个正常批次和一次部分失败。当财务与技术负责人都能解释结果,并依据保留证据处理异常时,再扩大支持范围。首个交付应证明这条完整路径,而不是只展示文件下载。

准备采用 Wavect 的 API 集成服务时,可以带来获准使用的样例导出、已批准源单据、接收配置和一个难处理的更正案例。这样第一阶段就有了具体验收问题:双方能否逐张说明本次交接中所有预定单据的结果?

Odoo/BMD 导出核对常见问题

普通 CSV 导出就兼容 BMD 吗?
CSV 只是承载数值的容器。兼容性取决于接收配置、必需字段、映射、编码和业务解释。取得这些要求后,应使用代表性单据演示真实导入。本文的规范化 JSON 说明比较规则,不是可以直接上传到 BMD 的文件布局。
Odoo 19 连接器能证明兼容 Odoo 20 吗?
不能。针对具体版本的产品说明只能支持其中声明的范围。请维护方明确支持的版本、版本类型、依赖和连接器修订,再测试实际使用的接收配置。保存这套组合的证据,不要把熟悉的模块名称当作另一个版本的兼容证明。
示例中的负数贷项规定了 BMD 的符号规则吗?
没有。负数是本合成比较采用的约定。实际单据类型、正负号处理、更正关系和目标结果,都应遵循已批准的连接器配置及财务规则。在接受这部分范围之前,应与接收团队演示一张有代表性的贷项单据。
比较器可以批准税务映射吗?
它可以检查候选批次是否使用已批准的映射引用和值,却不能判断这些规则是否适用于具体交易。负责财务的人必须批准解释方式和例外。应把这种业务授权,与两个记录相符的技术检查结果分开保存。
有文件引用就证明 PDF 正确吗?
引用只能证明提交了标签或链接。真实验收需要取回文件,核实它属于预定业务记录,并确认授权接收者能够访问。对保留的原件和有意重新生成的文件,应预先决定比较方式,并把证据与交接记录一起保存。
传输文件成功后就能关闭本期交接吗?
只有当双方约定的完成条件止于送达,并明确分配后续责任时才可以。如果交接还包括导入接受,应先保留目标结果和未决单据列表。传输成功消息无法证明接收系统创建或接受了哪些会计记录。
下载的 Python 脚本会连接 Odoo 或 BMD 吗?
不会。它使用 Python 标准库对虚构 JSON 单据运行十三个案例,不需要凭据或网络访问。模型展示逐单据比较和确认边界。可以据此检查控制设计,再使用真实连接器、文件和接收环境执行另一份验收表。

构建产品,而不只是 backlog

如果这篇文章对应的是一个真实产品决策,Wavect 可以用高级创始人级判断帮你界定范围、构建、加固或领导软件工作。

可选服务路径:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

12 分钟 阅读 · 2026年11月5日
最近审核

下一篇

获取下一篇关于交付与 QA的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。