You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Business Central自定义API中批量插入多行数据?

Business Central自定义API批量插入多行记录解决方案

问题原因

你当前的API页面默认不支持直接提交value包裹的数组格式,BC的API集合端点默认仅接受单个实体POST,或通过OData标准的批量请求方式处理多行插入。


方案1:使用OData $batch请求(官方推荐)

这是BC全版本支持的批量操作方式,步骤如下:

  • 请求URL:替换为批量端点
    https://api.businesscentral.dynamics.com/v2.0/{{TENANT_ID}}/{{ENVIRONMENT}}/api/Kuhicop/Kuhicop/v1.0/$batch
    
  • 请求头:设置多部分内容类型,边界符自定义(如batch_abc123)
    Content-Type: multipart/mixed; boundary=batch_abc123
    
  • 请求体:每个插入操作作为独立POST请求,用边界符分隔,示例:
    --batch_abc123
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    
    POST companies({{COMPANY_ID}})/SalesOrderInserts HTTP/1.1
    Content-Type: application/json
    
    {"BatchID": "BATCH004"}
    
    --batch_abc123
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    
    POST companies({{COMPANY_ID}})/SalesOrderInserts HTTP/1.1
    Content-Type: application/json
    
    {"BatchID": "BATCH005"}
    
    --batch_abc123--
    
    注意:边界符首尾要一致,最后以--边界符--结束。

方案2:修改API页面支持直接提交数组(BC 20+版本适用)

如果你的BC版本在20及以上,可修改API页面启用集合操作:

  1. 更新API页面代码,添加AllowBatchOperations = true; 属性:
    page 60000 "Sales Order Inserts MIM API"
    {
        PageType = API;
        SourceTable = "Sales Order Inserts MIM";
        Caption = 'Sales Order Inserts MIM API';
        EntitySetName = 'SalesOrderInserts';
        EntityName = 'SalesOrderInsert';
        APIPublisher = 'Kuhicop';
        APIGroup = 'Kuhicop';
        DelayedInsert = true; 
        APIVersion = 'v1.0';
        AllowBatchOperations = true; // 添加这一行
    
        layout
        {
            area(content)
            {
                repeater(Group)
                {
                    field("BatchID"; Rec."Batch ID")
                    {
                        ApplicationArea = All;
                    }
                }
            }
        }
    }
    
  2. 提交请求时,直接发送JSON数组(无需value包裹):
    [
        {
            "BatchID": "BATCH004"
        },
        {
            "BatchID": "BATCH005"
        }        
    ]
    
  3. 请求头保持Content-Type: application/json,URL使用原集合地址即可。

内容的提问来源于stack exchange,提问作者kuhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:40:03