返回根目录 SRM系统访问金蝶云星空(ERP)的接口定义及示例
需求描述
采购申请的物料对应供应商若无价目表,则需要向供应商询价。
SRM获取ERP的询价单,走询比价流程。
ERP询价单的字段如下:
单据头:FBillHead
实体主键:FID
单据编号:FBillNo
单据类型:FBillTypeID
业务类型:FBusinessType(采购 BZXJ / 委外 WWXJ)
询价日期:FInquiryDate
采购员:FPurchaserId
创建日期:FCreateDate
单据状态:FDocumentStatus
关闭状态:FCloseStatus
作废状态:FCancelStatus
价格生效日期:FBeginDate
价格失效日期:FEndDate
报价截止日期:FExpiryDate
修改日期:FModifyDate
单据体:FEntity
实体主键:FEntryID
物料编码:FMaterialId
物料名称:FMaterialName
规格型号:FModel
询价单位:FUnitID
询价数量:FQty
到货日期:FArrivalDatetime
备注:FEntryNote
供应商:F_BLN_SupplierId
接口定义
/// <summary>查询</summary>
/// <param name="data"></param>
/// <returns></returns>
public List<object> ExecuteBillQuery(string data)
请求参数
{
"FormId": "SVM_InquiryBill",
"FieldKeys": "FID,FBillNo,FBillTypeID.FName,FBusinessType,FInquiryDate,FPurchaserId.FName,FCreateDate,FDocumentStatus,FCloseStatus,FCancelStatus,FBeginDate,FEndDate,FExpiryDate,FModifyDate,FEntity_Fseq,FMaterialId.FNumber,FMaterialName, FModel,FUnitId.FName,FQty,FArrivalDatetime,FEntryNote,F_BLN_SupplierId.FNumber,F_BLN_SupplierId.FName",
"FilterString": "",
"OrderString": "FDate desc",//排序
"TopRowCount": 0,
"StartRow": 0,
"Limit": 0
}
返回结果
[["FValue1","FValue2",...],["FValue1","FValue2",...],...]
代码示例
无引用组件示例(不引用金蝶的组件):
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 = "SVM_InquiryBill",//工序委外单唯一标识
FieldKeys = GetFieldKeys(),//需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
FilterString = "FDocumentStatus='C'",//获取已经审核单据
OrderString = "FDate desc",//排序
TopRowCount = 0,
StartRow = 0,
Limit = 0
};
List<object> parameters = new List<object>();
parameters.Add(dataObj);
var data = JsonConvert.SerializeObject(parameters);
httpClient.Content = data;
var result = httpClient.AsyncRequest();
return result;
}
else
{
return "登录失败!";
}
/// <summary>
/// 需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
/// </summary>
/// <returns></returns>
private string GetFieldKeys()
{
List<string> fieldKeys = new List<string>();
fieldKeys.Add("FID");// 实体主键:
fieldKeys.Add("FBillNo");// 单据编号:
fieldKeys.Add("FBillTypeID.FName");// 单据类型:
fieldKeys.Add("FBusinessType");// 业务类型:
fieldKeys.Add("FInquiryDate");// 询价日期:
fieldKeys.Add("FPurchaserId.FName");// 采购员:
fieldKeys.Add("FCreateDate");// 创建日期:
fieldKeys.Add("FDocumentStatus");// 单据状态:
fieldKeys.Add("FCloseStatus");// 关闭状态:
fieldKeys.Add("FCancelStatus");// 作废状态:
fieldKeys.Add("FBeginDate");// 价格生效日期:
fieldKeys.Add("FEndDate");// 价格失效日期:
fieldKeys.Add("FExpiryDate");// 报价截止日期:
fieldKeys.Add("FModifyDate");// 修改日期:
fieldKeys.Add("FEntity_Fseq");//分录行号
fieldKeys.Add("FMaterialId.FNumber");//物料编码
fieldKeys.Add("FMaterialId.FName");//物料名称
fieldKeys.Add("FMaterialId.Fspecification");//规格型号
fieldKeys.Add("FUnitID.FNumber");//计量单位
fieldKeys.Add("FQty");//数量
fieldKeys.Add("FArrivalDatetime");// 到货日期
fieldKeys.Add("FEntryNote");//备注
fieldKeys.Add("F_BLN_SupplierId.FNumber");//供应商编码
fieldKeys.Add("F_BLN_SupplierId.FName");//供应商名称
fieldKeys.Add("F_ORA_OneTimePrice");//是否一次性价格,true 一次性
return string.Join(",", fieldKeys.ToArray());
}
网友评论