Home | Forums | Contact | Search | Syndication  
 
 [login] [create account]   Thursday, November 21, 2024 
 
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 58074 times

Rating: - 4.8 out of 5 by 4 users
 

fiogf49gjkf0d
SalesLogix 6.1 Procedures

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.

The Procedures

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)


Wrapping It Up

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

 

About the Author

  Ryan Farley
(SalesLogix Business Partner)
Customer FX Corporation

fiogf49gjkf0d

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix since 2001 and believes in sharing with the community. He loves C#, Javascript, Python, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

View Ryan's SalesLogix Mobile Seveloper Series
View Ryan's SalesLogix SData Developer Series
View Ryan's Git for the SalesLogix Developer series



View online profile for Ryan Farley
 

[ back to top] [ send to a friend]  

Rate This Article you must log-in to rate articles. [login here] 
 
Please log in to rate article.
 

Related Articles 
 - Connecting with the RWPassword From External Applications - Submitted by: Ryan Farley
 - Understanding the SalesLogix OLE DB Connection String (For versions 6.1 and prior) - Submitted by: Ryan Farley

 

Comments & Discussion you must log-in to add comments. [login here] 
 
Author Article Comments and Discussion
Jeremy Brayton
 
slxdeveloper.com Forum Top 10 Poster!

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
 
Ryan Farley

slxdeveloper.com Site Administrator
slxdeveloper.com Forum Top 10 Poster!

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
 
Michael Green
 

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 ?
 
Ryan Farley

slxdeveloper.com Site Administrator
slxdeveloper.com Forum Top 10 Poster!

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
 
Michael Green
 

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.
 
Jeremy Brayton
 
slxdeveloper.com Forum Top 10 Poster!

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.
 
Michael Green
 

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.

 
Saurabh Gupta
 

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
 
Ryan Farley

slxdeveloper.com Site Administrator
slxdeveloper.com Forum Top 10 Poster!

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
 
Saurabh Gupta
 

Re: SalesLogix 6.1 Procedures
Posted: 2/23/2005 7:47:03 PM
fiogf49gjkf0d
Hi Ryan
Can we call Stored procedure using SlxOledb provider ?
 
Saurabh Gupta
 

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
 
Ryan Farley

slxdeveloper.com Site Administrator
slxdeveloper.com Forum Top 10 Poster!

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
 
saurabh
 

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
 
Saurabh Gupta
 

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
 
Jose Gosende
 

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
 
Chivonne
 

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
 
Jeff L



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...
 



 slxdeveloper.com is brought to you courtesy of Ryan Farley & Customer FX Corporation.
 This site, and all contents herein, are Copyright © 2024 Customer FX Corporation. The information and opinions expressed here are not endorsed by Sage Software.

code of conduct | Subscribe to the slxdeveloper.com Latest Article RSS feed
   
 
page cache (param): 11/21/2024 11:31:05 AM