转载

数据映射-随记

在整个架构分析中,通常的观点即是流程是动态的,而数据本身是静态的,但是在动静结合的思维模式下可以看到,数据对象之间的流转和映射往往也可以反映出动态的流程特征。

从一个典型的工程项目建设端到端流程来看,从立项到可研设计,再到采购需求提出,触发相应的招投标操作,签订采购合同和订单,进入采购订单的执行和接收,再到出入库操作,最后到最后的转资转固构成一个完整的端到端闭环流程。而在流程中可以看到核心的业务活动承担的立项单,可研设计,采购需求,采购合同,采购订单,采购接收单,转资清单间出现了动态的数据映射关系。

正是由于出现了这种数据映射关系,那么从数据的角度出发往往也可以进行端到端的流程跟踪,以数据对象为核心朝流程前后展开,形成完整的数据追踪链条。

举一个简单的例子来说,我们以整个流程中的任何一个核心业务活动节点为源进行前后追溯,比如以采购订单出发,当我们输入编号为A001的采购订单的时候,我们可以发起对该订单的前后展开。

朝前我们可以看到该采购订单来源于哪个采购合同,该采购合同对应到哪个采购需求,再朝前我们进一步可以看到该采购需求出自哪一个立项项目。朝后我们可以追溯该采购订单分解到哪几个采购接收单进行采购接收和入库操作,再朝后又可以追溯到采购订单的采购内容在哪一个转资清单中进行转资。通过这种方式我们就形成一个完整的数据追踪链条。

我们关心流程,但是我们更加关心端到端流程中的前后数据流转。这在软件开发里面也有类似的例子,就如我们要去了解一个完整的业务系统流程和功能,如果我们仅仅黑盒的前台业务流程和功能,往往很难对业务有完整的理解,特别是业务的实现逻辑,但是如果我们搞清楚了整个业务系统的底层数据库和数据逻辑结构,那我们就更加容易了解整体业务功能的内部实现机制。

将数据链按流程的视角动态化往往并不容易,其最难的地方就在于流程前后的多个业务对象之间往往不是简单的1对1或者1对多映射关系,而会出现类似多对多映射这种复杂关系逻辑。就如可以把多个采购需求中同一个供应商的需求合并到一个采购订单中进行处理,也可以多多张采购订单的采购内容根据实际设备的安装实施进展情况进行转资处理,这些都可能出现多对多映射导致了底层整体逻辑结构的复杂性。其次不同业务对象之间的映射层级往往是不同的,即既可以是对象头信息之间的映射,又可以是对象的明细信息之间的映射,这本身也是增加的数据关系的复杂性。

在将数据链按流程进行可视化展现的时候,对于多对多关系的处理,我们需要在两个业务对象间引入多对多关联节点,在对不同层级映射实现的时候需要考虑层级映射的展现方式。这些问题如果能够解决好,我们往往就可以通过可视化的数据链来更加直观的展示业务层面的需求,类似:

1. 我年初申请立项的项目当前状态如何,涉及到签订了几个采购订单,每个订单接收情况如何了?

2. 当前的转资清单的转资明细内容究竟是通过哪几个采购订单采购进来的?

3. 我如何能够将采购的物料,和最终的资产对应上?如何建立实物属性和财务属性间的映射关系?

这些业务层面的问题往往最终都会体现层数据动态映射的关系和逻辑问题,值得思考。可视化的数据追踪链虽然只还是构思阶段,但是如同我前面博客文章谈到的企业信息可视化一样,是实际可以解决业务场景下真实需求的IT解决方案和实现。这不是简单的数据静态可视化,而是数据的动态流程化。

原文  http://blog.sina.com.cn/s/blog_493a84550102wegd.html
正文到此结束
Loading...