Synchronization to SAP Datasource Repeats Excessively

Problem: Created an MBO that is calling a customized RFC with an input parameter. The first synchronization to the SAP datasource works correctly. The second sync executes the first RFC, then a second one. This causes failures in SAP, because the new update cannot be transmitted.

Client Names

Explanation 1: Synchronization parameter crosstalk between clients could be causing a problem if multiple clients are running concurrently using the same name. Synchronization parameters are stored on SAP Mobile Server by user name.

Solution: Avoid the issue by running each client with a different user name. It is also necessary to pass the username/password combination using LoginToSync.

MBO Read Operations

Explanation 2: If you map your MBO's read operation (through which you retrieve the MBO attributes) to a backend operation that commits a BAPI, then keep in mind that each time you perform a synchronization, the sync parameter is stored on SAP Mobile Server. Later, when you sync it again with another sync parameter value, all the stored sync parameter values are synced again.

Solution: To avoid this problem, call SyncParameter.delete() to clear the cache after each synchronization, for example:

<name>SynchronizationParameter param = nameMBO.getSynchronizationParameter();
param.delete();
param = nameDB.getSynchronizationParameter(); //must re-get the sync parameter instance
param.set... //set new sync parameter value
param.save();