03 MES系统访问金蝶云星空(WebApi集成方式):生产补料单单据保存接口

返回根目录 MES系统访问金蝶云星空(ERP)的接口定义及示例

需求描述

MES补料任务完成后,调用ERP接口生成【生产补料单】并填写应发数量,而且【生产补料单】需要关联【生产用料清单】。

接口定义

关于生产制造模块的单据,要特别注意的一点:尽量通过下推的方式产生下游单据。
如果通过调用标准WebApi的单据保存接口来产生下游单据(比如生产入库单、生产领料单等),存在很多坑:

  • 比如无法与上游单据建立关联关系(虽然可以构造Link表的Json数据,但是也比较复杂,容易出错)
  • 单据上有一些后台字段(比如生产订单分录内码、生产用料清单分录内码等字段),如果有遗漏或者填写的值有误,会导致后期的成本核算出问题。
  • 等等其他未发现的坑

所以对于生产补料单保存接口,采取了自定义webapi接口的方式实现,在自定义接口内部实现相关业务逻辑:

  • 通过请求参数中的生产订单单号+行号+原材料编码 查找到生产用料清单的单据内码、分录内码
  • 代码实现下推:生产用料清单下推生产补料单
  • 修改应发数量,然后通过代码调用生产补料单的保存服务。

生产补料单保存接口(自定义webapi接口)的定义如下:

//其中BLN.CY.ApiClient.K3Cloud.Stub是命名空间,PrdFeedMtrlService是类名
BLN.CY.ApiClient.K3Cloud.Stub.PrdFeedMtrlService.Add(string data)

请求参数

{
    "PrdBillNumber": "MO000030",
    "PrdBillSeq": 1,
    "Entry": [{
        "MaterialNumber": "1.02.001.0001",
        "Qty": 10
    }, {
        "MaterialNumber": "1.02.001.0002.00001",
        "Qty": 20
    }, {
        "MaterialNumber": "1.02.001.0002.00002",
        "Qty": 30
    }]
}

返回结果

{
    "IsSuccess": true,
    "Message": "操作成功!",
    "ErrorStackTrace": null
}

代码示例

1)SDK辅助类示例(引用Kingdee.BOS.WebAPI.Client.dll)
引用组件Kingdee.BOS.WebApi.Client.dll
下载链接: https://pan.baidu.com/s/1RthbrrtUgeqWGi-eLM-yjg
提取码: eqin

 if (LoginByAppSecret())
            {
                var prdFeedMtrlParameter = new 
                {
                    PrdBillNumber = "MO000029",
                    PrdBillSeq = 1,
                    Entry = new[]
                    {
                        new 
                        {
                            MaterialNumber = "1.02",
                            Qty = 10
                        }
                     
                    }
                };
                var result = apiClient.Execute("BLN.CY.ApiClient.K3Cloud.Stub.PrdFeedMtrlService.Add,BLN.CY.ApiClient.K3Cloud.Stub", new object[] { prdFeedMtrlParameter });

            }

2)无引用组件示例(不引用金蝶的组件):
http://ServerIp/K3Cloud/接口命名空间.接口实现类名.方法,组件名.common.kdsvc

 if (LoginByAppSecret())
            {
                HttpClient httpClient = new HttpClient();
                httpClient.Url = "http://localhost/k3cloud/BLN.CY.ApiClient.K3Cloud.Stub.PrdFeedMtrlService.Add,BLN.CY.ApiClient.K3Cloud.Stub.common.kdsvc";

                var prdFeedMtrlParameter = new 
                {
                    PrdBillNumber = "MO000029",
                    PrdBillSeq = 1,
                    Entry = new[]
                    {
                        new 
                        {
                            MaterialNumber = "1.02",
                            Qty = 10
                        }
                     
                    }
                };
                List parameters = new List();
                parameters.Add(prdFeedMtrlParameter );
                httpClient.Content = JsonConvert.SerializeObject(parameters);

                var result = httpClient.AsyncRequest();
                
 
 
03 MES系统访问金蝶云星空(WebApi集成方式):生产补料单单据保存接口_第1张图片
在金蝶云星空生成的补料单,支持上下查订单

返回根目录 MES系统访问金蝶云星空(ERP)的接口定义及示例

你可能感兴趣的:(03 MES系统访问金蝶云星空(WebApi集成方式):生产补料单单据保存接口)