Microsoft Dynamics GP Developing for Dynamics GP
A blog dedicated to the Microsoft Dynamics GP Developer & Consultant community
 
Welcome to MSDN Blogs Sign in | Join | Help

Developing for Dynamics GP

by David Musgrave (Australia) and the Microsoft Dynamics GP Developer Support Team (USA)

News

  • Please use the Blog Feedback? - Contact Us link at the top of the page to email questions relating to the blog itself.

    If you wish to ask a technical question, please use the links below to ask on the Newsgroups. If you ask on the Newsgroups, others in the community can respond and the answers are available for everyone in the future.

    Please do not use comments on pages and posts to ask questions unrelated to the topic on that page or post.



    Dates of Interest:

    11-Jul-2008: Blog Created by David Musgrave.
    10-Oct-2008: First Post by Scott Stephenson.
    04-Nov-2008: First Post by Dave Dusek.
    11-Nov-2008: First Post by Beth Gardner.
    28-Nov-2008: First Post by Chris Roehrich.
    30-Dec-2008: First Post by Patrick Roth.
    24-Feb-2009: First Post by Greg Willson.
    22-Apr-2009: First Post by David Clauson.
    04-May-2009: First Post by Ryan Wigestrand.
    19-Jun-2009: First Post by Dawn Langlie.
    03-Jul-2009: First Post by Emily Halvorson.
    23-Sep-2009: Created Twitter account with blog feed.



    WorldMaps Statistics since
    24-Feb-2009:




    Click for WorldMaps Stumbler



    Translator Tool:




    Social Networking

    Follow David Musgrave and the blog on:

    David Musgrave on Twitter

    David Musgrave on LinkedIn


    Disclaimer

    This blog is provided "AS IS" with no warranties, and confers no rights.

    The links in this blog may lead to third-party Web sites. Microsoft provides third-party resources to help you find customer service and/or technical support resources. Information at these sites may change without notice. Microsoft is not responsible for the content at any third-party Web sites and does not guarantee the accuracy of third-party information.

Contents

Favourite Posts

Blog Links

Newsgroups Links

Resources Links

Cross Dictionary Dexterity Development

David MeegoBack in 1998, when I was working with Sequel Technology (the Western Australian partner for Great Plains), we were implementing Great Plains Dynamics 4.0 for a couple of sites and were using add-on products for Service Management and Job Costing.

My business partner at the time (who did the sales) understood that Dexterity applications could be easily customised and so promised some changes to the customer.  What he (and I) did not understand at the time were the limitations Dexterity has for working across dictionaries. 

We did have some "with name" commands which could open forms, call procedures and run reports. We also had the execute() function which could be used to run Dexterity sanScript in the context of the 3rd party dictionary.  What we did not have was cross dictionary triggers.

Based on putting a number of ideas together I came up with a method of hacking the 3rd party extracted dictionary to add global procedure containing a call with name in dictionary command. This was a redirector stub procedure to work as a trigger handler script to call back into my dictionary where the real trigger handler code was located.  Then I could use execute() to register the trigger in the context of the other dictionary and use the hacked handler script to eventually call back into my code.  Luckily, once cross dictionary triggers were added into Dexterity 5.10, there was no longer a need to hack a 3rd party dictionary (which is not really allowed). Thanks to Dave Gaboury and Andrew Ingalls in Fargo for working with me to create proper cross dictionary triggers.

Anyhow, I was given the opportunity to present a session on this hack method (for v4.0 and v5.0) as well as other cross dictionary techniques at the 1998 Great Plains World Wide Developer Conference in Fargo.  This session was called Integrating with Third Party Dictionaries and was a hit with the development community. Later when I was with Winthrop Dexterity Consultants, I was able to present an updated version of this session using cross dictionary triggers (for v5.5 and v6.0... and later) at the Summer Tech 2000 Conference.

In 2001, I worked with Mark Rockwell from Rockton Software and created a new session called Pushing the Limits with Dexterity. In this session we discussed how to write code that was multi-dictionary friendly and showed how to create a Resource Explorer window as well as other techniques we are worked out.  Sadly, I was unable to get to the Summer Tech 2001 conference and so Mark presented it by himself.  An updated version was presented by both of us at the Tech 2002 conference in Fargo.

While the materials are a little bit old, the methods and concepts contained in them are still valid today and are the basis for the best practices of cross dictionary Dexterity development. These materials are available for download from both the Winthrop and Rockton websites and now also from this blog.

An archive containing the latest versions of both conference sessions is attached at the bottom of the article.

Please add your comments to say how you have used these materials. 

David

Comments

mgomezb said:

David,

I could not help after reading your article to go back to my blog and write about my experiences around the 3 conferences you presented -- Integrating, Pushing I, and Pushing II, as they have become known.

The fact remains, these techniques became the cornerstone of Dexterity programming and are now used worldwide by thousands of ISVs. You have always been someone we look up to when all options have been tried without any luck. Keep up the good work!

30' commercial: stop at my blog and read my accounts from those days... the good o' days!

MG.-

Mariano Gomez, MVP

# July 26, 2008 2:28 PM

David Musgrave said:

# August 4, 2008 1:10 PM

Developing for Dynamics GP said:

When I started this blog, one of my goals was to help developers push the boundaries of what they believe

# October 23, 2008 4:01 AM

Developing for Dynamics GP said:

Over the last few weeks I have been asked a number of times about methods of customising a 3rd party

# November 9, 2008 11:52 PM

Developing for Dynamics GP said:

One of the great things about Dexterity is that you can develop complex customisations without needing

# January 21, 2009 2:14 AM

Developing for Dynamics GP said:

Recently I responded to a question on a newsgroup asking how to minimise a window from VBA (Visual Basic

# March 8, 2009 10:14 PM

Developing for Dynamics GP said:

Recently I responded to a question on a newsgroup asking how to minimise a window from VBA (Visual Basic

# March 9, 2009 1:54 AM

Developing for Dynamics GP said:

When working with Dexterity triggers, the hardest part of the process is working out where to place the

# March 27, 2009 3:17 AM

Developing for Dynamics GP said:

In the previous part of this post we discussed the theory of the Three Trigger Technique and the details

# March 29, 2009 9:14 PM

Marcos Martin said:

David, I need to go further with integrations. How can I open a lookup with data from another company (database), for an existing table definition? For example, I'm logged in Company 'A', but I need to open an Item lookup with items from Company 'B'

# April 20, 2009 4:28 PM

David Musgrave said:

Hi Marcos

This is not quite cross dictionary, but it is something unusual.

I think that you will need to use a FORM_PRE trigger on the lookup form to close the table and re-open it with the open table as command and specify the database type and pathname.  You can get the pathname by reading the SY_Pathnames table for the company and series.

Once you have changed the table being used the lookup should work fine.... off the other company.

You will also need to check that user has access to the company using the SY_User_Company_Access_REL table.

David

# April 20, 2009 9:36 PM

Marcos Martin said:

David, thanks for your advice. As always, it was very useful.

Marcos

PS: How can I do to become a member of the 'Musgravion' Circle?

# April 21, 2009 11:05 AM

David Musgrave said:

Hi Marcos

You are reading the blog. So you must already be a member. :-)

David

# April 21, 2009 10:30 PM

Developing for Dynamics GP said:

This particular situation has come up in a number of support incidents and I also run into this myself

# May 14, 2009 9:10 PM

Developing for Dynamics GP said:

This particular situation has come up in a number of support incidents and I also run into this myself

# May 17, 2009 8:57 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker