在ERP系统的开发过程中,或者用我更喜欢的说法,在erp的制作过程中,很多的操作是数据的流向,数据的操作,数据的继续流量,这种类似流水线的数据处理,
譬如订单的处理,要经过订单抓取,订单状态核对,订单财务审核,订单人工审核,订单物流号获取,订单发货,等等,就是:
1-2-3-4-5-6-7-8,1是我们的初始数据, 8是我们的最终结果,当然,在实际的操作过程中,并不是单条线这么简单,很多的是各条线的交叉混杂,让整个系统看起来复杂的多,
系统软件是世界的抽象,我们这个时间是简单的,通过无限的循环,以及循环过程中发生的微小差异,早就了我们的世界,那么,可以这么说,我们的这个流水线,我们也可以进行切分,让他复杂的外表变的简单化,这个方法就是找到内在的机理
一.
ERP 流水线模型
1-->2-->3-->4-->5-->6-->7-->8-->9-->10,这是一条最简单的流水线处理流程,但是在实际情况下可能数据的来源不是一个线
而是 :
1------>} ====>3
2------>}
也就是说,3的数据来源,有两个,为1和2,同样,3产品的结果可以有多个,因此,N个数据的来源进入3,3操作数据后,产生了N个结果,让这个流水线变的错综复杂
但是万变不离其宗,我们需要分析的就是单个数据的处理模型
二:
数据处理模型
1--->} **********{----->4
}====> *****3**** }===>{
2--->} **********}------->5
上面的模型,3代表一个数据处理黑盒,1和2都可以给3传递数据,当然,1和2的数据类型不一样,譬如处理的订单可能是B2C网站的,也可以是亚马逊那边的订单,因此数据需要有数据类型,3接受数据后,进行数据处理,根据不同的操作算法,产品不同的结果,对应4和5,譬如订单审核后,有的订单是成功的,有的订单是失败的,那么成功的订单,就会进入下一步,但是失败的订单,就会停止,等待其他的处理,这就是数据的处理模型
三:
数据传递类型
在数据传递的类型中,有三种,这个要看传递数据的主动发起者,和数据的接收者来划分的。
在A->B(A为主动,B为被),A->B(B为主动,A为被动) , A->A,A把数据传递给本身
四:
数据的传入,传出,数据的处理
对于数据处理模型我们在细分,就分为数据的传入,传出,数据的处理,三个部分
4.1数据的传递
在三,我们看到了数据的传递类型,这里我想说的是数据传递的特性,设计到数据的传递,我们需要的是1.数据不能丢失,2数据不能重复被插入到B,
在上面的情况和要求下,我们需要1:数据操作成功后,进行数据标示,2:即使执行完,在被标示的时候出现问题,下次再次执行的时候,在接收方B依然有唯一字段进行防范数据的多次插入,当然,更新一般是没有问题的。也就是说,我们要保证在数据传递出现故障后,等故障消除后,系统的数据传递依然能够安全的持续进行,保证数据的不丢失和不重复。这是数据传递的精髓所在
五:数据传递的发起者
有三种,1是远程程序调用,被执行,2是CRON计划任务,3是操作客服进行的操作,无论哪种操作,我们都要考虑数据的安全性,A和B都要考虑数据的安全性,都不能完全的信任对方,
远程程序调用,CRON计划任务,一般用日志,或者数据表的形式进行标记每一步的执行,每次执行成功后,都需要在数据库中进行标示,也就是设置一个下次执行的开始点
,另外一点需要注意的是,被执行的数据,即使下次又被执行了一次,还是和一次执行一样的结果,这就需要对每次执行的数据做好状态标示,即使下次执行,发现被执行,就会被跳过,当然,这个防范措施,在接收方仍旧要进行处理,保证数据的一致性。
对于客服操作,某些操作可以不进行标示,毕竟人是可以看到结果的,但是为了防范误操作,还是和CRON一样,都需要保证数据不被丢失和不被重复。
六:角度分析:
涉及到角度分析,就要从某一个事物为中心,围绕这个事物展开的研究,就像日心说和地心说。日心说虽然代表的进步,但是这只是代表着太阳系,从宇宙来看,都不是中心。
如果从数据的处理流程来看,是12345678的流水线的处理,但是如果从订单表的数据这个中心点看,就是这个数据一直都在那里,然后12345678依次对这个数据进行改动,按照顺序
总结:
涉及到流水线,一般:
总状态:代表每一个节点处理完的结果,以及下一个节点处理数据的条件
节点状态,代表一个节点处理数据完成后不同的结果,标示为不同的结果,然后进行分流,如果只有一个结果,那么,就不需要节点状态
数据类型:这个代表节点处理的数据的来源,不同的来源传递过来的数据,类型不通,譬如,订单数据的处理,B2C的订单和亚马逊的订单的数据类型不同
操作时间:这个不用多讲
操作人:这个是为了以后找到对应人的责任
上面的五个字段一般是必备的,每一个节点,都要有一个操作时间,操作后的节点状态,以及操作人,每一步的节点处理完成后,总状态都要改变