通过WebApi获取预计可发量原创
金蝶云社区-圣杰
圣杰
14人赞赏了该文章 6,326次浏览 未经作者许可,禁止转载编辑于2020年12月13日 16:29:54
summary-icon摘要由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参数配置按上面设置即可: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人打赏
还没有人打赏,快来当第一个打赏的人吧!