Adding items to list boxes in native Dynamics GP forms using visual studio add-in

List boxes, Drop down lists, Combo Boxes can be added using modifier to Dynamics GP forms, but they are not supported for .NET access from visual studio addins.

List boxes

Combo box

For example, adding list items to list boxes and combo boxes in native GP forms is not supported via .NET,  Dexterity modifications must be used if this is the requirement.

Work around

When faced with this problem it can be better to force the user into a .NET form for the selection. This can be achieved by hiding or disabling (make read-only) the original list or combo box, placing an “update” button next to it or in place of it. Clicking that button then opens a .NET form that has a combo box or whatever control in it, thus allows the population and selection.  This is not a nice UI interaction for the user but is the best option I have found. This will not always be appropriate but best I can suggest.

If you want to live on the edge (and use unsupported techniques) read these:

David's talks about the general subject of list boxes and drop downs, gives you some background.

All About List Box button Drop lists and drop down lists

My (now quite old post), I add an item using VBA, but these days I'd do this by referencing the .NET Continuum COM library to allow .NET code in the Dynamics GP Visual Studio addin to pass SanScript through to the GP, the technique is shown in the third link, although applied to a different problem.

Copy Address Button implemented using VBA

more resources:

How to make the GP company login text boxes longer

Add Item to the List Box on an existing GP screen through VS Tools for GP

Best Warehouse Management and Barcode Solutions (WMS) for Microsoft Dynamics GP

A common question is, "is there a barcode solution for Microsoft Dynamics GP?". Barcoding in a warehouse environment can span in complexity from simple data capture used to ease booking in goods to a full warehouse management system. There are solutions out there provided by software companies that cater for both ends of this spectrum and anywhere in between too. There is no Microsoft solution for this within standard GP. 

As a easy way to think about it, I consider warehouse management (WMS) system as when you move from barcode scanning for data capture to the software also being 3D space aware. A WMS will have a geographical map of the warehouses and the spaces inside those warehouses, existing down to the size and location of each bin. This allows for automation of where products are stored within that space. This geospatial awareness also allows for efficiently routed directed picks and put aways, as well as pick face replenishment in an efficient manner with staff directed around the optimal routes for a particular walk. It may be that a WMS may support other features such as wave picking, going far beyond simple data capture whereas simple data capture may not even support inventory picking or put away. 

The first task is understanding what you want out of the proposed "barcoding solution", by understanding how deep into data capture and warehouse management you need to go will help a lot when selecting a system. You also need to understand the technologies, do you need RFID readers, what kind of barcodes need supporting, the speed of hardware readers can be an issue in the field. Cheap hardware can be slow to read or have reduced range to read barcodes that can be an issue when a crate of hard drives need scanning quickly in a batch. Hardware can vary in cost and forms a major part of the original and ongoing cost of ownership. Spares such as, batteries, cases, clips, readers are a consideration in harsh warehouse environment. Some companies are developing solutions using prosumer hardware like tablets, but may be a false economy if they scan too slowly, burning up savings with the hardware with cost in man hours, when slow and fragile in use. Not everyone has the same environments for use, so in less harsh workplaces such solutions could achieve savings.  

Most of the solutions below offer data capture capabilities only, falling short of full-on warehouse management. This is ok, if for instance, all that is required is automation of receipts, put away, picking and stock takes, these are the common pain points companies try to make more efficient. Handheld devices are used to enter data, these can be dedicated hardened units designed for warehouse use or normal computer tablets fitted into sleds that provide the barcode scanners/RFID readers. 

Company Software name
Accellos AccellosOne
Albaspectrum Alba360 WMS
Appolis Inc WithoutWire
Asc Software Warehouse Management for Microsoft Dynamics GP
Blue Moon Blue Moon ISV
CalSoft CS WMS Star
FoxFire FoxFire WMS
KARE Technologies Visual Warehouse
Made4net WMS for Dynamics GP
Manhattan Associates Limited Warehouse Management
m-hance Advanced Data Capture
Panatrack inventory tracking and WMS for GP
SalesPad Data collection for GP
Savant Software Savant Software WMS
Sologlobe SOLOCHAIN Warehouse Management System for
Microsoft Dynamics GP
HighJump Supply Chain Network Solutions AUTOMATED DATA COLLECTION


