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,
esult.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 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",
"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.