THE PROBLEM
The customer wants to stop users and outside processes from being able to create a sales order directly in CRM. Instead, they have set up a requirement that all sales orders must be created through the sales process. They first create a quote and then use the CRM “Create Order” button on a submitted quote form to convert that quote into a sales order.
WHERE AND WHEN
The best solution to this problem is by using a plugin. We also want to stop outside processes that may use the API from creating sales orders directly. We could accomplish stopping users using the user interface from creating a sales order directly by using JavaScript on the form or hiding the new buttons for the order, but that wouldn’t stop anything using the API from creating a sales order.
Once we decided on the plugin approach, the next question you have to ask is where and when should the plugin run. Looking at the wording of the requirements that says we want to “stop users and outside processes from being able to create a sales order directly,” it is clear we need to add a plugin to the “Create” message of the “Sales Order” entity.
Now that KTL has identified the requirements to the client’s problem as well as identifying their route for a solution, KTL will go in depth in Part 2: Diving into KTL’s Solution. In Part 2, Andrew will cover how KTL plans to stop a sales order from being created and why they choose the “IPluginExecutionContext” as their plugin of choice to solve this client’s problem.
ANDREW LALLY |Business Solutions Developer A 2014 graduate of University of Maryland, Andrew Lally received a B.S. in Computer Science along with a minor in Astronomy. His lack of experience in the corporate world does not translate to experience and knowledge in software development. While attending school full time, Andrew was thrust into many different projects as a KTL part time programmer. This gave him experience broadened his knowledge in many different areas. His experience includes working on projects in which he was to define his own programming language and create a compiler for it; programming a robot navigation algorithm that used only a camera and squares on the ground; Creating a smart task manager application for android and web devices that took into account where you are, what you were previously doing, and your preference on doing certain activities in order to schedule tasks more efficiently. With Andrew’s determination, growing knowledge, and great work ethic, he has become a valuable team player within the KTL development team. |