(For more resources related to this topic, see here.)
Defining the project
Before you start installing software and designing windows, you need a plan. It’s almost time to search for your flowcharting template, but first you need to answer this query: Just what are you trying to accomplish? Let’s begin to define the project by responding to some fundamental questions:
Do you want to change the way a window looks or behaves?
Do you want to change or extend current Dynamics GP functionality?
Do you need to create brand-new functionality?
Do you need to exchange data between dissimilar systems?
Are you just trying to store some additional static data?
Changing a window’s look or behavior
Maybe the field prompts are wrong or the tabbing order is unacceptable. Perhaps there are not enough, or even too many, fields on the window. The window may need additional navigation options such as menus or buttons. You might want a field to be created only if certain criteria are met. For instance, if your customer were a reseller, the Tax Schedule ID field would not be required; but if your customer were not a reseller, the Tax Schedule ID field would be required. Maybe more visual cues should be present on the window, such as a red/green light indicator on the Customer Maintenance window to represent their payment pattern similar to the following screenshot:
You may want a more obvious cue if a record note exists, like a bigger icon or an icon that flashes! You might want to see the quantity of a stock item available in the Sales Order Processing lookup window. This list could go on forever.
Changing current functionality
Many times Dynamics GP is just missing a little something with the way it processes certain transaction types. For example, perhaps you would like to be warned if you are entering a Payables Transaction for a vendor with an outstanding purchase order, or you need a receivables document to move to a history table automatically when you pay it, instead of having to run a monthly routine.
This list does go on forever
Creating new functionality
This category is filled with things that Dynamics GP doesn’t do at all. Dynamics GP constructed the foundation, and developers like you make its functionality boundless. Many of our vertical solutions are present here; applications for running mining operations, restaurants, and retail stores have been developed for Dynamics GP. The unique needs of a myriad of industries have been satisfied by third-party applications.
Exchanging data between systems
Very often, you accumulate detailed information in a different system of record and you need to import it into Dynamics GP. Sometimes you need to export information out of Dynamics GP in order to update another system.
For instance, Point of Sale (POS) systems update the general ledger with daily sales, and payroll services send weekly payroll details to upload into the general ledger. Vendors send new price sheets that cause adjustments in the list price. These list price changes need to update the website as well as the accounting system. A constant stream of data flows back and forth every day and it needs to update other systems, or be updated itself. The goal is to take the information from the point of original entry, and electronically place it wherever it needs to go. We only want to touch the data once; dual entry needs to be eliminated. Our aim is to have only one version of the truth.
Storing additional data
Quite often the fields available for user customization, so called user-defined fields, are far too few. This problem is nearly universal when it comes to the inventory.
Take, for example, a company that trades in high-end audio equipment. For a preamp they may need to know the distortion percentage, the number and types of inputs, outputs available, and so on.
For speakers, they need a completely different set of information, such as sizes and types of drivers. Yes, there is much more information that needs to be at a salesperson’s fingertips than the part number and the price.
All of that additional information needs a place where you can enter it, and a table to call home.
Types of integrations
At the end of the day, there are generally two types of integrations:
Database-level integrations include tasks such as the following:
Importing data into Dynamics GP
Exporting data out of Dynamics GP
Storing additional data in new tables
Synchronizing data between Dynamics GP and peripheral systems
User-interface-level integrations include tasks such as the following:
Adding entirely new windows
Adding fields or controls to an existing window
Adding navigation items to the home page
Adding new menus
Changing field locations on a window
Changing a window’s tab order
A single customization often involves both types of integrations.
OK, so now that the interrogation is complete, it’s time to find that template and start flowcharting!