单据|不管多复杂的系统设计,都离不开这9个字( 三 )


但由于收货结论与采购明细相差很大,两者并不是一个维度的数据集合,采购单产生于采购系统,收货则是在仓储系统,一条采购明细会生成多条收货明细,所以收货结论需要单独设计一张收货单来承载。
另外,收货结论会作为验收的输入信息,但验收和收货只是入库流程中的两个环节,并无很大的差异,所以可以统一设计到收货单中,根据状态加以区分(当然不同业务形态下的流程不尽相同,如果验收需要对收货结论进一步拆分或合并,则二者就无法共用单据存储,就需要设计不同的单据了)。
单据|不管多复杂的系统设计,都离不开这9个字
文章插图
如何定义单据
系统流程的流转是基于单据的流转状态来的,单据流转状态是单据的非常重要的属性,也是驱动流程流转的灵魂。
状态设计来源于系统关键节点的变化,在规划状态时,我们需要把系统流程从头到尾所有的节点都整理成线,然后挑出哪些是影响流程流转的关键节点,对节点的流向结果进行提炼,便得到了单据的状态。
例如仓库入库流程中,供应商到货以后,会分别进行①供应商签到→②仓库收货或拒收(合格品验收,不合格拒收)→③仓库验收→④仓库入门上架等4个节点,根据4个节点的输出结论,便能分别设计出供应商签到、收货完成、拒收、验收完成、上架完成等5个收货单状态(当然这只是最简单的举例,实际仓库收货流程会复杂的多),如图所示。
单据|不管多复杂的系统设计,都离不开这9个字
文章插图
根据系统节点设计单据状态
我们在设计单据状态时,需要遵循几个原则:

  1. 状态之间应该是平行且互斥的,不能存在交集。
  2. 状态之间流转应该有清晰流向,是线型而不是网型,不要相互穿插跳跃。
  3. 状态的设计不是凭空捏造的,必须和某个关键节点相呼应,由节点触发状态机流转。
  4. 状态设计最好只有一个开始节点,但可以有多个结束节点(正常结束状态和异常结束状态分开)。
  5. 状态设计应该足够精简,只有对关键逻辑产生影响的节点,才适合设计为状态。
三、填功能:破茧而出,实现系统功能当流程和单据梳理清晰以后,系统设计就成功了80% 了,最后20%在于系统功能的填充和实现,将功能按照业务需要的风格输出,形成系统原型和需求文档。
在填充系统功能时,也是有章可循的,我们需要依赖前面所做的流程梳理和系统单据:
1)首先,将流程节点中的线下操作流程和系统处理流程进行分类,只有系统处理流程是需要实现系统功能的。
2)接着,基于各环节的输入和输出信息设计对应的功能。功能包含带页面的操作性功能,以及不需要页面的系统逻辑处理功能,输入信息对应到系统功能上通常是查询条件、信息录入、导入等功能,输出信息通常对应查询结果、存储信息、操作日志、导出等功能。
3)然后,将关键功能与单据的状态变更结合起来,梳理出每个功能的详细逻辑以及对应的单据状态变更,系统功能便设计完成了。
4)最后,功能设计完以后,将系统功能和非系统功能串在一起验证一下是否和业务流程预期一致,不能出现流程盲区和卡点;若有,则继续完善,直到整个业务流程通畅无阻。
在设计B端系统功能设计时,可以参考尼尔森经典十原则,同时一定要遵循实用大于美观的原则,这里总结几个设计小贴士:
1)页面功能应该分清主次,页面越简单越好,这样的学习成本和实现成本最低,拒绝花里胡哨。
2)同一个系统内各页面设计的控件、页面布局、风格、颜色、字体应该统一,且符合大众操作习惯。