工作原理
在我们学习怎样操作之前,我们最好了解一下这个模块的工作原理,这样就可以起到举一反三的效果。同步永远是对一个分店(包括总店副版)和总店来说的,如果所有分店都和总店一致了,那么分店之间也就一致了。分店和分店之间是不做直接的同步的,是靠总店间接实现的。
同步的过程一般分为两大步:
第一步是差异检测,例如,我们检测商品资料,分店就会从总店获得总店的那份商品资料,和本地的自己的商品资料进行对比,并把对比结果报告给用户。除了库存信息以外,其它数据对比的依据是看两者的版本号是否一样,所有数据在生成时,会被给与一个版本号,数据每被修改一次,版本号就会增加,所以版本号大的一方是更新的数据,版本号不一样,也就说明数据不一样。对于库存信息,数量不一样就说明有差异。
第二步是差异校正过程,在用户看到检测报告后,如果发现有不一致的情况,可以选择进行修正。除了库存信息以外,其它数据的修正原则是:
库存信息的校正原则是:
例如,我们有A,B,C三个店,A店是总店,其它的是分店,我们有货品X,X货品在每个店都有库存。现在,各个店库存信息为下表:
货品X | A店库存 | B店库存 | C店库存 |
从店A看 | 4 | 3 | 4 |
从店B看 | 3 | 5 | 5 |
从店C看 | 5 | 5 | 3 |
显然这些库存信息发生了不一致的情况,其中绿底数量为本店看本店的库存。我们首先,在B店跟总店A进行同步,根据原则1,我们的得到:(红字为修正的数据)
货品X | A店库存 | B店库存 | C店库存 |
从店A看 | 4 | 5 | 4 |
从店B看 | 4 | 5 | 4 |
从店C看 | 5 | 5 | 3 |
根据原则1,A店数据中,关于B店的库存被修正成了5,B店对于店A和C的库存,被修正成了4和4,跟总店A一致。然后我们再在C店进行同步处理,得到(蓝字为修正的数据):
货品X | A店库存 | B店库存 | C店库存 |
从店A看 | 4 | 5 | 3 |
从店B看 | 4 | 5 | 4 |
从店C看 | 4 | 5 | 3 |
根据原则1,A店数据中,关于C店的库存被修正成了3,C店对于店A的库存,被修正成了4,跟总店A一致。到目前为止,校正工作进行了一轮,数据还是没有完全一致,根据原则2,我们需要进行第二轮校正。我们在B店再次进行同步,得到:
货品X | A店库存 | B店库存 | C店库存 |
从店A看 | 4 | 5 | 3 |
从店B看 | 4 | 5 | 3 |
从店C看 | 4 | 5 | 3 |
这次在B店中的关于C店库存被修正跟A店一致,变成了3。然后,我们再在C店进行同步,也得到相同的结果。
注意事项:
从上述描述中,您可能会认为库存校正要做两轮,这个太麻烦了吧。这里讲的是完整的步骤,根据具体情况,您可以进行简化。例如,某个用户有5家店,其中一家分店A进行了重装。如果按原则2,我们需要同步8次,实际上我们同步4次就可以了。我们首先对A店进行校正,这样A店得到了其它店的正确库存信息,总店得到了A店的正确库存信息。下一步,我们对其它分店进行校正,其它分店也就得到了A店的正确库存。如果A店和B店都进行了重装,我们只要同步6次就可以了。我们首先对A和B店进行同步,然后进行第二轮同步就可以了。
如果总店进行了重装,步骤是不能简化的,您一定要进行两轮的同步,这也说明总部数据的重要性。
总之,第一轮同步的目的是为了总店掌握所有分店的正确库存,第二轮同步的目的是为了每个分店从总店获得其它店的正确库存。在目的达到的情况下,我们可以适当地简化步骤。