对于一个业务系统,要做到业务单据自定义,就有如下几个问题需要处理:
1单据上面信息自定义表示
2业务单据本身的状态如何自定义
3状态之间的关系如何定义.
4义务单据之间如何结转
1单据上面信息自定义表示(待添加)
2 业务单据本身的状态如何自定义
对于同一张单据,必然有不同的状态,一个起始状态,一个结束状态,几个中间状态。比如,单据有,草稿,审批,已生成。实际上状态可以由如下更细的状态来定义。
<1>是否可增加,可修改,可删除
<2>是否生效,失效
<3>经手的人
<4>是否保存更改之前的数据
<5>所绑定的操作
以上四个的任意组合,就构成了单据的状态.比如,<1>不可修改,删除<2>生效<3>保存原始数据<4>所绑定的操作:给单据加上操作员名字.这样一种组合,给他取个名字,就是审批;<1>不可修改,删除<2>失效<3>保存原始数据.这样一种组合,给他取个名字,就是作废;可增加,可修改,可删除,修改删除之后,仍然是可修改可删除,就是草稿状态.
对于业务系统,只要实现上面形成组合的元素,并提供让用户
组合这些元素,并给组合取名字的界面,便可以让用户自定义单据状态了.
3状态之间的关系如何定义(待添加).
4业务单据之间的结转关系如何处理
业务单据之间的结转关系如何处理,要么,上一个环节的单据,自动生成下一个环节的单据,或者,下一个环节的单据从上一个环节单据提取。不同种类的单据之间,应该共有一个抽象。它们的不同应该是信息上的不同,但是对于不同种类的的单据,组成单据信息的每一个成员的描述,应该是统一的。只有这样,不同种类的单据之间的结转,才可以共用一套算法。只要设置好不同种类的单据之间的彼此数据成员的映射关系,多对多,一对多,多对一,三个策略中的一个,结转就可以很好的工作。不同种类的单据的状态,也应该共用一种描述。因为拥有相同的描述,所在以可以有相同的算法。