Having spent the better part of my career working with Dynamics GP, I’ve had the pleasure of working with most of the core modules, and a number of 3rd party applications as well. By far and away, my favourite module to work with has been the FieldService module, and more specifically, the Contracts Administration portion of it. I find it’s well designed, well written, and very easy to enhance and extend when the need for custom business processes dictates.
After reflecting on why it is I find this to be my favourite module, it comes down to the fact that so much of it is based on SQL stored procedures. This fact alone has enabled us to make some very useful and powerful changes to the behaviour of certain parts of the module in a fairly easy and straightforward manner. Some of the changes we’ve made by modifying certain stored procedures are:
- Create SOP orders with a series of items, then create contractible items based on those items. (Procedure modified: SVC_Create_Cont_Line_From_SOP)
- Automatically create/change/delete items on a contract at renewal time. (Procedure modified: SVC_Contract_Renew)
- Repurpose certain fields and tables for other uses (Procedure modified: SVC_Create_Cont_Line_From_SOP).
- Eliminate contracts from appearing in the Contract Move screen based on certain criteria (Procedure modified: SVC_Create_Contract_Move_WORK)
In most cases, a combination of modifying the stored procedure, plus some “light” VBA coding is all that’s required to implement the custom business logic we require. It would be fantastic if other modules implemented more of a “stored procedure” based approach.
In short, for the developer who does not know Dexterity, the implementation of the FieldService module, with it’s heavy use of SQL stored procedures, makes it pretty straightforward to enhance the application in a rapid and efficient way.