K3 Wise 15.0 通过自定义报表增加查询所有即时库存的api接口原创
金蝶云社区-BlusJohn
BlusJohn
16人赞赏了该文章 1298次浏览 未经作者许可,禁止转载编辑于2023年08月31日 12:04:42

参考链接:

1、K3WISE能否通过API调用获取即时库存数据

2、API—即时库存查询


15.0自带的API查询即时库存,只能传入短编码,没有返回仓库编码,仓库名称信息,而且基本上没啥用。

上传图片

上传图片


本文主要补充通过参考链接2的方法实现:

1、带参数查询 物料长编码和仓库长编码 (必须带至少一个条件

2、不传参查询所有的即时库存


1的带参数查询 自定义SQL原文见参考链接2,已经给出。

补充配置上的问题,

①、在配置【自定义报表】的时候,需要维护关键字,如下,否则接口无法传入参数,直接测试也查询不出数据。

image.png

②、自定义报表保存后,api的地址也会跟着变化,要注意,地址要看【API说明】页面里的,而且最新修改的自定义报表会在最下面,做好上面的关键字后,API说明里面才会出来要传的参数。修改完报表后还要记得重新授权

上传图片


2不带参数查询所有的即时库存

①、新增一个自定义报表,我是通过【即时库存查询】直接改的,删除了过滤条件,并增加了仓库编码和仓库名称:


set nocount on 

declare @strItemNumber nvarchar(700)

declare @strStockNo nvarchar(100)

declare @strSelectSQL varchar(3000)

set @strSelectSQL='Create Table #TempInventory( [FBrNo] [varchar] (10)  NOT NULL ,[FItemID] [int] NOT NULL ,

[FBatchNo] [varchar] (200)  NOT NULL ,

[FStockID] [int] NOT NULL ,

[FQty] [decimal](28, 10) NOT NULL)

Insert Into #TempInventory Select u1.FBrNo,u1.FItemID,u1.FBatchNo,u1.FStockID,u1.FQty From ICInventory u1 where u1.FQty<>0 

Insert Into #TempInventory Select u1.FBrNo,u1.FItemID,u1.FBatchNo,u1.FStockID,u1.FQty From POInventory u1 where u1.FQty<>0 

Select t1.FNumber AS FMATERIALNUMBER,t1.FModel as FMaterialModel,t1.FName AS FMaterialName,t3.FName as FUnitName,t4.FName as FCUUnitName,t2.FNumber AS FStockNumber,t2.FName AS FStockName,

 sum(u1.FQty) as FBUQty,sum(u1.FQty/t4.FCoefficient) as FCUUQty 

 From #TempInventory u1

 left join t_ICItem t1 on u1.FItemID = t1.FItemID

 left join t_Stock t2 on u1.FStockID=t2.FItemID

 left join t_MeasureUnit t3 on t1.FUnitID=t3.FMeasureUnitID

 left join t_MeasureUnit t4 on t1.FStoreUnitID=t4.FMeasureUnitID

 left join t_Measureunit t19 on t1.FSecUnitID=t19.FMeasureunitID  

 where (Round(u1.FQty,t1.FQtyDecimal)<>0 OR Round(u1.FQty/t4.FCoefficient,t1.FQtyDecimal)<>0) 

 AND t1.FDeleted=0 group by u1.FItemID,t1.FNumber,t1.FModel,t1.FName,t3.FName,t4.FName,t2.FNumber,t2.FName

 Order By t1.FNumber 

Drop Table #TempInventory'

exec(@strSelectSQL)


新增完毕后,不需要设置关键字,因为不需要传参数进去。

②、修改显示的字段名称,如果这一步没有出来,说明上一步的sql语句有问题,没有查询出结果,填写报表标题下一步即可。报表名称可以自定义,后续API授权里面就会出现这个报表名称。

image.png

image.png

最后取【API说明】页面点 【直接SQL报表】拖到最下面,就是这个API的访问地址。


附上最后的获取数据访问的效果。

image.png

赞 16