Dynamics 365 Business Central

借助 Dynamics 365 Business Central 连接器,您可以对 Dynamics 365 Business Central 数据执行插入、删除、更新和读取操作。

支持的版本

此连接器支持以下版本:

  • Dynamics 365 Business Central Cloud,正式版 - 24.5.23489.26544
  • Dynamics 365 Business Central(本地版)- Dynamics.365.BC.25445.IN.DVD
  • 准备工作

    在使用 Dynamics365 连接器之前,请先完成以下任务:

    • 在您的 Google Cloud 项目中:
      • 确保已设置网络连接。如需了解网络模式,请参阅网络连接
      • 启用以下服务:
        • secretmanager.googleapis.com (Secret Manager API)
        • connectors.googleapis.com (Connectors API)

        如需了解如何启用服务,请参阅启用服务

      如果之前没有为您的项目启用这些服务或权限,则在您配置连接器时,系统会提示您启用。

    配置连接器

    一个连接需专用于一个数据源。这意味着,如果您有许多数据源,则必须为每个数据源创建单独的连接。如需创建连接,请执行以下操作:

    1. Cloud 控制台 中,进入 Integration Connectors > 连接页面,然后选择或创建一个 Google Cloud 项目。

      转到“连接”页面

    2. 点击 + 新建以打开创建连接页面。
    3. 位置部分中,选择连接的位置。
      1. 区域:从下拉列表中选择一个位置。

        连接器支持的区域包括:

        如需查看所有受支持区域的列表,请参阅位置

      2. 点击下一步
    4. 连接详情部分中,完成以下操作:
      1. 连接器:从可用连接器的下拉列表中选择 Dynamics 365 Business Central
      2. 连接器版本:从可用版本的下拉列表中选择一个连接器版本。
      3. 连接名称字段中,输入连接实例的名称。

        连接名称必须符合以下条件:

        • 连接名称可以使用字母、数字或连字符。
        • 字母必须小写。
        • 连接名称必须以字母开头,以字母或数字结尾。
        • 连接名称不能超过 49 个字符。
      4. (可选)输入连接实例的说明
      5. 您可以选择启用 Cloud Logging,然后选择日志级别。默认情况下,日志级别设置为 Error
      6. 服务账号:选择具有所需角色的服务账号。
      7. (可选)配置连接节点设置
        • 节点数下限:输入连接节点数下限。
        • 节点数上限:输入连接节点数上限。

        节点是处理事务的连接单元(或副本)。 连接处理越多事务就需要越多节点,相反,处理越少事务需要越少节点。 如需了解节点如何影响连接器价格,请参阅 连接节点的价格。如果未输入任何值,则默认情况下,节点数下限设置为 2(以便提高可用性),节点数上限设置为 50。

      8. Azure 租户:指定用于访问数据的 Microsoft 在线租户。如果未指定,系统将使用您的默认租户。
      9. 公司:指定您在 Dynamics 365 中设置的公司名称。您可以在 Dynamics 365 Business Central 的公司信息页面中找到此信息。
      10. 端点类型:指定 OrganizationUrl 必须解析到的端点类型。
      11. Include Navigation Properties:指定列表中的列是否必须包含导航属性。导航属性提供了一种在两个实体类型之间导航的关联的方法。
      12. 使用沙盒:指定是否使用沙盒。
      13. 用户定义的视图:指定用于定义自定义视图的 JSON 配置文件的文件路径。
      14. 点击 + 添加标签,以键值对的形式向连接添加标签。
      15. (可选)如果要使用 SSL,请选择启用 SSL。此时会显示 SSL 配置详细信息。
        1. 选择信任库类型。可以为公共专用不安全连接
        2. 根据您选择的信任库选择证书。
        3. 如果您使用的是 mTLS,请在密钥库部分中选择密钥库证书。
      16. 点击下一步
    5. 选择身份验证类型,然后输入相关详细信息。

      Dynamics 365 Business Central 连接支持以下身份验证类型:

      • 访问密钥
      • OAuth 2.0 - 客户端凭据
      • Azure AD
    6. 如需了解如何配置这些身份验证类型,请参阅配置身份验证

    7. 点击下一步
  • 查看:查看您的连接和身份验证详细信息。
  • 点击创建
  • 配置身份验证

    根据您要使用的身份验证输入详细信息。

    • 访问密钥
      • 用户名:指定用于对 Microsoft Dynamics 365 Business Central 服务器进行身份验证的 Dynamics 365 本地账号的用户名。
      • 密码:选择包含 Dynamics 365 本地账号密码的 Secret。
      • Secret 版本:选择 Secret 的版本。
      • 访问密钥:指定用于向 Microsoft Dynamics 365 Business Central 进行身份验证的访问密钥。
    • OAuth 2.0 客户端凭据
      • 客户端 ID:指定您创建的应用的客户端 ID。
      • 客户端密钥:指定包含您创建的关联应用的客户端密钥的 Secret Manager Secret。
      • Secret 版本:选择客户端密钥的版本。
    • Azure AD
      • 客户端 ID:指定请求访问令牌时所用的客户端 ID。您可以在 Azure 门户中创建的关联应用的概览中找到此信息。
      • 范围:指定所需范围的逗号分隔列表。
      • 客户端密钥:指定包含账号访问密钥的 Secret Manager Secret。
      • 授权网址:输入您在创建 OAuth 客户端时生成的授权网址。 请按照以下格式输入网址:https://login.microsoftonline.com/TENANT_IDENTIFIER/oauth2/v2.0/authorize?prompt=consent。 例如 https://login.microsoftonline.com/9bxxxxxxxxx8112/oauth2/v2.0/authorize?prompt=consent

    连接配置示例

    本部分列出了您在创建关联时配置的各种字段的示例值。

    OAuth 2.0 - 客户端凭据连接类型

    字段名称 详细信息
    位置 europe-west1
    连接器 Dynamics365BusinessCentral
    连接器版本 1
    连接名称 dynamics-businesscentral-conn
    启用 Cloud Logging
    服务账号 SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    Azure 租户 c9f472d9-7d8a-44cf-8ee0-458d32e26bce
    公司 Organization_Name
    节点数下限 2
    节点数上限 50
    组织网址 https://api.businesscentral.dynamics.com/v2.0/c9f472d9-7d8a-44cf-8ee0-458d32e26bce/production/api/v2.0
    身份验证 OAuth 2.0 - 客户端凭据
    客户端 ID fd04bae4-c30c-4faf-bbae-9263d4d96d61
    客户端密钥 projects/617888503870/secrets/businesscentral-client-secret
    Secret 版本 1

    访问密钥连接类型

    字段名称 详细信息
    位置 europe-west1
    连接器 Dynamics365BusinessCentral
    连接器版本 1
    连接名称 dynamics-businesscentral-on-prem-conn
    启用 Cloud Logging
    服务账号 SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    Azure 租户 BC250
    公司 Altostart Ltd.
    节点数下限 2
    节点数上限 50
    组织网址 http://10.128.0.78:7059/BC250/ODataV4
    身份验证 访问密钥
    用户名 businesscentral
    密码 PASSWORD
    Secret 版本 1
    访问密钥 OQq9qggeWxt9iZPSWrs8wgfNjsAq06PT2uls7Luhbp8=
    Secret 版本 1

    Azure AD 连接类型

    字段名称 详细信息
    位置 europe-west1
    连接器 Dynamics365BusinessCentral
    连接器版本 1
    连接名称 d365-business-central-oauth
    启用 Cloud Logging
    服务账号 my-service-account@my-project.iam.gserviceaccount.com
    Azure 租户 c9f472d9-7d8a-44cf-8ee0-458d32e26bce
    公司 Altostart Ltd.
    节点数下限 2
    节点数上限 50
    组织网址 https://api.businesscentral.dynamics.com/v2.0/c9f472d9-7d8a-44cf-8ee0-458d32e26bce/production/api/v2.0
    身份验证 AzureAD
    客户端 ID fd04bae4-c30c-4faf-bbae-9263d4d96d61
    范围 https://api.businesscentral.dynamics.com/.default
    客户端密钥 projects/617888503870/secrets/d365bc-secret
    Secret 版本 3
    授权网址 https://login.microsoftonline.com/c9f472d9-7d8a-44cf-8ee0-458d32e26bce/oauth2/v2.0/authorize

    如需了解如何创建 Dynamics 365 Business Central 工作区,请参阅 欢迎使用 Dynamics 365 Business Central

    如需了解 Dynamics 365 Business Central API,请参阅 Dynamics365BusinessCentral API 参考文档

    系统限制

    Dynamics 365 Business Central 连接器每个节点每秒最多可处理 25 笔交易,并会对超出此限制的所有交易进行节流。默认情况下,Integration Connectors 会为连接分配 2 个节点(以提高可用性)。

    如需了解适用于 Integration Connectors 的限制,请参阅限制

    在集成中使用 Dynamics 365 Business Central 连接

    创建连接后,该连接将在 Apigee Integration 和 Application Integration 中可用。您可以通过连接器任务在集成中使用该连接。

    • 如需了解如何在 Apigee Integration 中创建和使用连接器任务,请参阅连接器任务
    • 如需了解如何在 Application Integration 中创建和使用连接器任务,请参阅连接器任务

    实体操作示例

    本部分介绍如何在此连接器中执行一些实体操作。

    示例 - 列出所有销售订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrders
    3. 选择 List 操作,然后点击完成
    4. 连接器任务的任务输入部分中,您可以设置 filterClause
    5. 您必须使用单引号 (') 括住过滤条件子句的值。您可以使用过滤子句根据列过滤记录。

    示例 - 获取销售订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrders
    3. 选择 Get 操作,然后点击完成
    4. 将实体 ID 设置为“841c04f9-3391-ef11-8a6b-002248d4e29e”,这是要传递的键。如需设置实体 ID,请在数据映射数据映射器部分,点击打开数据映射编辑器,然后在输入值字段中输入 "841c04f9-3391-ef11-8a6b-002248d4e29e",并选择 EntityId 作为本地变量。

      应直接传递实体 ID 的值,例如“841c04f9-3391-ef11-8a6b-002248d4e29e”。 在这里,“841c04f9-3391-ef11-8a6b-002248d4e29e”是唯一的主键值。

      如果由于存在两个复合键而导致传递单个实体 ID 时抛出错误,您可以使用过滤子句传递值。

    示例 - 删除销售订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrders
    3. 选择 DELETE 操作,然后点击完成
    4. 将实体 ID 设置为“841c04f9-3391-ef11-8a6b-002248d4e29e”,这是要传递的键。如需设置实体 ID,请在数据映射数据映射器部分,点击打开数据映射编辑器,然后在输入值字段中输入 "841c04f9-3391-ef11-8a6b-002248d4e29e",并选择 EntityId 作为本地变量。

      如果实体具有两个复合商家键或主键,您也可以将 filterClause 设置为 id='841c04f9-3391-ef11-8a6b-002248d4e29e',而不是指定 entityId

    示例 - 创建销售订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrders
    3. 选择 Create 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload 作为本地变量。
      {
           "orderDate": "2024-10-30",
           "customerNumber": "10000",
           "currencyCode": "INR",
           "paymentTermsId": "590d75c5-f26e-ef11-a678-6045bdc89b07"
           }
           

      如果集成成功,salesOrders 任务的 connectorOutputPayload 响应参数的值将类似于以下内容:

      {
           "id": "2e048d8a-a796-ef11-8a6b-6045bdae882d"
           }
           

    示例 - 创建销售订单明细

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrderLines
    3. 选择 Create 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload 作为本地变量。
      {
           "documentId": "b747cc93-c37f-ef11-ac23-7c1e523b4365",
           "sequence": 10014,
           "itemId": "8b0f75c5-f26e-ef11-a678-6045bdc89b07",
           "lineType": "Item",
           "lineObjectNumber": "1996-S"
           }
           

      如果集成成功,salesOrderLines 任务的 connectorOutputPayload 响应参数的值将类似于以下内容:

      {
           "id": "35535130-d09d-ef11-8a6b-002248d4cc93"
           }
           

    示例 - 创建销售报价

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesQuotes
    3. 选择 Create 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload 作为本地变量。
      {
           "paymentTermsId": "590d75c5-f26e-ef11-a678-6045bdc89b07",
           "currencyCode": "INR",
           "customerNumber": "30000"
           }
           

      如果集成成功,salesQuotes 任务的 connectorOutputPayload 响应参数的值将类似于以下内容:

      {
           "id": "2116bd4e-3ba3-ef11-8a6b-6045bdacfb5e"
           }
           

    示例 - 创建采购订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 purchaseOrders
    3. 选择 Create 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload 作为本地变量。
      {
           "vendorId": "7e0f75c5-f26e-ef11-a678-6045bdc89b07",
           "vendorNumber": "10000"
           }
           

      如果集成成功,purchaseOrders 任务的 connectorOutputPayload 响应参数的值将类似于以下内容:

      {
           "id": "53389ee7-a796-ef11-8a6b-6045bdae882d"
           }
           

    示例 - 创建商品

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 items
    3. 选择 Create 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload 作为本地变量。
      {
           "number": "4000-D",
           "displayName": "Charlie Altostrat",
           "type": "Inventory",
           "itemCategoryId": "d61672cb-f26e-ef11-a678-6045bdc89b07",
           "baseUnitOfMeasureCode": "PCS"
           }
           

      如果集成成功,items 任务的 connectorOutputPayload 响应参数的值将类似于以下内容:

      {
           "id": "fad09437-8d9e-ef11-8a6b-000d3af0e092"
           }
           

    示例 - 更新销售订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrders
    3. 选择 Update 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。
      {
           "phoneNumber": "7764872993"
           }
           
    5. 将数据映射器中的实体 ID 设置为 salesOrders 的实体。如需设置实体 ID,请点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。

      您也可以将 filterClause 设置为 id ='5e9226d3-1c7b-ef11-a671-6045bdaef76c',而不是指定 entityId

    示例 - 更新销售订单明细

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesOrderLines
    3. 选择 Update 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。
      {
           "description": "Test from Altostrat"
           }
           
    5. 将数据映射器中的实体 ID 设置为 salesOrderLines 的实体。如需设置实体 ID,请点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下值的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。

      您也可以将 filterClause 设置为 id ='35535130-d09d-ef11-8a6b-002248d4cc93',而不是指定 entityId

    示例 - 更新销售报价

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 salesQuotes
    3. 选择 Update 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。
      {
           "currencyCode": "USD"
           }
           
    5. 将数据映射器中的实体 ID 设置为 salesQuotes 的实体。如需设置实体 ID,请点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。

      您也可以将 filterClause 设置为 id='2116bd4e-3ba3-ef11-8a6b-6045bdacfb5e',而不是指定 entityId

    示例 - 更新采购订单

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 purchaseOrders
    3. 选择 Update 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。
      {
           "shipToName": "Charlie Cruz"
           }
           
    5. 将数据映射器中的实体 ID 设置为 purchaseOrders 的实体。如需设置实体 ID,请点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。

      您也可以将 filterClause 设置为 id ='6b88738e-3891-ef11-8a6b-002248d4e29e',而不是指定 entityId

    示例 - 更新商品

    1. Configure connector task 对话框中,点击 Entities
    2. Entity 列表中选择 items
    3. 选择 Update 操作,然后点击完成
    4. 数据映射任务的数据映射器部分,点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。
      {
           "displayName": "Updates Altostrat name"
           }
           
    5. 将数据映射器中的实体 ID 设置为项的实体。如需设置实体 ID,请点击 Open Data Mapping Editor,然后在 Input Value 字段中输入类似于以下内容的值,并选择 EntityId/ConnectorInputPayload/FilterClause 作为本地变量。

      您也可以将 filterClause 设置为 id ='fad09437-8d9e-ef11-8a6b-000d3af0e092',而不是指定 entityId

    向 Google Cloud 社区寻求帮助

    您可以在 Google Cloud 社区的 Cloud 论坛中发布您的问题以及讨论此连接器。

    后续步骤