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

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

需求描述

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

接口定义

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

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

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

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

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

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

请求参数

{
    "PrdBillNumber": "MO000029",
    "Entry": [{
        "MaterialNumber": "1.02",
        "Qty": 10
    }]
}

返回结果

{
    "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 prdReturnMtrlParameter = new 
                {
                    PrdBillNumber = "MO000029",
                    Entry = new[] 
                    {
         
                        new 
                        {
                            MaterialNumber = "1.02",
                            Qty = 10
                        }
                      
                    }
                };
                var result = apiClient.Execute("BLN.CY.ApiClient.K3Cloud.Stub.PrdReturnMtrlService.Add,BLN.CY.ApiClient.K3Cloud.Stub", new object[] { prdReturnMtrlParameter });

            }

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

 if (LoginByAppSecret())
            {
                HttpClient httpClient = new HttpClient();
                httpClient.Url = "http://localhost/k3cloud/BLN.CY.ApiClient.K3Cloud.Stub.PrdReturnMtrlService.Add,BLN.CY.ApiClient.K3Cloud.Stub.common.kdsvc";
                var prdReturnMtrlParameter = new 
                {
                    PrdBillNumber = "MO000029",
                    Entry = new[] 
                    {
         
                        new 
                        {
                            MaterialNumber = "1.02",
                            Qty = 10
                        }
                      
                    }
                };
                List parameters = new List();
                parameters.Add(prdReturnMtrlParameter );
                httpClient.Content = JsonConvert.SerializeObject(parameters);

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

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

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