11/21/2024 4:50:37 PM
slxdeveloper.com
Now Live!
|
|
|
SalesLogix 6.1 Procedures |
|
Description: |
The SalesLogix 6.1 OLEDB provider exposes several procedures that are specific to performing various SalesLogix operations. These procedures are executed via a connection using the SalesLogix Provider and work in the same way that a normal database stored procedure works. Understanding what is available will help you to know how and when to solve problems using these procedures.
|
Category: |
SalesLogix OLE DB Provider
|
Author: |
Ryan Farley
|
Submitted: |
1/22/2004
|
|
|
Stats: |
Article has been read 58076 times
|
Rating:
- 4.8 out of 5 by 4 users |
|
|
|
fiogf49gjkf0d
The SalesLogix 6.1 OLEDB provider exposes several procedures that are specific to performing various SalesLogix operations. These procedures are executed via a connection using the SalesLogix Provider and work in the same way that a normal database stored procedure works. Understanding what is available will help you to know how and when to solve problems using these procedures.
One thing to note. These procedures are not actual stored procedures. You will not see them in the database and can only be executed via a SalesLogix Provider connection.
sp_AliasList()
Returns a list of alias from the given SalesLogix server. This procedure can be used without actually logging in to SalesLogix, but requires a special connection string. See the following:
Provider=SLXNetwork.1;Data Source=NO_ALIAS;Extended Properties=ADDRESS=localhost;PORT=1706;TYPE=ODBC;SLX Server=MYSERVERNAME
|
slx_GetServerList()
Returns a list of the available SalesLogix servers on the network. This procedure also does not require you to be logged in to SalesLogix and also requires a special connection string. See the following:
Provider=SLXNetwork.1;Data Source=NO_ALIAS;Extended Properties=ADDRESS=localhost;PORT=1706;TYPE=ODBC
|
slx_GetNativeConnInfo()
Returns the full connection string to the underlying MSSQL or Oracle database, without the SYSDBA password.
slx_DBIDs('<table>', <number>)
The most commonly used of the SalesLogix procedures. Returns the requested number of SalesLogix IDs for the specified table.
Parameters: Table (Char), Number (Int)
slx_GetLoggedInServerInfo()
Returns the port number and server name associated with a given alias.
slx_SendClientLog(<data>)
Directly logs a log stream created on the client. For internal use only.
Parameters: Data (VarBinary)
slx_getConcurrentAvailable('<alias>', <number>)
Returns the available number of concurrent licenses up to the number requested.
Parameters: Alias (Char), Number (Int)
slx_RefreshLicProxy(<port>)
Refreshes the License Manager to the specified port.
Parameters: Port (Int)
slx_RefreshDictionary()
Refreshes the entire data dictionary cache. Should only be used for trouble shooting purposes. This function may not exist in future releases.
slx_RefreshLogServer()
Instructs the SLXLoggingServer.EXE to refresh its internal caches.
slx_CycleLogFile()
Instructs the SLXLoggingServer.EXE to close the current TEF file and open a new one. Usually occurs before a sync.
slx_SetLogging('<status>')
Specifies whether data or schema changes will generate sync log traffic for the current connection.
Parameters: Status; 'ON' - enables the generation of sync traffic for the current connection. 'OFF' - disables the generation of sync log traffic.
slx_RefreshUser('<userid>')
Refresh the current user in the security cache. This would include password and other profile information. The refresh is then broadcasted to the rest of the SalesLogix clients.
Parameters: UserID (Char)
slx_RefreshProfile('<profileid>')
Refresh the current SalesLogix profile. Profiles typically contain field level security information that a number of users could potentially be a member of.
Parameters: ProfileID (Char)
slx_RWPass()
Returns the Read / Write password in an encrypted form. The SLXRWEL.DLL COM object is used to decrypt this password so it can be included in the connection string for R/W access outside of the SalesLogix clients. See Connecting with the RWPassword From External Applications
slx_BeginBatchInsert('<table>', '<start id>', '<end if>')
Performance Enhancement. Used for large inserts that will be logged. Informs logging system to batch up inserts into 1 queue file rather than individual queue files for each insert. See slx_EndBatchInsert for terminating function. (Added in 6.1)
Parameters: Table (Char), the table you are inserting to. StartID (Char), the starting ID value in the batch you are inserting. EndID (Char), the ending ID value in the patch you are inserting.
slx_EndBatchInsert()
End the batch insert, informing the logging system to close and write out the queue files for workgroup log generation. (Added in 6.1)
slx_SetGlobalID('<accountid>')
Informs logging system that following DML statements (INSERT/UPDATE/DELETE) are intended for specified ACCOUNTID only.
As with previous versions of SalesLogix, a valid USERID can be specified in place of an ACCOUNTID, indicating that intended changes are for specific user. See slx_ClearGlobalID for returning to regular logging mode. This is an optional step. The SalesLogix provider will perform any needed logging automatically. (Added in 6.1)
Parameters: AccountID (Char), the AccountID that is the parent of the data you are inserting or updating.
slx_ClearGlobalID()
Clears the previous ID specified in slx_SetGlobalID, informing logging system to determine synchronization requirements automatically. (Added in 6.1)
Knowing which procedures are available to you will allow you to get the most out of your SalesLogix development. These procedures can be used in any valid connection via the SalesLogix Provider.
Until next time, happy coding.
-Ryan
|
|
|
|
Rate This Article
|
you must log-in to rate articles. [login here] 
|
|
|
Please log in to rate article. |
|
|
Comments & Discussion
|
you must log-in to add comments. [login here]
|
|
|
- subject is missing.
- comment text is missing.
|
|
| Re: SalesLogix 6.1 Procedures Posted: 1/26/2004 1:52:27 PM | fiogf49gjkf0d This may be a suggestion for a new article or a series of new articles but I have some basic questions:
1) What procedures can be used internally in SalesLogix customizations? (ie do I need to call slx_SetGlobalID(accountid) when doing a SQL INSERT via scripting?) 2) What procedures are necessary to completely setup synchronization logging? (first call slx_SetLogging(ON), slx_SetGlobalID, DML statement, LogSendFileAttachment, when done call slx_CycleLogFile()) 3) What procedures can be used via external customizations or are necessary for basic use?
I understand the procedures very well I just don't always understand where they would serve the best purpose. I understand things like slx_GetServerList would be useful in a 3rd party app where you need to specify a specific SalesLogix server to work from but I don't understand much more than that. I've never understood the need for SetGlobalID in pre 6.x nor do I understand the need for slx_SetGlobalID now and little things like that keep me chasing my tail when problems arise. A table giving the 'best uses' of each of the procedures would be ideal, or maybe individual articles which serve as a framework for developing certain kinds of internal or external customizations to SalesLogix.
Thanks Jeremy | |
|
| Re: SalesLogix 6.1 Procedures Posted: 1/26/2004 2:03:37 PM | fiogf49gjkf0d Jeremy,
Excellent suggestion. It would be a great line of articles to take each of these procedures and explain them in detail (and include the why you use them as well). I didn't mean for this article to serve much purpose other than to provide a place of reference where I could refer back to in future articles. But some detail on these procedures would be great.
Thanks, Ryan | |
|
| Re: SalesLogix 6.1 Procedures Posted: 6/16/2004 12:57:17 AM | fiogf49gjkf0d How do I take an SLX Alias (obtained using sp_AliasList) and turn it into a full ADO connection string ? | |
|
| Re: SalesLogix 6.1 Procedures Posted: 6/16/2004 1:08:34 AM | fiogf49gjkf0d Hi Michael,
Take a look at the article at http://www.slxdeveloper.com/page.aspx?action=viewarticle&articleid=7 (mentioned in the Related Articles) for information on building a SLX connection string. From the call to sp_AliasList you can retrieve the aliases from a server, then with the alias selected (along with the server name) you can build a connection string, minus the RWPass for a writable connection. You can obtain the RWPassword to build a complete connection string, take a look here: http://www.slxdeveloper.com/page.aspx?action=viewarticle&articleid=34 (also mentioned in the Related Articles above).
-Ryan | |
|
| Re: SalesLogix 6.1 Procedures Posted: 6/16/2004 1:18:25 AM | fiogf49gjkf0d Ok - so the procedure is : - slx_GetServerList - to obtain an list of SLX Servers - sp_AliasList - (using the server name in the connection string) to get a list of Alias' on that server - Build the ADO connection string - User Name and Password - Supply these from ???? - SLX Server - from slx_GetServerList
Questions : 1. slx_GetServer only seems to return my machine name....... 2. I'm still unclear about the where the connection information is stored, how the Sales Client's retrieve that information etc etc. | |
|
| Re: SalesLogix 6.1 Procedures Posted: 6/16/2004 8:50:57 PM | fiogf49gjkf0d Username and Password: Supplied by you. If you had a way externally to see even just a simple list of users guess what? Major security flaw. Someone from this list could generate a brute force cracker and gain access to your database eventually. I don't even think SalesLogix has a way of logging who tries to login to see if such a brute force entry is tried. It's highly unlikely anyone would want to do this but I believe because it is possible (even brute forcing usernames AND passwords) there should be some sort of auditing mechanism to help notice anything like this. SalesLogix was smart on making sure no one can see a list of users outside of the database without a valid way into the system.
With windows authentication in 6.2, there'll be an increased possible security threat. Say someone gained access to even a restricted user. They may not be able to uninstall programs but they can login to saleslogix, call "delete from account", "delete from contact", "delete from opportunity" in SQL and wipe your database clean unless there's some sort of restrictions on what can be deleted and by whom.
1. Is your machine a part of a domain? When you set up your connection using the ... on the login screen, do you see any other computers when you click the drop down? If not then that's your answer. It most likely only shows what is in that drop down. Why other machines won't show up is a hard thing to troubleshoot based on just the information you provided, there's a host of reasons.
2. The connection information is stored in the registry in lovely little keys and values. The "Connection Manager" registry stuff is stored here: HKEY_CURRENT_USER\Software\SalesLogix\ADOLogin. Under it is 10 connection keys that give the different database definitions you set up. I believe there's also some other keys that help, but this is the main one I know of.
Using the SalesLogix procedures does all the work of decyphering the many registry keys and values and places them in a lovely to use function. You could code your own way of decyphering the registry but it's way too much work when all of it's already been done for you. | |
|
| Re: SalesLogix 6.1 Procedures Posted: 6/16/2004 9:10:01 PM | fiogf49gjkf0d Ok - I found all the connection information under :
HKEY_CURRENT_USER\Software\SalesLogix\ADOLogin This definitely has the ADO connection string information I need.
However the question is - how does my VB app use the SalesLogix ADO provider to get these connection strings ? The most I can get is the Connection (Alias) name using sp_AliasList - not the full string / extended properties.
| |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/23/2005 5:48:08 AM | fiogf49gjkf0d Okie , It works Sp_Aliaslist
But i have a problem , i inserted some data using vb.net app , but synchronization server is not creating the log ,how can i do it ? is it possible that using 3rd party app log is created , if yes than how ?
thanks & regards
saurabh | |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/23/2005 9:46:56 AM | fiogf49gjkf0d Saurabh,
As long as your connection is using the SLX OLEDB Provider (See the related articles above for an article on the SLX connection string) then the provider will handle all sync logging for you (Assuming you haven't set "logging" to "off" in your connection string.)
-Ryan | |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/23/2005 7:47:03 PM | fiogf49gjkf0d Hi Ryan Can we call Stored procedure using SlxOledb provider ? | |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/24/2005 8:38:16 AM | fiogf49gjkf0d hii Ryan
I have tried with SLXOLEDB.1 provider in connection string but my app is throwing a exception
'SLXOLEDB.1' provider is not registered with the local System
what is the basic cause of the error ,and how to solve it , i have installed Service pack 2 of version 1
i am new to Salexlogix , so may be i am doing so much of mistake ,plz help ryan
thanks & Regards
saurabh | |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/24/2005 10:03:11 AM | fiogf49gjkf0d Saurabh,
To use the SalesLogix OLEDB Provider, you need to ensure that you are using the right connection string for the version of SLX that you have installed. The SLXOLEDB.1 provider corresponds to SLX version 6.2 (See http://www.slxdeveloper.com/page.aspx?id=35&articleid=55). If you are using version 6.0 to 6.1.1 then you'll use SLXNetwork.1 (See http://www.slxdeveloper.com/page.aspx?id=35&articleid=7). If you are using 5.x or prior then none of this applies since it did not have an OLEDB Provider. But for any v6.x then you must have at minimum the SLX Provider installed on the machine you're using.
An easy way to build a SLX connection string for the provider installed on your machine is to use the DataLink Designer that I have in the utilities section of this site (See http://www.slxdeveloper.com/page.aspx?action=viewarticle&articleid=36). It invokes the standard DataLink dialog and allows you to set the properties and then provides you with the complete connection string (Make sure you choose the SalesLogix provider from the "Provider" tab).
Good luck.
-Ryan | |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/28/2005 2:51:15 AM | fiogf49gjkf0d hii Ryan , How r u?
First of All thanks for ur Cooperation , now i am able to Use synchronization using .NET app .
thanks for ur valuable help
Now i have another query ,
How do i call a form created using .net in slx architect ? means
i have created a form named ContactInformation in vb.net , now i wanna call this form from slx Architect, is it possible to call it , means Should i use REgasm utility of .net to generate a tlb file which can work as a com type lib , than refernce it in salex logix
is it possible ? help Ryan it's urgent
thanks & regards
saurabh
| |
|
| Re: SalesLogix 6.1 Procedures Posted: 2/28/2005 10:42:52 PM | fiogf49gjkf0d Hii
the sinking problem again
the 2 way sinking is not working , means i am able to sink data from the server but not from the Remote client?
thanks & Regards
saurabh | |
|
| Re: SalesLogix 6.1 Procedures Posted: 5/23/2005 3:46:06 PM | fiogf49gjkf0d Is there a procedure or any mechanism to generate a data dictionary for a SLX v6.1 database? I need to understand how data is structured. Is this what the slx_RefreshDictionary() procedure is for?
TIA | |
|
| Re: SalesLogix 6.1 Procedures Posted: 11/10/2005 9:34:25 AM | fiogf49gjkf0d I have an issue syncing a new attachment from a remote database, can you help?
I have a third party vb program which is called from within Saleslogix and creates an attachment record on a remote database using the filesystemobject. All looks fine on the remote database, then the sync process is run but the attachment record and file are not synced.
Any suggestions?
Regards Chivonne | |
|
| Re: SalesLogix 6.1 Procedures Posted: 4/19/2006 10:47:06 AM | fiogf49gjkf0d We are running into a problem where the data dictionary on a users machine is out of sync. As a result the user can generate an error if a from or script attempt to access a new table of field in the database.
How can I make SalesLogix smart enough to know when the data dictionary needs to be refreshed on the the users machine? | |
|
|
|
|
|
Visit the slxdeveloper.com Community Forums!
Not finding the information you need here? Try the forums! Get help from others in the community, share your expertise, get what you need from the slxdeveloper.com community. Go to the forums...
|
|
|
|
|
|