Hybrid Development and Continuum

David Meego - Click for blog homepageIn the past, I was known for my pioneering work with and promotion of Cross Dictionary Dexterity Development.  More recently I have been talking up the benefits of Hybrid Development and Developing Outside of the Box.

With all the tools available to the Microsoft Dynamics GP developer, and each tool having its strengths and weaknesses, it just makes sense to use whichever tool is best for a particular job.  Even if that means using multiple tools for the one solution.

As Mariano Gomez and I have been preparing for the two sessions we will be presenting at the Microsoft Dynamics GP Technical Conference 2009 in Fargo on the 9th-11th November 2009, we have been working with a variety of tools.  Mariano has written a great post that discusses hybrid development and why it is becoming so important.  Check out:

Developing Microsoft Dynamics GP hybrid integrating applications

Mariano has just posted a great hybrid solution to showing the total of a transaction in words.  Check out his solution using Visual Studio Tools to call the RW_ConvertToWordsAndNumbers() report writer function to get the amount in words.  Here is the link:

VST - Amount in Words on SOP Entry window

For other ways to get the most out of the RW_ConvertToWordsAndNumbers() function, see the following posts from this blog:

Hybrid - Cheque Amount in Words Example

RW - Getting RW_ConvertToWordsAndNumbers() to work with multi-currency

RW - Getting RW_ConvertToWordsAndNumbers() to show cents in words

It seems fitting that in the same week, Mohammad Daoud should publish a post showing how the Continuum Integration Library can be used to control the Microsoft Dynamics GP application interface as well as execute pass through sanScript.  Check out:

Practical Example on Dynamics Continuum Integration Library: GL Transaction Entry Integration

If you are running this code from VBA, the control of the interface can be handled with native VBA. However, this technique can be used from external VB applications.  Even though I would probably then use Visual Studio Tools instead.

Mohammad is also doing his bit for increasing the size of the Microsoft Dynamics GP consultant community with the birth of his son. Congratulations. Here is his post:

Father of my baby boy!.

Note: The use of the Continuum Integration Library to execute Dexterity scripts from VBA is not supported.


19-Jul-2013: Fixed broken links to Mohammad Doaud's Blog.

Comments (5)

  1. David,

    Thanks for your post! Just a little clarification, sometimes using Dynamics Continuum Library is needed if you were in one of the following situations:

    1. When creating VBA customizations across multiple dictionaries and not interested to face circular references, like having to call a form in “Smart-List” dictionary using one of the events in Dynamics GP dictionary, in the same time the form in Smart-List must perform some events on in Dynamics GP dictionary as the situation in this post: http://mohdaoud.blogspot.com/2009/06/how-to-call-gp-lookup-using-vba.html

    2. When you need to loop through the values of a details window when the window is already loaded and the “Before Line Populated” event could not help.

    3. When you need to perform integrations between external applications and third party forms or modules developed on dexterity or Microsoft Products that has neither integration manager adapter nor eConnect take the Cashbook Management Module as an example.

    4. When you need to run few dexterity commands to run a Macro file or to call a lookup form as explained in the following post:


    Still needed dexterity commands is available, like “open forms” and “run script”, as those you could need if you were in any of the above situations.

    Thanks again for your usual inputs and directions, and btw.. I will do my best to get my visa before November 9 and hopefully to attend your and Mariano’s session @ the conference.


    Mohammad R. Daoud

  2. Steven Vallarian says:

    Will the Continuum API still be available in GP 11?

  3. Patrick Roth [MSFT] says:


    There is no reason to expect that it will ever go away.

  4. Fabiano Dev says:

    I have problems running the examples Conntinuum (Field Defaulter)

    Private Sub FieldDefaulter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


           On Error Resume Next

           GPApp = CreateObject("Dynamics.Application")

           On Error GoTo 0

           If GPApp Is Nothing Then

               MsgBox("Failed to create a Dynamics.Application object")


           End If

          FocusRegistation("'Zip' of window 'RM_Customer_Maintenance' of form 'RM_Customer_Maintenance'", "cbDataEntryZip", TRIGGER_FOCUS_CHANGE, TRIGGER_BEFORE_ORIGINAL)

          FocusRegistation("form 'Toolbar'", "cbCloseMain_Menu_1", TRIGGER_FOCUS_POST, TRIGGER_BEFORE_ORIGINAL)

     End Sub

    Public Sub FocusRegistation(ByRef obj As String, ByRef proc As String, ByRef focus As Short, ByRef attach As Short)

           CheckRegistration(GPApp.RegisterFocusTrigger(obj, focus, attach, GPCallback, proc), obj, "focus")

       End Sub

     Private Sub CheckRegistration(ByRef error_val As Short, ByRef obj As String, ByRef reg As String)

           If error_val <> REG_ERR_NOERR Then

               MsgBox("Failed to register a " & reg & " notification on " & obj & ".  " & RegistrationErrStr(error_val))

               GPApp = Nothing


           End If

       End Sub

    Error_val always equals 4

  5. David Musgrave says:

    Hi Fabiano

    Can I suggest either logging a support case or asking your question on the community forum (link on right hand pane)?

    Blog comments are not an appropriate method for providing support.



Skip to main content