CLP 软件产品研发

K3Cloud直接调拨单信息数据获取以及单据下推过程中的数据查询


11月的时候,应业务要求编制了VBA用于计算提成,前期已经写过一篇文章《使用VBA中的XMLHTTP群发企业微信消息》,12月时,业务提出了新的需求,开始理解其实挺简单的,就是去读取金蝶K3Cloud的数据库中的“直接调拨单或订单中的数据”,实际开始编制数据查询语句时发现不简单啊,过程虽然曲折,但是也弄清楚了K3Cloud的单据的数据库设计的思路,特此记录。

本文阅读者要求:(好像不好找这种人才哦,哈哈,自我陶醉一下)

  • 熟悉MS SQL;熟悉SQL语言
  • 熟悉金蝶ERP业务(产销存)
  • 了解K3Cloud的单据功能
  • 了解WK3Cloud的数据库结构
  • 了解K3Cloud的WebAPI接口的查询及调试方法

本文过程中需要查阅的相关资料:

  • 《金蝶云cloud7.1数据字典》 用于了解数据库字段信息和定义,如果没有可以发电子邮件给我:hoeking@qq.com

  • 《K3Cloud的WebAPI接口》 主要用于查找自定义单据中新增的数据,官方数据字典中不包含二开、自定义的单据的数据字段说明,使用和查找方法在K3客户端工具中,不会用可以Baidu。

本文过程中需要的工具:

  • 【MSSM V18】 微软官方的数据库管理工具
  • 【VSCODE】 微软开源的源代码编辑器,万能工具,我用这个来编写SQL

解决对策

因为业务核算业务员提成时采用的是线下手工核算,因为业务员提成的异常情况和变化太多,目前难以用系统来实现,现在的对策是,人工先从K3客户端中导出基本的数据,然后,通过VBA+SQL方式根据直接调拨单号+物料号,从K3数据库中获取得相关的信息,根据这些信息在结合业务的提成的计算规则编制VBA计算函数,从而计算出结果。

操作流程如下:(注意这里首先还得将提成模板设计好)

  • 首先业务人员使用过滤方案“导出租赁提成计算列表”;从K3中导出租赁计提单列表

  • 将导出的租赁数据填充到“租赁提成”sheet

  • 在“租赁提成”sheet中,点击按钮“获取k3基础信息”

  • 使用公式……计算提成 (注意这里首先还得将提成模板设计好)

    image-20211230135810622

程序流程如下:

image-20211230135852139

约束条件

  • 首先,你需要数据库帐号(我有一个用于只读的数据库帐号),因为得写SQL调试数据。
  • 其次,你需要K3应用的管理员帐号,(如果需要查询Webapi的话。)

小技巧

1、将SQL语句构建好放在Excel中,条件参数都定义好,通过VBA将参数获取后替换进去在进行SQL查询。

image-20211230140651288

正题

  • 研究K3中的直接调拨单结构。
  • 查找相关的表结构
  • image-20211230140909261

​ 对表结构进行分析后如下:

直接调拨单这三个表核心表:

image-20211230141523486


Comments

Content