Projects:Store Server BP Data Segmentation
This project will focus on implementing data segmentation of Business Partners from the central server to the store server. Data segmentation means that only specific BPs are synchronized to the store server. For example only the BPs which have ordered a product in the store.
Depending on the country and law, it is also possible that restrictions apply on what data can be present on a store server. Also in the case of external stores (franchising) there can be restrictions.
BP synchronization and segmentation plays a role in 2 distinct moments:
- store server creation
- runtime sync
For the runtime sync the statement can be made that the business partner is selected in WebPOS and from there creation in the store is triggered. There are however cases when the store server is offline and the BP is created in the central server. In this case the new BP has to be synced from the central to the store server.
A choice need to be made if this syncing is done using Symmetric DS or a custom syncing through the import entry framework.
How business partner are segmentated
Changes done to a business partner will be synchronized to a store if any of these conditions are met:
- The business partner has been explicitely included in a store. The Business Partner by Server window stores the relation between business partners and stores. When an order is created for a business partner in a store, the business partner will be automatically added to the store if it was not already included.
- The business partner is NOT flagged as Standard Store Customer. The sales representatives and the business partners that are the default business partners of the organizations should not have that flag checked.
Both the table that stores the business partner-store relation and the flag to determine if a business partner is a standard customer are initialized using the following ant task:
ant -f modules/org.openbravo.retail.storeserver.synchronization initialize.bp.segmentation.tables
Adding a business partner to a store
When a business partner is included in a store by adding a rowto the Business Partner by Server window, it is required to synchronize to the store the relevant rows of c_bpartner and other tables related to it. The list of tables related with c_bpartner is defined in this window:
This tables, along with c_bpartner, are synchronized to the server by "touching" (updating the updated column to the current timestamp) the relevant rows, so that the changes are detected by SymmetricDS, whose business partner router will now be able to route these data to the proper store, as the router takes into account the Business Partner by Server window.