cancel
Showing results for 
Search instead for 
Did you mean: 

SmartSync and AWT: No SyncBOs visible to the client

Former Member
0 Kudos

Hello experts,

recently I created a SmartSync AWT project following . Before this I had created a SyncBO (Timed two way) and an MCD with application type AWT on the server and downloaded the metadata XML file. Server and client are both MI2.5 SP 19. The SyncBO is accessible via the SyncBO emulator on the server and the corresponding table has two rows of data, but when I synchronize my client, no data is downloaded. <i>descriptorFacade.getAllSyncBoDescriptors()</i> returns an empty iterator, and <i>descriptorFacade.getSyncBoDescriptor([name of my SyncBO])</i> returns null. The data folder in the MI client installation folder shows no new files or directories, and no exceptions occur during synchronization.

I really have no idea of what the problem could be. Can anybody imagine what I did not take care of?

Kind Regards,

Andreas

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Andreas,

Try to check if the data is replicated to the middleware from backend.

Do you have only one syncbo created?

If you have more than one syncbos in your MCD (application), check for cascade relationships between them.

Cheers,

Karthick

Former Member
0 Kudos

Hi Karthick,

I have only one SyncBO in my MCD with no relations to any other one.

How do I check if the data is replicated to the middleware? I am new to MI development, so could you please give me a short guide?

Cheers,

Andreas

Former Member
0 Kudos

Hi Andreas,

I believe that you have created a T01 type of syncbo.

You can replicate the syncbo from MEREP_PD transaction

MEREP_PD-->SYNCHRONIZER.

Once the replication is done you can check the no. of records in table MEREP_207 (RDB tablefor T01/T51 type of syncbos) in the middleware.

Cheers,

Karthick

Former Member
0 Kudos

Hi Karthick,

you are right, I created a T01 type syncbo. I also replicated the syncbo before doing the client development.

The number of entries in table MEREP_207 for my scenario is zero, for all scenarios in total it is very high. Does that mean that the data is not passed from backend to middleware? And what can be the reasons?

Many thanks for the suggestions,

Andreas

Former Member
0 Kudos

Hi Andreas,

In middleware loginto transaction se16 and give table name as MEREP_207.

and give the scenario name as your syncbo name.

If you dont give any scenario name (Syncbo name)..it would take all syncbos into account.

So as per your scenario if no. of records are Zero..then no data is present in middleware.

Try to go to backend and execute getlist bapiwrapper and see ifg it returns any records....

If there is no data in backend..create few records in backend and replicate.

Now it should work.

Cheers,

Karthick

Former Member
0 Kudos

Hi Karthick,

I think we are getting closer. It is quite strange: In the backend table there are two records, but the getlist bapiwrapper does not return any of them. I have no ABAP experience, but there seems to be nothing special in the getlist bapiwrapper.

FUNCTION foo_getlist.
  CLEAR return.
  SELECT * FROM xxx INTO TABLE yyy.
ENDFUNCTION.

where xxx contains 2 records and yyy does not.

Former Member
0 Kudos

Hi Andreas,

Kindly go through the below article to get the GETLIST bapi code example.

All BAPIs code sample example.

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/mobile/mobile%20in...

Cheers,

Karthick

Former Member
0 Kudos

Hi Andreas,

Kindly follow the BAPI rules, kindly go through the above article, i might help you to some extent.

Cheers,

Karthick

Former Member
0 Kudos

Hello Karthick,

I read your article. For the first try I decided to use existing BAPI wrappers to avoid problems concerning the backend. So the only thing I did is creating a SyncBO that uses the MEREP_CONTACT_* bapi wrappers that are already present in the system (surprisingly the sap_exm SyncBOs were not present, so I had to create my own one). I created the SyncBO was exactly like you explained in your document.

My last post was not very accurate. I think I missed something.

The getlist bapi wrapper reads as follows:

SELECT * FROM merep_person INTO TABLE person.

So when I execute the getlist bapi wrapper, the following is shown:


Runtime: 733 microseconds

RFC target sys:
  Export parameters      value
    RETURN               000

  Tables                 value
    PERSON               0 Entries
               Result:   2 Entries

The 2 entries of the "Result" are the contents of the original table.

So where can the data get lost?

Cheers,

Andreas

Answers (0)