02 MES系统访问金蝶云星空(WebApi集成方式):读取生产订单数据接口

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

需求描述

由计划部门向生产车间下达,并要求生产车间执行的生产任务。车间管理人员根据计划部门下达的生产订单,领用物料和组织生产,并进行车间资源的调度、分配。

ERP提供对MES数据交互平台,通知MES接受生产任务,需要检测物料是否齐套,如果齐套,推送出库信息到库管员,并将生产任务推送MES。

ERP将生产任务推送MES,需要MES那边提供接口。推送到MES系统的接口,后面专门写一篇帖子【06 金蝶云星空推送生产任务:调用MES系统提供的WCF接口】。

为了简化处理,暂时ERP提供生产订单的单据数据查询接口,MES系统通过该接口读取生产订单数据。

接口定义

/// 查询
        /// 
        /// 
        public List ExecuteBillQuery(string data)
 
 

请求参数

{
    "FormId": "PRD_MO",
    "FieldKeys": "FID,FBillNo,FTreeEntity_Fseq,FDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.Fspecification,FUnitId.FNumber,FWorkShopID.FNumber,FWorkShopID.FName,FBOMId,FBOMId.FNumber,FQty,FStatus,FDocumentStatus",
    "FilterString": "FDocumentStatus='C'",
    "OrderString": "",
    "TopRowCount": 0,
    "StartRow": 0,
    "Limit": 0
}

返回结果

[["FValue1","FValue2",...],["FValue1","FValue2",...],...]
[
    [100016, "MO000003", 1, "2019-11-20T00:00:00", "001", "测试产品", " ", "Pcs", "5.2", "金工车间", 100351, "001_V1.0", 100.0, "2", "C"]
]

代码示例

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

 if (LoginByAppSecret())
            {
                var dataObj = new
                {
                    FormId = "PRD_MO",//生产订单唯一标识
                    FieldKeys = GetMOFieldKeys(),//需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
                    FilterString = "FDocumentStatus='C'",//获取已经审核订单
                    OrderString = "",//排序
                    TopRowCount = 0,
                    StartRow = 0,
                    Limit = 0
                };
                var data = JsonConvert.SerializeObject(dataObj);
                var result = apiClient.ExecuteBillQuery(data);

                return JsonConvert.SerializeObject(result);
            }
            else
            {
                return "登录失败!";
            }
 /// 
        /// 需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
        /// 
        ///  
 private string GetMOFieldKeys()
        {
            List fieldKeys = new List();
            fieldKeys.Add("FID");//内码
            fieldKeys.Add("FBillNo");//订单号
            fieldKeys.Add("FTreeEntity_Fseq");//订单行号
           fieldKeys.Add("FTreeEntity_FEntryId");//订单内码FTreeEntity_FEntryId
            fieldKeys.Add("FDate");//订单日期

           fieldKeys.Add("FMate rialId.FNumber");//物料编码
            fieldKeys.Add("FMaterialId.FName");//物料名称
            fieldKeys.Add("FMaterialId.Fspecification");//规格型号
            fieldKeys.Add("FUnitId.FNumber");//计量单位
            fieldKeys.Add("FWorkShopID.FNumber");//生产车间编码
            fieldKeys.Add("FWorkShopID.FName");//生产车间名称
            fieldKeys.Add("FBOMId");//BOM内码
            fieldKeys.Add("FBOMId.FNumber");//BOM版本号
            fieldKeys.Add("FQty");//生产数量
            fieldKeys.Add("FStatus");//业务状态 1 计划, 2计划确认, 3 下达, 4 开工 , 5 完工,6 结案,7 结算
            fieldKeys.Add("FDocumentStatus");//单据状态 A 创建, B 审核中,C  已审核 ,D 重新审核
            fieldKeys.Add("FPLANSTARTDATE");//计划开始日期
           fieldKeys.Add("FPLANFINISHDATE");//计划结束日期
           fieldKeys.Add("fcreatedate");//制单日期
           fieldKeys.Add("F_BLN_Th");//台号
      fieldKeys.Add("F_BLN_JoinGXWWQty");//工序委外关联数量
      fieldKeys.Add("F_BLN_gxwwycksl");//工序委外已出库数量
     fieldKeys.Add("F_BLN_gxwwyrksl");//工序委外已入库数量
      fieldKeys.Add("F_BLN_Lckffr");//流程卡发放人
            return string.Join(",", fieldKeys.ToArray());
        }

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

 if (LoginByAppSecret())
            {
                HttpClient httpClient = new HttpClient();
                httpClient.Url = "http://localhost/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc";

                var dataObj = new
                {
                    FormId = "PRD_MO",//生产订单唯一标识
                    FieldKeys = GetMOFieldKeys(),//需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
                    FilterString = "FDocumentStatus='C'",//获取已经审核订单
                    OrderString = "",//排序
                    TopRowCount = 0,
                    StartRow = 0,
                    Limit = 0
                };
                List parameters = new List();
                parameters.Add(dataObj);
                httpClient.Content = JsonConvert.SerializeObject(parameters);

                var result = httpClient.AsyncRequest();
                return result;
            }
            else
            {
                return "登录失败!";
            }
 
 

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

你可能感兴趣的:(02 MES系统访问金蝶云星空(WebApi集成方式):读取生产订单数据接口)