If you know of any other WMS or bar code solutions for Dynamics GP, then please feel free to contact me via the contact page and I will add them to the list.

How to check if MS SQL Server, Linked Server object is in use

Linked server objects allow one SQL server to connect to another at the database engine level. A connection is defined when creating the linked server, with credentials that should be used for that connection. As time passes, the challenge is knowing if that old linked server object is still being used by a report or script or import somewhere, as the original reason for its existence and person responsible may be long gone.

The quickest (not easiest) method to find dependencies on a linked server is to delete the linked server and wait for the phone to ring sometime over the next year. The person ranting on the other end will help you identify what it was used for. If the linked server was involved in a complex integration orchestration, or year/month end reporting, then the fall out from this maverick approach may not be pleasant to resolve nor may the call be in social hours... Instead carefully identify, then remove or correctly document the dependencies on the linked server object.

Here a few tips to help you find those dependencies:

Look for dependencies using SQL inbuilt dependency tracking

Using script from here List All Objects Using Linked Serverinvestigate any objects it returns.

referenced_Server_name As LinkedServerName,
referenced_schema_name AS LinkedServerSchema,
referenced_database_name AS LinkedServerDB,
referenced_entity_name As LinkedServerTable,
OBJECT_NAME (referencing_id) AS ObjectUsingLinkedServer
FROM sys.sql_expression_dependencies
WHERE referenced_database_name IS NOT NULL
And referenced_Server_name = 'Enter LinkedServerName here'

Script out objects

In built dependency checking does not work if the dependency is “hidden” in a dynamically generated (sp_executesql) SQL statement or SQL jobs or is used by SQL replication subscriptions etc. If you don’t trust the dependency script above or have older SQL server version, script out all your stored procedures, views, user defined functions, SQL jobs and any other SQL objects that might reference the linked server. Then perform a text search over all the resulting scripts for the linked server name. If you find the text, in turn identify if that object is still in use. If you use notepad++ or similar advanced text editor, they provide multiple file search with regular expression support. The regular expression support is handy if the linked server name is used in other parts of the database, allowing the search to be narrowed down to text patterns likely to be a linked server.  Also do a search on any source code for applications that may be developed against that database.

Use Sql Profiler

Run SQL server Profiler for a month against the target server (on a spare machine) to see if the linked server login name appears, this is the login name of the connection set up in the linked server configuration. I recommend a month as month end scripts or monthly maintenance scripts will be caught, however this won’t catch scripts or reports that are only ran at year end or once in a while. The trick here is to make certain you change the linked server connection to use a uniquely identifiable login name, that way it is possible to use the filter option in SQL profiler to only log events from that LoginName. Changing the login name has to be a considered move as it will change the security context and may thus affect rights to the destination server objects. These approaches all have down sides, but on less complex scenarios this technique works well.

Before deleing the linked server object

In SSMS, right click the object and script out the linked server. Put the resulting create script somewhere easy to find before deleting it, this way it will be quick to put it back again should an urgent need for it occur, say at year end months later. Having the create script helps get things running and buys you time to fix the offending referencing scripts, or document them correctly if it is decided they should exist after all.

Word Template reports format messed up when rendered to PDF Dynamics GP 2015

Dynamics GP2015 Word PDF Alignment wrong

After upgrade to GP2015 it was found the modified reports using Word Templates screwed up when sent to email as PDF.

Email embedded PDF reports from Dynamics GP messes up the formatting, resulting junk formatting.

After a week of investigation and following false leads around the email interaction interfering with formatting, no solution was found.

Then after trying and failing to compensate for the column widths being upset and failing, the solution ended up to be an installation of the version 14.00.095, applying the GP January Hotfix.

Showing GP login box with Version 14.00.0952 shown

Information for the hotfix can be found under this post on the GP blogs… Microsoft Dynamics GP January Hotfix....RELEASED

Dynamics Community logo

There is an example included on this post in the community forums: Alignment issues in PDF version of Word Templates