通过WebApi获取预计可发量原创
14人赞赏了该文章
6,326次浏览
编辑于2020年12月13日 16:29:54
摘要由AI智能服务提供
本文描述了如何使用金蝶K3 Cloud的Web API接口进行登录验证和查询库存预计量的过程。首先,通过配置站点地址、账套ID、用户名和密码等参数进行Web API的初始化。接着,构造一个包含库存组织、物料和仓库等信息的JSON查询字符串,以查询特定库存组织、仓库和物料的预计量。然后,通过API客户端执行登录验证,验证通过后调用获取预计量的接口,并接收返回的结果。文中还列举了查询参数和返回结果的结构,以及如何通过Web Api界面设置Web API参数。
代码调用举例:
// 1. webapi参数配置
string url = "站点地址";
string dataCenterId ="账套Id";
string userName ="用户名";
string userPwd ="用户密码";
// 2. 构造查询参数(查询某库存组织某仓库某物料的预计量)
string queryArgs = "[{\"StockOrgId\": {\"FNumber\": \"100\"},\"MaterialId\": {\"FNumber\":\"0.018\"},\"StockId\": {\"FNumber\":\"01\"}]";//查询参数
//3. 登录验权
var client = new Kingdee.BOS.WebApi.Client.K3CloudApiClient(url);
var ret = client.ValidateLogin(dataCenterId, userName, userPwd, 2052);
var jResult = JObject.Parse(ret);
var resultType = jResult["LoginResultType"].Value<int>();
if (resultType != 1 && resultType != -5) return;
// 4.调用获取预计量接口:
var result = client.Execute<string>("Kingdee.K3.SCM.WebApi.ServicesStub.ExpectQtyQueryWebApi.GetExpectQty", new object[] { pushData });
WebApi参数如何设置?
管理员登陆,打开Web Api,随便打开一个单据,点击WebApi在线验证,即可看到如下界面,webapi参数配置按上面设置即可:
如何构造查询参数?
支持以下查询参数,请按需构造:
public int Row { get; set; } //物料ID public long MaterialId { get; set; } //物料MASTERID public long MaterialMasterId { get; set; } //库存组织id public long StockOrgId { get; set; } //仓库 public long StockId { get; set; } //仓位 public long StockLocId { get; set; } //货主 public long KeeperId { get; set; } //货主类型 public string KeeperTypeId { get; set; } //批号 (由于批号处理的特殊性 不能直接用id匹配) public long LotId { get; set; } //批号文本 public string LotText { get; set; } //辅助属性 public long AuxPropId { get; set; } //BOM版本 public long BomId { get; set; } //库存状态 public long StockStatusId { get; set; } //目标单位 public long UnitId { get; set; } //基本单位 public long BaseUnitId { get; set; } //基本单位数量 public decimal BaseUnitQty { get; set; } //生产日期 public DateTime ProductDate { get; set; } //有效期至 public DateTime ExpiryDate { get; set; } //计划跟踪号 public string MtoNo { get; set; } //保管者 public long OwnerId { get; set; } //保管者类型 public string OwnerTypeId { get; set; } //项目编号 public string ProjectNo { get; set; }
其中【库存组织、物料、仓库、单位、库存状态、BOM、货主、保管者】支持按编码(FNumber)指定查询条件。【仓位和辅助属性】暂不支持!
构造的JSON查询参数举例如下:
{
queryExpectQtyArgs: [{
"Row":1,
"StockOrgId": {"FNumber": "100"},
"MaterialId": {"FNumber":"0.018"},
"UnitId":{"FNumber":"Pcs"},
"StockId": {"FNumber":"01"},
"StockStatusId": {"FNumber":"KCZT01_SYS"},
"BomId":{"FNumber":"0.018_V1.0"},
"LotText":"Lot-01",
"ProductDate":"2018-08-01",
"ExpiryDate":"2021-08-01",
"OwnerTypeId":"BD_OwnerOrg",
"OwnerId":{"FNumber":"100"},
"KeeperTypeId":"BD_Supplier",
"KeeperId":{"FNumber":"100"},
"ProjectNo":"P.No001",
"MtoNo":"M.No001"
}]
}
举例:查询某库存组织某仓库某物料的预计量:
[{"StockOrgId": {"FNumber": "100"},"MaterialId": {"FNumber":"0.018"},"StockId": {"FNumber":"01"}]
返回的结果类型?
//行号
public int Row { get; set; }
//物料ID
public long MaterialId { get; set; }
//基本单位
public long BaseUnitId { get; set; }
//库存基本单位数量
public decimal StockBaseUnitQty { get; set; }
//库存数
public decimal StockQty { get; set; }
//目标单位
public long UnitId { get; set; }
//预计基本单位量(可发量 = 即时库存+预计入-预计出)
public decimal ExpectBaseUnitQty { get; set; }
//预计入基本单位数量(待入量)
public decimal ExpectInBaseUnitQty { get; set; }
//预计入数量(待入量)
public decimal ExpectInQty { get; set; }
//预计出基本单位数量(待发量)
public decimal ExpectOutBaseUnitQty { get; set; }
//预计出数量(待发量)
public decimal ExpectOutQty { get; set; }
//预计量(可发量 = 即时库存+预计入-预计出)
public decimal ExpectQty { get; set; }
返回结果示例:
[
{
"ExpectOutBaseUnitQty": 46.0000000000,
"ExpectOutQty": 46.0000000000,
"ExpectInBaseUnitQty": 0.0,
"ExpectInQty": 0.0,
"ExpectBaseUnitQty": -35.0000000000,
"ExpectQty": -35.0000000000,
"Row": 0,
"MaterialId": 100201,
"UnitId": 0,
"BaseUnitId": 0,
"StockBaseUnitQty": 11.0000000000,
"StockQty": 11.0000000000
}
]
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读