跳转到内容

连接到 Business Central

将 PlaidCloud 连接到 Business Central 的标准 OData v2.0 REST API,无需手写 OData 即可提取科目、分类账分录、客户、供应商、物料和日记账,并将总账日记账行过账回 Business Central。本指南涵盖连接、导入步骤和过账步骤。

您需要在 Azure AD 和 Business Central 中具备:

  • 为 PlaidCloud 创建的 Entra ID (Azure AD) 应用注册,带有客户端密钥,并已被授予 Business Central 的 API 权限(Dynamics 365 Business Central > API.ReadWrite.All,或管理员颁发的更窄权限)。
  • 您的 Azure AD 租户 ID。
  • PlaidCloud 应调用的 Business Central 环境名称(例如 Production 或沙盒环境)。
  • PlaidCloud 读取和过账所针对的公司:Business Central 每次将实体读取和日记账过账都限定在一个公司内。
  1. 打开 Tools > Connections 并单击 New Connection。

  2. 从菜单中选择 Business Central。

  3. 填写各字段:

    字段 值
    名称 易记的名称,例如 BC Prod。
    客户端 ID Entra 应用注册的应用程序(客户端)ID。
    客户端密钥 应用注册的客户端密钥。
    租户 ID 您的 Azure AD 租户 ID。
    环境 Business Central 环境名称,例如 Production。
    公司 要读取和过账所针对的 Business Central 公司 ID。
  4. 单击 Create。

  1. 将 Import Business Central Entity 步骤添加到工作流。

  2. 将 Business Central 连接设置为您的连接,将实体类型设置为 accounts,将目标表设置为一个临时表。

  3. 运行该步骤(请参阅在工作流中运行单个步骤)。

目标表中有数据,即表示租户、凭据、环境和公司均正确。如果出错,错误会指出问题所在,例如客户端密钥错误、缺少 API 权限授予,或环境/公司错误。

  1. 添加 Import Business Central Entity 步骤,并设置 Business Central 连接和目标表。

  2. 将实体类型设置为您想要的记录:accounts、generalLedgerEntries、customers、vendors、items 或 journals。

  3. 添加筛选器:{field, operator, value} 行以 AND 方式合并到请求的 $filter 中,并对照该实体自己的可查询字段允许列表进行检查。留空则提取整个实体。

  4. 运行该步骤并检查目标表。

Business Central Post 步骤将行过账到现有的总账日记账批次,然后过账该批次。

  1. 构建标题表,每个 journal_id 一行,包含您的行要过账到的 Business Central 日记账批次名称,以及 document_number、posting_date 和货币标签。

  2. 构建行表,每个 journal_id 有一行或多行,包含带符号的 amount(借方为正,贷方为负)、account_id 或 account_number、account_type 和 description。

  3. 添加 Business Central Post 步骤,设置 Business Central 连接、环境、标题表、行表以及结果表。

  4. 保持勾选 Validate Only 并运行该步骤,PlaidCloud 会构建并检查每个日记账,但不过账任何内容。

  5. 查看结果表(每个 journal_id 一行:journal_id、external_id、internal_id、status、message)。修复任何 error 行并重新验证。

  6. 取消勾选 Validate Only 并再次运行,以实际过账。除非希望批次在第一个失败的日记账处立即停止,否则请保持勾选 Continue On Error。

Business Central 的 Microsoft.NAV.post 操作会过账整个日记账批次,而不仅仅是 PlaidCloud 刚创建的行,因此在调用它之前,PlaidCloud 会回读该批次,如果其中有任何行未标记本次请求的单据编号,就会拒绝过账(记录一个错误,不过账任何内容)。设置该保护的目的,正是为了确保较早的部分失败遗留的零散行,绝不会被之后针对同一批次的无关过账卷入总账。