Great Plains Dexterity Advanced Programming
tips for Great Plains and VB.Net programmer
by Andrew Karasev
Introduction: 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.
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.
Public Class
AST_ComWildCard
#Region "COM
GUIDs"
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
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
Return result
Catch ex
As Exception
response = "3"
Description = "Error!"
result = ex.Message.ToString()
Return result
End
Try
End
Function
End Class
|
In Dexterity open 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");
|
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!
|