获取库存如何自定义条件原创
金蝶云社区-null
null
4人赞赏了该文章 1928次浏览 未经作者许可,禁止转载编辑于2019年11月29日 14:35:43

    很多业务单据上都配置了获取库存的菜单,点击菜单,就会获取对应的即时库存数量并回填到单据的指定字段上。系统服务在执行时会根据配置信息读取当前分录字段的值,配置了匹配字段并录入了数据库存维度都会参与过滤,最终得到满足条件的即时库存并汇总数量。

    如果要执行一些特殊条件需求,比如某些单在执行获取服务时单据的仓库字段留空,但是希望获取库存时只希望得到部分仓库的库存,比如只要普通仓,或者只要待检仓的库存数量等。这样的需求标准服务的配置无法满足,对于类似的扩展需求,系统的获取库存服务提供了二开插件接口,可以依据接口编写二开插件,在插件中改写读取即时库存数据的过滤条件,或者直接对获取到的即时库存结果集进行筛选,然后交由标准服务返回到单据上。

 

2.png

    编写插件需要引用标准组件Kingdee.K3.SCM.App.Core.dll,派生抽象类AbstractGetInvStockPlugIn。

    主要方法如下:

    RegexGetInvDataSql:可以对服务的取数脚本进行处理,按照业务需求修改过滤条件

    AfterGetAllData:可以对标准服务取得的结果集进行加工

    ApplyExtFilter:因服务是支持批量的,也就是可以一次性获取单据所有分录的库存,这里可以对每一条单据分录的结果集进行处理。

    插件类也有一些属性可以判定应用场景:

    Ctx:上下文

    BillFormId:单据FormID

    BillEntity:业务单据数据实体

    ServiceSet:获取库存服务配置信息


    完成插件编写后需要要对插件的类全名(格式与单据的表单插件以及列表插件相同)在上面配置界面的插件栏进行注册。

赞 4