From CRM 4.0 SP12 there is a way to deactivate the transfer of relication objects selectivly by site. This is a very flexible feature when you have to deal with mass updates in a CRM environment with mobile clients.
But looking a little bit behind the scenes, the “smoeac” is not a handy tool to use this feature. It will lead to the point where you are spending hours deactiviating objects per site one after the other. Not a very good idea…
What is it for
The selective deactivation of replication objects is made for helping CRM Mobile Admins to control the data sent to the mobile clients. Usualy the mobile clients get their data instance by instance through the RFC-Queue and Conntrans. But imagine you have to do a mass update then you got 2 chances
Flooding the queue??
This is probably not a good solution. Since a mass update (e.g. all german customers) will be a lot of datasets, the queues of your mobiles will be flooded.
Deactivation the object?
As with the “MIP” improvements delivered with CRM4.0 SP12 there you have the chance to deactivate the specific replication object for wich your mass update will be done. (eg. capgen_obj_write) This is usualy the better way, since the update will not cause any processing in the extract queue and no single instance bdocs are written.
When you are reactivating the object again, the smoeac will check if something has changed since the deactivation and if this is true a AC-Extract will be fired for the object.
Is it that simple?
In practice, no!
Since you usualy have not only german mobile laptops around, but others that are not involved within the mass update, you would have (guess what…) two chances again. You can either selectivly deactivate the replication object for all clients (using the object based view in smoeac), or you would have to deactivate the object site by site.
Deactivating the object for all, means that for example a swiss client who maybe only got one change of a customer due to normal daily business, will get a full AC-Extract of all the customers. This is not what we intended!
If you go for selective deactivation site by site, then you are the lucky man, if you’ve got to deactivate 200 or 300 sites!
(If you are on the site based view and missing the replication objects assigned by “interlinkage” you should check the SAP-Notes, there is one build for me 🙂 that is correcting this)
As usual, a report will do the job. It started with only the deactivation, but with some “inherited” code from the “smoeac”, it now does the activation and the AC-Extract as well.
You will need to paste the following code into a plain report in your system
Please add text element 001
"Attention, Relication Object is not checked! "
For the selection texts, you can use the dictionary defaults for s_siteid and p_repobj and use “Testmode” for p_test and “Activate” for p_activ.
This report was written “overnight”, as a quick solution for dealing with more than 500 mobiles out in the world. As usual, there can be no guaranty, that it works for you.
The report will not check if the repobject makes any sense for the client. so this is your part, but as a experienced smoeac user, you won’t have any problem with this.
Please also note, that this is my first sdn blog, so, it might be, that this is not perfect in in any sense 🙂 But I hope to save some hours of other mobile admins…