Most of you probably believe that I think that Smart Mover is the solution to every Enterprise workflow & customization issue you may have... but this far from the case. Several times in the past few weeks, when asked how to do something with Mover, I instead suggested using an Enterprise Plugin.
There are things that a Plugin can do that Mover cannot... and visa-versa.... There are also things either can do but one might be more suited than the other. So in this Tip I am going to generally discuss some of the differences between the two and hopefully give you a better understanding of the proper roll or each, its strengths and weaknesses.
A Plugin is part of the Enterprise Server and can directly access classes, methods and even the database directly (although not recommended). Mover cannot, instead it sits outside of the Server and can only communicate with Enterprise through the API interface. This is however, not a major limitation.... other client apps works the same way... and there can be advantages. Mover can be run on a different machine so heavy tasks do not impact your Enterprise server's performance. It can also easily communicate with systems and services outside of Enterprise.
Since Plugins are an integral part of Enterprise they can actually change business rules and even substitute your own code and logic.... Mover cannot.
Plugins require code written in PHP along with some understanding of the Enterprise event, business and object model... so you need access to someone with that talent... not only to write it but also to maintain it. The vast majority of Mover Tasks do not require any code and you do not need an in depth understanding of Enterprise's inner workings.
Mover not only interacts with Enterprise but it also includes a host of non-Enterprise functionality.... file & folder management, FTP, Mail, Zip, XML, etc... all accessible with a simple user interface. PHP and thus a Plugin can include classes that enable you to implement these technologies but it is usually not trivial to do so.
But one of the biggest considerations: When does your workflow or customization need to execute? Plugins are very good at responding immediately to events that occur within Enterprise. For example: a user saves a certain type of object with a particular status and you want some additional processing to occur. On the other hand Mover runs on a schedule.... once a minute, every 10 minutes, once a day, at 02:00 on Thursdays, etc... Each method has its place. A Plugin would not be a very good place to check for new files on an FTP server or run some maintenance routine.... but Mover would.
Also keep in mind that a Plugin can be used to trigger Mover. (see Appendix G of the Smart Mover User Guide.) So there are situations were using both might be warranted.
Please sign in to leave a comment.