Skip to Content
0
Former Member
Feb 24, 2006 at 02:11 PM

Error while Smart Sync inbound processing: IPersistenceException

12 Views

We are using Mobile Infrastructure 2.5 SP 13 WAS 640 to run SmartSync applications with FileIO persistence.

the steps for replicate the problem are:

1. my client request to R3 data filtered by username.

R3 assign orders to my username (ME-SYNC_USER variable).

2. my first sync is ok : my user request successfully data using getList (TOP list)+ getDetail(ITEM detail) function in R3.

3. into R3 layer, my administrator adding a row (an item) in the order. my client synchronize with backend and the message returned from java method messageReplyReceived(MessageReply arg0) into arg0.getText() code is:

<b>"Error while Smart Sync inbound processing: com.sap.ip.me.spi.persist.IPersistenceException: Cannot insert as entity already exists for IClassDescriptor/Key: cZSYNMP_P13_010/1000513

"</b>

-> your solution in the code:

we have tried to delete the row key : 1000513 in the local persistence (from file system) but we have no result. The exception persist.

the code is:

<i>else if ( arg0.getType()==MessageReplyType.ERROR)

{

String Text = arg0.getText();

String RKey = Text.substring((Text.lastIndexOf('/')+1));

SmartSyncDBAccess dba = new SmartSyncDBAccess();

try

{

dba.DeleteRow2("ZSYNMP_P13", RKey);

...

public void DeleteRow2 () {

SmartSyncDBAccess dba = new SmartSyncDBAccess();

try

{

MeIterator sbs = dba.getSyncBoInstances(SyncBoName, 0, 200, -1, true, "");

if(sbs.elementCount() > 0)

{

while(sbs.hasNext())

{

SyncBo s = (SyncBo) sbs.next();

SmartSyncTransactionManager transactionManager = dataFacade.getSmartSyncTransactionManager();

transactionManager.beginTransaction();

s.deleteRow(RKey);

...

}</i>

this is a bug of local persistence layer?

help!

- eliana