Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The facilityId is generated automatically when facilities are created. The terminal number must be unique so for our implementation we used <facilityId-1,2,n> as a convention for identifying terminals. This is not required. Use whatever convention suits your purpose. We also used this number as the prefix in entityengine.xml but it makes record id's rather long.

Code Block

<entity-engine-xml>
 
<\!-\- MCS->POS Per Store Server to POS Terminal
     This data is loaded on the Master Central Server \-->
    <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/>
    <\!-\- these are used to update sync settings on the POS terminals from the central server \-->
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/>
    <\!-\- this is the general product information needed for pricing, promotions, basic product info, etc \-->
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/>

    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/>
    <\!-\- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the POS \-->
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/>
    <\!-\- org.ofbiz.party.party may be needed for certain promotions \-->
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/>
 
<\!-\- POS->MCS Per Store Server to Central Server \-->
    <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/>
    <\!-\- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc \-->
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/>
    <\!-\- all order and related information, including payment, etc info \-->
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/>
    <\!-\- include inventory and issuance info \-->  
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/>
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/>
    <\!-\- include POS transactions \-->  
    <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/>
 
 
<\!-\- Some examples of EntitySync settings for pulling and pushing data around \-->
    <\!-\- POS example meant to be used for pushing data from POS to MCS \-->
    <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" targetServiceName="remoteStoreEntitySyncDataRmi"  
            keepRemoveInfoHours="24" forPushOnly="Y"/>
    <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/>
 
       <\!-\- POS example meant to be used for pulling data from MCS to POS \-->
    <\!-\- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE CLIENT\! \-->
    <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000"  
            keepRemoveInfoHours="24" forPullOnly="Y"/>
    <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/>
 
    <\!-\- POS Push Scheduled Service \-->
    <\!-\-
    <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/>
    <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" recurrenceCount="0"/>
    <RuntimeData runtimeDataId="POSPUSH">
        <runtimeInfo><\!\[CDATA\[<?xml version="1.0" encoding="UTF-8"?>
<ofbiz-ser>
   <map-HashMap>
     <ofbiz-ser>
          <map-HashMap>
            <map-Entry>
              <map-Key>
                <std-String value="entitySyncId"/>
              </map-Key>
              <map-Value>
                <std-String value="POSPUSH"/>
              </map-Value>
            </map-Entry>
          </map-HashMap>
        </ofbiz-ser>
        \]\]></runtimeInfo>
    </RuntimeData>
    <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/>
    \-->
 
    <\!-\- POSPULL Scheduled Service \-->
    <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/>
    <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/>
    <RuntimeData runtimeDataId="POSPULL">
        <runtimeInfo><\!\[CDATA\[<?xml version="1.0" encoding="UTF-8"?>
        <ofbiz-ser>
          <map-HashMap>
            <map-Entry>
              <map-Key>
                <std-String value="entitySyncId"/>
              </map-Key>

              <map-Value>
                <std-String value="<POS Terminal ID>"/>
              </map-Value>
            </map-Entry>
            <map-Entry>
              <map-Key>
                <std-String value="remotePullAndReportEntitySyncDataName"/>
/>
              </map-Key>
              <map-Value>
                <std-String value="remotePullAndReportEntitySyncDataRmi"/>
              </map-Value>
            </map-Entry>
          </map-HashMap>
        </ofbiz-ser>
        \]\]></runtimeInfo>
    </RuntimeData>
    <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/>
 
</entity-engine-xml>