全流程跟踪解析(1)原创
金蝶云社区-汽修工
汽修工
26人赞赏了该文章 1204次浏览 未经作者许可,禁止转载编辑于2022年08月28日 18:05:09
封面
  • 对于我们这些刚接触bos平台的小白来说,单据之间的关联关系总是让人头疼,不知道上下查受哪些表的影响,全流程跟踪又是从哪里取数的?

image.png
对于开发来说,知其然而不知其所以然,总是让人苦恼的,抱着这种烦恼我们来探索一下到底是什么表存储了这些信息,之前大家应该知道在单据转换的时候,我们要在下游的单据的属性 单据关联配置中 要设置一些信息,其中就包含 关联表名:

image.png

接着就很自然的去数据库中查一下,看看记录了哪些信息

select * from t_PUR_POOrderEntry_lk

image.png

稍微解析一下表中字段含义,可以参考:

星空BOS——单据转换的lk表 (kingdee.com)

大家看到了,其实很简单,就是上游单据key值和下游单据key以及转换规则ID和控制字段等。

控制字段的含义,可以参考:

单据关联配置 (kingdee.com)

好了,那么了解了这个以后,我们可以删除其中的某个单据下推的记录,然后我们会发现,去下游单据上查或者去上游单据下查以及全流程跟踪都可以看到,说明不是这个表控制这些操作。


  • 接着我用SQL Server Profiler监控,然后打开某个单的全流程跟踪,发现后台数据库执行的脚本中有这几个表:

    • t_BF_TableDefine

      image.png

      FTABLEID:没什么好说的,就是个GUID唯一值;

      FTABLENUMBER:参与过单据转换的字段对应的表;

      FFORMID:单据标识;

      FENTITYKEY:参与过单据转换的实体标识;

      FSEQ:也算是Id,后面的表里面有存储这个值,用来关联。

    • t_BF_Instance 

      image.png

      FINSTANCEID:实例Id,这个表的主键,和分录表T_BF_INSTANCEENTRY 通过这个字段关联;

      FFIRSTFORMID:上游表单标识;

      FFIRSTBILLID:上游表单内码;

      FFIRSTBILLNO:上游表单单据编码。

    • T_BF_INSTANCEENTRY

      image.png

      FSTABLENAME:上游关联表的表名;

      FSID:上游关联行的内码;

      FTTABLENAME:下游关联表的表名;

      FTID:下游关联行内码;

      FFIRSTNODE:是否是首节点。

    • T_BF_INSTANCEHIS

      image.png

    • T_BF_INSTANCEENTRYHIS

      image.png

              PS:后面两张表没什么好说的,表名就是前两个表加了个HIS,说明是历史表,归档表的意思。需要强调的是:

              FSTABLEID:相当于FSTABLENAME这个字段,只不过变成了ID,需要用表名去t_BF_TableDefine表中查询,获取FSeq 就是这个字段的值了;

              FTTABLEID:这个字段也是同理,就不赘述了。

  • 接着继续写哈,可能大家会好奇,归档是如何进行的,大家可以猜测一下,应该是执行计划里面有什么服务。刚开始我用关键字服务搜索,没有找到,我换了个关键字流程,然后找到如下图所示:

    image.png

终于找到了哈!进去看看:

image.png

这里涉及到CRON表达式,有些伙伴可能不清楚(0 0/30 00-06 * * ? )是什么意思,可以用解析工具反解析如下:

image.png这里给大家个连接作为参考:

执行计划支持CRON表达式 (kingdee.com)

如果帮助到你的话,希望点赞收藏哈!

未完待续!!!!


赞 26