Difference Smart Sync - Generic Sync

Hi all,
sorry for this simple and maybe stupid question, but I am a newbie in this topic. Can anybody tell me the differnce between generic sync and smart sync and when do i have to use them? Can they be used mixed or only one of them?
Thanks in advance for getting light in my darkness.
Michael

hello Michael,
On the client-side's view:
GenericSync is a lower layer that is responsible for data transport, connection and configuration updates.
SmartSync is another layer working on top of the GenericSync. In other words, SmartSync layer is just a GenericSync application that offers a wide-variety of features thru the SmartSync apis.
Yes you could mix GenericSync and SmartSync features in your application.
regards
jo

Similar Messages

  • How to see the data in data containers when working on Generic Sync ?

    Hi All,
    I am working on Mobile Sales For HandHeld Generic Sync based application. To check the data transafer from Mi Client > MI server> CRM backend, we are using Generic Sync Queue Monitor in NWA. But how to check the actual dara in data containers showed on the monitor? Any specific transaction ( e.g. merep_mon for smart sync) to chk the same?
    Thanks & regards,
    Rucha Atre

    Hi,
    This is a tedious process of viewing the data in the containers since there is no tool to monitor the same. The data sent from the client is stored MESYHEAD and MESYBODY. Once the entire processing is completed then the entries from this table is deleted. If the processing has failed or not taken place then the entries will in this table.
    Data Containers will name value pairs with field name and data in the data field. This table will also contain data from smart sync applications.
    Thanks..
    Preetham S

  • Authentication on MI Server + Generic SYnc

    Hi,
    When we call a RFC by Generic Sync, if i call this RFC 10 times,  MI Client do the authentication (user+password) on MI Server 10 times? If yes, is there a way to increase the performance to do this authentication?
    Other... If a user is add in 10 devices, if he needs update password, Will he need update in this 10 devices?
    Or there is a way to do the authentication online on MI Server?
    Regards,
    Bruno
    Message was edited by:
            Bruno Ambrozio
    Message was edited by:
            Bruno Ambrozio

    Hi Nameeta,
    This synchronization time is with Windows Mobile 2003...
                                  10 seconds
    MI Client -
    > MI Server
                <----
                                 2 seconds
    But, using the same WLAN, the tests with Windows Desktop are very differences...
                                  3 seconds
    MI Client -
    > MI Server
                <----
                                 2 seconds
    I know that the hardware of Windows Mobile is less powefull than Windows Desktop, but how i said the WLAN is the same... i would like to understand the large difference...
    Thanks for your attention.
    Regards,
    Bruno

  • Problem with persistence in Generic Sync application

    Hi:
    We are developing an application which runson SAP Mi 2.5, SP 18,
    Windows Mobile 5.0 and Generic Sync for PDAs.
    We need persistence in our application. We tried with persistence API but
    we found a problem and we send a message to SAP. Until we can solve
    this issue we must implement persistence in other way to satisfy our customer requierements
    Since now,we have implemented persistence with files but the performance of this solution does not meet our customer requirements (the search of data in the PDA is very slow).
    We are thinking in another solution, which consists on using
    Syncbos.Using this alternative, before making a generic sync, and
    executing the code shown below:
    SmartSyncRuntime.getInstance().getSyncBoDescriptorFacade
    ().getAllSyncBoDescriptors()
    the returned syncBOS are those which I have defined in XML. On the
    contrary, after making a generic sync, executing the same code, the
    returned syncbos ARE NOT those whic I have defined in XML. The only
    return that I get is the MIAUTH.
    Any other ideas?
    Thanks
    Kind Regards

    hi satur,
    there are some things to take care if you want to use the persistence layer of the
    SmartSync layer from your GenericSync app.
    first, you have to let the MI client think that your application is using the
    SmartSync functionality. this can be achieved by just including a dummy metadata
    meRepMeta.xml file in the war archive during the deployment process. once the
    MI client framework sees this during the installation, it will set a flag on the MSD
    that your app is a smartsync.
    second, if your app is considered a smartsync, MI will generate the delta request
    and upload messages for your data if ever you have your SyncBo defined in the
    metadata. Since you don't want such functionalities to be ON, i would suggest to
    mark all your SyncBo as local ones; i.e. using attributes suppressDownload=true
    and suppressUpload=true. this way, the MI framework will skip creating the requests
    and delta upload messages for your app during the synchronization process.
    third, your application has to have the syncEventListener implementation to get
    notification when the Sync button (or event) was initiated. if you don't want your
    app to be notified, you may just add synchronization button within your application
    that will call your data manager to prepare your containers (i.e. retrieving the newly
    inserted syncbo, modified syncbos and the list of deleted ones -> genericSync
    containers) and to call the synchronizeWithBackend method.
    fourth, you need to have the inboundProcessor that will parse your data and insert
    them a SyncBo into your local database.
    having tried this but i guess it might work...
    regards
    jo

  • Generic Sync Application and Persistence DB2e

    Hi all,
    I have a generic sync application. I need persistence and so, I have created a xml file with many syncbo to manage the persistence with db2e. If I execute the statement before the synchronization:
    SmartSyncRuntime.getInstance().getSyncBoDescriptorFacade().getAllSyncBoDescriptors().size()
    the result is five (because I have five syncbo).
    But when I do a generic synchronization and I try to store data of this synchronization into syncbo, I get an exception because only there is one syncbo.
    In fact, the previous statement returns only one synbo. This syncbo is called MIAUTH and I don´t have defined it.
    How can I solve this issue? Thanks a lot.
    Regards,

    Hi all,
    I know it is better to use persistence API than syncbos in generic sync application but we have many problems with persistence API and SP versions. While SAP solve our problems we are searching any alternative.
    We use MVC and after doing generic synchronization, if the application generates a event and navigate to other jsp and in it, the application generates other event, I get all of my syncbos.
    How could I simulate it, after generic sync finishes, in the same method by code? Any ideas?
    Thanks and Regads.

  • Problem in Generic Sync example

    Hi
    I downloaded the generic sync templete from the MDK documentation and deployed it to my MI client but when i try to get the information from the WEBAS it is giving the following error
    Error: 500
    Location: /SAMPLE_GENERICSYNC/start
    Internal Servlet Error:
    java.lang.NullPointerException
         at com.sap.ip.me.sync.SyncHeader.(Unknown Source)
         at com.sap.ip.me.sync.SyncOutboundContainer.(Unknown Source)
         at com.sap.ip.me.sync.SyncOutboundContainer.(Unknown Source)
         at com.sap.ip.me.sync.ContainerFactory.createOutboundContainer(Unknown Source)
         at genericsyncexample1.GenericSyncExample.getUserInfo(Unknown Source)
         at genericsyncexample1.GenericSyncExample.doHandleEvent(Unknown Source)
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
         at org.apache.tomcat.core.Handler.service(Handler.java:287)
         at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
         at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
         at java.lang.Thread.run(Thread.java:479)
    The Trace error from the MI Client is
    E There is no MSD for current application (genericsync_simple)
    how do i set the MSD for the Application?
    do i have to make any changes to the template and then deploye or is there anything missing in the SAP WebAS installed?
    i also checked the BWAFMAPP table for the method name "MDK_USER_INFO_READ"
    Thanks and Regards
    Gopi

    Hi Gopi!
    You are getting the following error from the Trace error from the MI Client is
    "E There is no MSD for current application "(genericsync_simple)
    Is that right?
    (1) Log On to MI Web Console, Verify you have Uploaded the Mobile Component "genericsync_simple" correctly in the MI WebConsole.Since you have deployed the application in MI Client you should have your MCD Description here.Make sure the deployment info is correct.
    (2) Log on to SAP MI Server and go to transaction MCD and then display your MCD "genericsync_simple' and make sure the information provided under Deployment Tab matches correctly with your info in MI Web Console.It should be the same.
    (3) You have already checked table BWAFMAPP for method MDK_USER_INFO_READ and make sure you have the correct BAPI Wrapper assigned here.You are fine here i guess.
    (4)Verify that table MEMAPPDEST has the correct RFC Destination defined for the Method MDK_USER_INFO_READ.
    (5) Did you Re-Start your MI Client after the First Sync that deployed the application in your MI Client.
    Setting up MCD is part of Step 1 and 2.You should have completed it already.
    Let me know your results.
    Thanks
    Gisk
    Message was edited by: Sivakumar Ganesan(Gisk)

  • Problem with Generic Sync after upgrade

    Hi guru,
    I have this problem:
    I have done a upgrade ME2.1 -> MI2.5 SP18.
    I have a simple Generic sync application that using a simple Function Module:
    <b>
    function Z_ME_TEST_CONNECTION.
    ""Interfaccia locale:
    *"  EXPORTING
    *"     VALUE(STATUS) LIKE  BWAFSYHEAD-STATUS
    *"  TABLES
    *"      INBOUND_CONTAINER STRUCTURE  BWAFCONT
    *"      OUTBOUND_CONTAINER STRUCTURE  BWAFCONT
      perform CALL_OFFLINE_ME_METHOD using 'TEST_CONNECTION'
                                            INBOUND_CONTAINER[]
                                            OUTBOUND_CONTAINER[].
      OUTBOUND_CONTAINER-FIELDNAME = 'RESULT_CONNECTION' .
      OUTBOUND_CONTAINER-LINENUMBER = 0 .
      OUTBOUND_CONTAINER-FIELDVALUE = 'OK'.
      append OUTBOUND_CONTAINER.
    endfunction.</b>
    When i synchronize my mobile client it returns back
    <b>"EWAF                 001Could not execute method Z_ME_TEST_CONNECTION"</b>
    Can anybody help me in resolving this?

    Hi Sivakumar, I have write the my FM in the BWAFMAPP and the RFC destination in MEMAPPDEST but i have tha same error.
    This is my simple method in my application:
    <b>public String testSync(String userName) {
              String errormessage = null;
              try {
    //        get user out of the SyncSettings
                String user = Configuration.getInstance().getProperty(PropertyKeys.SYNCSETTINGS_USER, userName);
                OutboundContainerFactory outfactory = OutboundContainerFactory.getInstance();
                if (outfactory == null) {
                   errormessage = "testSync->OutboundContainerFactory.getInstance failed";
                }  else {
                   OutboundContainer out = outfactory.createOutboundContainer(
                   VisibilityType.SEPARATED,
                   R3_METHOD_TEST_SYNC,
                   OutboundContainer.TYPE_REQUEST);
              // add the name that has been typed into the JSP
                   out.addItem(DC_I_USER_NAME, user.toUpperCase());
                  out.addItem(DC_I_NUMBER_OF_LINES,"0");
                   out.close();
              // Start Sync
                 SyncManager.getInstance().synchronizeWithBackend(VisibilityType.SEPARATED);
              catch (SyncException ex) {
                   errormessage = ex.getMessage();
              catch (IllegalArgumentException ex) {
                      errormessage = ex.getMessage();
              catch (Exception ex) {
                        errormessage = ex.getMessage();
              finally {
            System.out.println("testSync: errormessage="+errormessage);
              return errormessage;
         }</b>
    You have anathor idea?
    Thanks

  • Is it posible migrate Generic Sync App from 2.5 to 7.1?

    Hi,
    is it posible migrate generic sync app genericsync_simple.war (from 2.5 sp16) to SAP NW Mobile 7.1??
    Thanks,
    Roberto

    Hi Veera,
    Yes, I do the steps that you tell me. I follow the Migration Guide offers by SAP.
    I check the DO GENERIC_SYNC_C2S and GENERIC_SYNC_S2C and it was OK.
    I check the destination and it was OK.
    I check the new entries in corresponding tables, and it was OK.
    When I sync, I can see in "Client Communication Session Monitoring", inside Seesion Information, one line of type Post Messages and it have a message of data object GENERIC_SYNC_C2S. But if I select "Go to message monitoring" it haven´t nothing.
    But in message monitoring i can´t see the data object GENERIC_SYNC_C2S or GENERIC_SYNC_S2C
    Any idea please?
    Regards,
    Roberto

  • BAPI call generic sync?

    Hi,
    i am an absoulte newbie in this area of mobile infrastructure.
    I want to know if it is possible to call a BAPI in the backend from a JSP application with generic sync?
    If yes, how does it work?
    If no, how can i use that BAPIS anyway?
    Thanx
    Tim
    Message was edited by: Tim Nees
    Message was edited by: Tim Nees

    Hi,
    please check the following example in the MDK:
    http://media.sdn.sap.com/public/html/submitted_docs/MI/MDK_2.5/content/appdev/genericsync/introduction.html
    To generate wrapper modules for your bapis check out the transaction ME_WIZARD.
    Rgds Thomas

  • Programming generic sync with the MDK in 6.20

    Has anyone been able to get the generic sync examples provided with the MDK working - GenericSyncExample.java in particular?
    I imported and compiled the example without a problem but when I run it I get teh foll dump. Unfortunately the source code is not provided for the section which dumps so I cannot debug further...
    Thanks
    Ratna
    2004-12-17 14:47:47 - Ctx( /NEWPROJECT ): Exception in: R( /NEWPROJECT + /start + null) - java.lang.NullPointerException
         at com.sap.ip.me.sync.SyncHeader.<init>(Unknown Source)
         at com.sap.ip.me.sync.SyncOutboundContainer.<init>(Unknown Source)
         at com.sap.ip.me.sync.SyncOutboundContainer.<init>(Unknown Source)
         at com.sap.ip.me.sync.ContainerFactory.createOutboundContainer(Unknown Source)
         at genericsyncexample1.GenericSyncExample.getUserInfo(GenericSyncExample.java:124)
         at genericsyncexample1.GenericSyncExample.doHandleEvent(GenericSyncExample.java:81)
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
         at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
         at org.apache.tomcat.core.Handler.service(Handler.java:287)
         at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
         at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
         at java.lang.Thread.run(Thread.java:479)

    Hello Ratna,
    please be aware of the fact that a generic sync application needs a mobile solution descriptor (MSD) When you look at ther trace file in the log-directory of SAP ME you should find a similar entry:
    "There is no MSD for current application (genericSyncExample)"
    The missing MSD results in a missing conversation ID which leads to the NullpointerException that effectively is thrown in the class
    ConversationIdHandler.getCurrentConversationId().
    My current understanding is that the only way to get a MSD assigned, is to upload the application to the web console and install it from there on the client device.
    However, this means that launching a genSync ME application from Eclipse is useless. I am wondering, if this is the way it was intended to be....
    Best regards,
    Tim

  • Generic Sync: How to register 2 Outbound Methods

    Hello,
    i am developing a generic sync application.
    I have registered a method for inbound+outbound.
    It works well.Now i have a second method in the same application. I made the mapping in BWAFMAPP,but when i try to create a outbound container for the method,i get the exeption method is not registerd.
    Coding:  outfactory.createOutboundContainer(VisibilityType.USER_SHARED,2_METHOD,outboundContainer.TYPE_REQUEST);
    I think i have to do something in doInitialize() for the second container ,but i don't know exactly what.
    Can anyone help me?
    Regards

    Hi,
    go create a new class like this one:
    import com.sap.ip.me.api.sync.InboundContainer;
    import com.sap.ip.me.api.sync.InboundProcessor;
    public class MyProc implements InboundProcessor {
         public String getMethodName() {
              return "R3_2_METHOD";
         public void process(InboundContainer inboundContainer) {
              System.out.println("Container for " + getMethodName() + " came in...");
    then, register it at the Registry like this:
    InboundProcessor i = new MyProc();
    InboundProcessorRegistry.getInstance().register(i);
    Cheers, Stefan

  • Generic sync not work correctly

    Hi,
    We are trying to get the inbound container in Java application, we use the method
    GetElementsWithFieldName(String) in the object InboundContainer, this method returns an array that has only one entry, but really the wrapper function in R3 returns 6500 entries.
    Best regards.
    Thanks all.
    SCZ

    hi Satur,
    Is your Generic Sync Application Synchronous? you may find it in using the OutBoundContainer Type. if it is TYPE_OUTBOUND its asynchronous otherwise (TYPE_REQUEST) its synchronous. The same information can be found in MESYHEAD table entries too.
    If it is Asynchrnous, then the MESYBODY Containers won't get deleted unless you sync from the client. if it is synchronous, it will disappear immediately.
    I suggest your application be ASynchronous and check the same. If it still happens, there's some problem with your middleware. It is not taking the container as ASynchronous Processing. You'll have to go all over your Post-Installation Settings to check if all are right. (Tedious process indeed)
    If it is synchrnous and your client is not receiving all the entries, the problem is with your receiver code handling. check your Process() method.
    Regards
    Ak.

  • Generic sync issue, MI70SP14P5

    Hi
    Sometimes my generic sync unexpectedly stops on the mobile client on a PDA.
    I have a JSP-application running in IBrowse on Intermec PDA. I know the PDA is connected as I have a remote connection open at the same time I was testing this.
    This is from the trace.txt, does anyone know what it mean?
    D End: Dumping file /MI/sync/(SHARED)/out/package.out
    I Outbound file size for user (SHARED) is 2038
    P Do not use http proxy (system properties update)
    P Use following gateway for synchronization: https://mobizcm2.yara.com:443
    I GzipDataCompression: Gzip data compression is switched on
    P Sending outbound file compressed to server.
    P Outbound file was compressedly sent.
    I HttpSynchronizer caught exception java.net.SocketException: Unexpected end of file from server
    java.net.SocketException: Unexpected end of file from server
         at com.sun.net.ssl.internal.www.protocol.https.HttpClient.b()
         at com.sun.net.ssl.internal.www.protocol.https.HttpClient.a()
         at com.sun.net.ssl.internal.www.protocol.https.HttpClient.b()
         at com.sun.net.ssl.internal.www.protocol.https.HttpClient.a()
         at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStream()
         at com.sap.ip.me.sync.HTTPSynchronizer.getInputStreamViaTimeOutOrNot()
         at com.sap.ip.me.sync.HTTPSynchronizer.synchronize()
         at com.sap.ip.me.sync.HTTPSynchronizer.synchronize()
         at com.sap.ip.me.sync.HTTPSynchronizer.exchangeData()
         at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle()
         at com.sap.ip.me.sync.SyncManagerImpl.syncForUser()
         at com.sap.ip.me.sync.SyncManagerImpl.processSynchronization()
         at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend()
         at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend()
         at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend()
         at com.yara.industrial.yaraapp.sync.TestconnSynchronizationProvider.doSync()
         at com.yara.industrial.yaraapp.bl.TestconnBl.checkConn()
         at com.yara.industrial.yaraapp.sync.SyncHandling.Synchronize()
         at com.yara.industrial.yaraapp.SyncServlet.doHandleEvent()
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetThreadSafe()
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet()
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost()
         at javax.servlet.http.HttpServlet.service()
         at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service()
         at javax.servlet.http.HttpServlet.service()
         at org.apache.tomcat.core.ServletWrapper.doService()
         at org.apache.tomcat.core.Handler.service()
         at org.apache.tomcat.core.ServletWrapper.service()
         at org.apache.tomcat.core.ContextManager.internalService()
         at org.apache.tomcat.core.ContextManager.service()
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection()
         at org.apache.tomcat.service.TcpWorkerThread.runIt()
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
         at java.lang.Thread.run()
    Regs
    Øyvind

    Thank you Oliver!
    I will test it and let you know if this is working better.
    Regs
    Øyvind

  • Smart Playlists not syncing correctly to iPhone/iPad with iTunes Match

    My manual playlists are syncing correctly to both devices, but smart playlists are a mess.  They don't seem to match any criteria that they are created with, especially song limits.  However, smart playlists are syncing correctly in iTunes on multiple computers.  This is really frustrating because 99% of my playlists I listen to are smart ones.  Anyone know of how to fix this?  Apple, do you have any information on this or when it would be fixed?

    Guys, I might have our "life savior" solution!!! (not 100% sure yet...)
    I activated iTunes Match this morning.
    Everything worked well apart from my smart playlists which cannot be found on my iphone/ipad anymore.
    And yes, they relied on other lists...
    BUT
    A few smart playlists remained!!! (although they also rely on other lists)
    So, after a bit of soul searching, here's my conclusion.
    Those smart playlists that remained were actually dependant on "folders" which contain lists!
    SO
    I havn't tested yet (cause I'm at work), but if you put a list you wish to refer to in a folder, you should then be able to refer the smart list to the folder and not the actual list; and hopefully the smart list should then get synced!!!
    Let me know if that works for you!

  • Aperture Smart Album not Syncing with iPhone

    I have my photos checked to sync from Aperture to my iPhone. The Projects that I have selected sync fine, but I have a smart album checked and the smart album does not sync. What can I do to get the smart album to sync?
    Kevin

    I have my photos checked to sync from Aperture to my iPhone. The Projects that I have selected sync fine, but I have a smart album checked and the smart album does not sync. What can I do to get the smart album to sync?
    Kevin

Maybe you are looking for