# WebAPI 服务 — C#（WebAPI 控制器 + Kingdee 推送）

```csharp
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.WebApi.ServicesStub;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;

namespace Kingdee.MyProject.WebApi
{
    [Description("物料同步WebAPI")]
    [HotUpdate]
    public class MaterialSyncService : AbstractWebApiBusinessService
    {
        public override string DoService(string input)
        {
            try
            {
                JObject request = JObject.Parse(input);
                JArray data = (JArray)request["Data"];

                var formId = "BD_MATERIAL";
                var meta = MetaDataServiceHelper.Load(this.Context, formId);
                var objType = meta.BusinessInfo.GetDynamicObjectType();

                var saveList = new List<DynamicObject>();
                foreach (var item in data)
                {
                    var billObj = new DynamicObject(objType);
                    billObj["Number"] = (string)item["Number"];
                    billObj["Name"] = (string)item["Name"];
                    // 基础资料字段
                    var orgField = meta.BusinessInfo.GetField("FCreateOrgId");
                    var orgObj = BusinessDataServiceHelper.LoadSingle(
                        this.Context, 1, orgField.RefFormDynamicObjectType);
                    billObj["CreateOrgId"] = orgObj;
                    billObj["CreateOrgId_Id"] = 1;

                    saveList.Add(billObj);
                }

                var result = BusinessDataServiceHelper.Save(this.Context,
                    meta.BusinessInfo, saveList.ToArray(), null, "Save");
                return JsonConvert.SerializeObject(new { Success = true });
            }
            catch (Exception ex)
            {
                return JsonConvert.SerializeObject(new { Success = false, Error = ex.Message });
            }
        }
    }
}
```

**源码参考：** `lf-project/KingdeeApi/` — Kingdee API 项目
