NaomiP 4/30/2007 10:36:00 AM

RetrieveGlobals9.dll

Microsoft has published a dll called RETRIEVEGLOBALS.DLL that can be used to access user data from inside of Dynamics GP. I'm posting the file here, along with their documentation, so that I don't have to go looking for it. You'll find a link to the file at the very bottom of this post.

Database Connections for Modifier with VBA or Integration Manager in Microsoft Dynamics GP

 

Summary

 

The RetrieveGlobals9.dll is an ActiveX dll that will return the current

User ID, the current company logged in to, the current SQL data source as well as the current user date in Microsoft Dynamics GP.  The RetrieveGlobals9.dll will also return an ADO connection object that will allow you to connect to Microsoft Dynamics GP Data.    The RetrieveGlobals9.dll will work only with version 9.0 Microsoft Dynamics GP and will only work if one session of Microsoft Dynamics GP is running and logged into.  The RetrieveGlobals9.dll is only for use in Modifier with VBA or Integration Manager that also require Microsoft Dynamics GP to be open and running. 

 

Installation Instructions

 

1.   Copy the RetrieveGlobals9.dll to a folder on your machine.

 

2.   Register the RetrieveGlobals9.dll using regsvr32.exe. Go to Start-Run and enter the path to the regsvr32.exe, followed by the path and name of the DLL. For example:

 

            C:\WINDOWS\system32\regsvr32.exe “c:\GP 90\RetrieveGlobals9.dll”

 

If the DLL registers successfully, you should get a message box indicating so.

 

3.  Write your application code to call the RetrieveGlobals9.dll

Using the RetrieveGlobals9.dll

 

The retrieveuserinfo class of RetrieveGlobals9 contains the following properties and functions:

 

intercompany_id

 

The intercompany_id method retrieves the Company ID that is currently logged into Microsoft Dynamics GP.  This will match with the database name in MSSQL. 

Example: “TWO”. 

 

Syntax: intercompany_id () as String


 

retrieve_user

 

The retrieve_user method retrieves the User ID that is currently logged into Microsoft Dynamics GP. 

 

Syntax: retrieve_user() as String

 

sql_datasourcename

 

The sql_datasourcename method retrieves the current SQL Datasource name that is being utilized by Microsoft Dynamics GP. 

 

Syntax: sql_datasourcename () as String

 

user_date

 

The user_date method retrieves the User Date from the Toolbar in Microsoft Dynamics GP. 

 

Syntax: user_date () as Date

 

status

 

The status property indicates whether or not a valid connection object can be obtained from the connection property.

 

Syntax: status As Long

 

The status property could contain the possible values:

 

Value                           Description

0                                  A Microsoft Dynamics session is not open

1                                  A connection can be created

2                                  A connection could not be created

3                                  The current Microsoft Dynamics session is not Version 9

131072 (&H20000)     A COM exception occurred during the connection attempt

262144 (&H40000)     The account is locked

65536 (&H10000)       The user’s password has expired


 

connection

 

The connection property contains an ADODB.Connection to the Microsoft Dynamics GP SQL Server.  This connection uses the SQL Datasource, User ID and Password credentials of the user currently logged into Microsoft Dynamics GP. This connection does not have a default database specified.

 

Syntax:  connection As Object

 

* The connection property will only contain a valid connection object if a Microsoft Dynamics GP 9.0 session is open and running. It should be verified that the status property has a value of 1 prior to attempting to use the connection property.

 

Example

 Dim cn
Dim cmd As ADODB.Command
Dim rst As adodb.Recordset
dim prm as adodb.parameter

Set userinfo = CreateObject("RetrieveGlobals9.retrieveuserinfo")

If userinfo.Status = 1 Then
    Set cn = userinfo.connection

    luserid = userinfo.retrieve_user()
    lintercompanyid = userinfo.intercompany_id()
    lsqldatasourcename = userinfo.sql_datasourcename()
    ldate = userinfo.user_date()

    'Use the connection property to get a connection object.
    Set cn = userinfo.connection

    'set the database to the currently logged in db.
    cn.DefaultDatabase = lintercompanyid

    cmd.CommandType = 4 'stored proc
    cmd.ActiveConnection = cn
    cmd.commantText = "myStoredProc"

    'add params
    cmd.parameters.add cmd.CreateParameter ("@paramname",adVarchar,adInput,21,"")
 
    Set rst = cmd.Execute

    while not rst.eof
        'do something

        rst.movenext
    wend


end if


cn.close
set cn = nothing

 

Version: Unknown or N/A
Section: Dynamics GP


Table Definition Quick Links
All Tables
SOP Tables
RM Tables
GL Tables
POP Tables
HR Tables
PM Tables
UPR Tables
IV Tables
Olympic Tables
3