工作原理

在我们学习怎样操作之前,我们最好了解一下这个模块的工作原理,这样就可以起到举一反三的效果。同步永远是对一个分店(包括总店副版)和总店来说的,如果所有分店都和总店一致了,那么分店之间也就一致了。分店和分店之间是不做直接的同步的,是靠总店间接实现的。

同步的过程一般分为两大步:

第一步是差异检测,例如,我们检测商品资料,分店就会从总店获得总店的那份商品资料,和本地的自己的商品资料进行对比,并把对比结果报告给用户。除了库存信息以外,其它数据对比的依据是看两者的版本号是否一样,所有数据在生成时,会被给与一个版本号,数据每被修改一次,版本号就会增加,所以版本号大的一方是更新的数据,版本号不一样,也就说明数据不一样。对于库存信息,数量不一样就说明有差异。

第二步是差异校正过程,在用户看到检测报告后,如果发现有不一致的情况,可以选择进行修正。除了库存信息以外,其它数据的修正原则是:

  1.   如果总店有该数据,而本店没有,则本店获得总店的一份拷贝。
  2.   如果总店没有有该数据,而本店有,则总店获得本店的一份拷贝。
  3.   如果总店和本店都有该数据,以版本号高的为准进行同步。

库存信息的校正原则是:

  1. 本店对本店的库存有决定权,对其它分店的库存,总店有决定权。
  2. 两轮校正一定可以保证库存数据在每个分店的一致性。

例如,我们有A,B,C三个店,A店是总店,其它的是分店,我们有货品X,X货品在每个店都有库存。现在,各个店库存信息为下表:

   货品X A店库存 B店库存 C店库存
从店A看
从店B看
从店C看

显然这些库存信息发生了不一致的情况,其中绿底数量为本店看本店的库存。我们首先,在B店跟总店A进行同步,根据原则1,我们的得到:(红字为修正的数据)

   货品X A店库存 B店库存 C店库存
从店A看
从店B看
从店C看

根据原则1,A店数据中,关于B店的库存被修正成了5,B店对于店A和C的库存,被修正成了4和4,跟总店A一致。然后我们再在C店进行同步处理,得到(蓝字为修正的数据):

   货品X A店库存 B店库存 C店库存
从店A看
从店B看
从店C看

根据原则1,A店数据中,关于C店的库存被修正成了3,C店对于店A的库存,被修正成了4,跟总店A一致。到目前为止,校正工作进行了一轮,数据还是没有完全一致,根据原则2,我们需要进行第二轮校正。我们在B店再次进行同步,得到:

   货品X A店库存 B店库存 C店库存
从店A看
从店B看
从店C看

这次在B店中的关于C店库存被修正跟A店一致,变成了3。然后,我们再在C店进行同步,也得到相同的结果。

注意事项:

从上述描述中,您可能会认为库存校正要做两轮,这个太麻烦了吧。这里讲的是完整的步骤,根据具体情况,您可以进行简化。例如,某个用户有5家店,其中一家分店A进行了重装。如果按原则2,我们需要同步8次,实际上我们同步4次就可以了。我们首先对A店进行校正,这样A店得到了其它店的正确库存信息,总店得到了A店的正确库存信息。下一步,我们对其它分店进行校正,其它分店也就得到了A店的正确库存。如果A店和B店都进行了重装,我们只要同步6次就可以了。我们首先对A和B店进行同步,然后进行第二轮同步就可以了。

如果总店进行了重装,步骤是不能简化的,您一定要进行两轮的同步,这也说明总部数据的重要性。

总之,第一轮同步的目的是为了总店掌握所有分店的正确库存,第二轮同步的目的是为了每个分店从总店获得其它店的正确库存。在目的达到的情况下,我们可以适当地简化步骤。