Thursday, September 19, 2024

Great Plains Dexterity Programming Secrets Tips for Developers

This article is for advanced Great Plains Dexterity and VB.Net developers. It describes the technique of direct COM objects calling in Dexterity.

Microsoft Great Plains and its current programming language Dexterity should be considered seriously by developers community and we would like to popularize the advanced techniques in Dexterity – calling COM objects. This will enable you as a developer to integrate such nice things as Web Service into legacy Great Plains interface.

First of all – you need to create your Web Service at your choice – it is outside of the scope here – we have WildCardWebService created. Then you need to create COM object. We used VB.Net and Visual Studio.Net 2003.

Public Class AST_ComWildCard

#Region "COM GUIDs"

' These GUIDs provide the COM identity for this class

' and its COM interfaces. If you change them, existing

' clients will no longer be able to access the class.

Public Const ClassId As String = "E14B960C-780C-45B4-92BD-4E8EB228AFC3"

Public Const InterfaceId As String = "7C2C2917-43D0-4BE1-B16B-1473E8A40BDC"

Public Const EventsId As String = "8BE33DF4-D64D-4A54-BEA7-EFD645D205D6"

#End Region

' A creatable COM class must have a Public Sub New()

' with no parameters, otherwise, the class will not be

' registered in the COM registry and cannot be created

' via CreateObject.

Public Sub New()

MyBase.New()

End Sub

Public Function LoadActivate(ByVal localurl As String, ByVal baseurl As String, _

ByVal userid As String, ByVal pwd As String, _

ByVal sourceid As String, _

ByVal cardnum As String, ByVal subprogid As String, ByVal LoadAmount As String, _

ByRef response As String, ByRef Description As String) As String

Dim result As String

Try

Dim ws As WildCardWebService

ws = New WildCardWebService(localurl)

result = ws.LoadActivate(baseurl, userid, pwd, sourceid, cardnum, subprogid, LoadAmount)

If result = "URL doesn't respond!" Then

response = "2"

Description = result

Return result

End If

If result.IndexOf("Response=") 0 Then

response = result.Substring(result.IndexOf("Response=") + 9 + 1, 1)

End If

If result.IndexOf("ErrorDescription=") 0 Then

Description = result.Substring(result.IndexOf("ErrorDescription=") + 17 + 1, result.IndexOf(" ErrorDisplay") - 1 - (result.IndexOf("ErrorDescription=") + 17 + 1))

End If

Return result

Catch ex As Exception

response = "3"

Description = "COM Object Error!"

result = ex.Message.ToString()

Return result

End Try

End Function

End Class

Please – register this COM object via REGASM command.

Now let’s open Dexterity. If you don’t have it installed – install it from Great Plains 7.5 or 8.0 CD#2.

In Dexterity opem DYNAMICS.DIC and create new Library: Resource Explorer->New->Library(COM), select your COM object and register. Now it is ready for referencing in the Sanscript code.

Create Custom Form/Window, create local invisible field ‘(L) WildCard’ this field should have reference type COM Object and COM Object type will be available from the list. Place push button which will be calling your COM/Web Service and add somewhat similar to this code for the button:

(L) WildCard' of window AST_WildCard = COM_CreateObject("WildCardClassLibrary.AST_ComWildCard");

if '(L) WildCard' of window AST_WildCard = null then

error "Could not create WildCardClassLibrary object.";

abort script;

end if;

'(L) Result' of window AST_WildCard = '(L) WildCard' of window AST_WildCard.LoadActivate(

"http://localhost/wildcardwebservice/wildcardwebservice.asmx",

"https://yourasppage.asp",

"PARAMETER1",

"PARAMETER2",

"PARAMETER3",

"PARAMETER4",

"PARAMETER5",

"PARAMETER6");

'(L) WildCard' of window AST_WildCard = null;

And you are done. You are now calling from Custom Dexterity window COM and it in turn calls web service. Web service returns parameters back to COM and you are getting them back in your good-old-days Dexterity customization.

Happy customizing! if you want us to do the job – give us a call 1-866-528-0577! help@albaspectrum.com

Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies USA nationwide Microsoft CRM, Microsoft Great Plains customization company, based in Chicago, California, Texas, New York, Georgia and Florida and having locations in multiple states and internationally (www.albaspectrum.com), he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles

6 litre mini fridges. Indigo floor plans at caymas naples. Behind the creation of ai writing detectors :.