返回根目录 MES系统访问金蝶云星空(ERP)的接口定义及示例
需求描述
由计划部门向生产车间下达,并要求生产车间执行的生产任务。车间管理人员根据计划部门下达的生产订单,领用物料和组织生产,并进行车间资源的调度、分配。
ERP提供对MES数据交互平台,通知MES接受生产任务,需要检测物料是否齐套,如果齐套,推送出库信息到库管员,并将生产任务推送MES。
ERP将生产任务推送MES,需要MES那边提供接口。推送到MES系统的接口,后面专门写一篇帖子【06 金蝶云星空推送生产任务:调用MES系统提供的WCF接口】。
为了简化处理,暂时ERP提供生产订单的单据数据查询接口,MES系统通过该接口读取生产订单数据。
接口定义
/// 查询
///
///
public List
请求参数
{
"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
返回根目录 MES系统访问金蝶云星空(ERP)的接口定义及示例