11/22/2024 7:51:13 PM
|
|
slxdeveloper.com Community Forums |
|
|
|
The Forums on slxdeveloper.com are now retired. The forum archive will remain available for the time being. Thank you for your participation on slxdeveloper.com!
Forum to discuss general external development topic (related or not to SalesLogix development). View the code of conduct for posting guidelines.
|
|
|
|
Executing Saleslogix Script from a VB application
Posted: 04 Jun 08 5:18 PM
|
I have spent almost a week trying to figure out how to execute a Saleslogix Script from an external VB application. I viewed many sample apps; none of which seemed to work for me. Here is the problem:
I can execute any Saleslogix script as long as it does not involve connecting to the Database by the following code
Set Slx = CreateObject("SalesLogix.ClientObjix") Slx.DoInvoke "Basic","Personal:myScript"
As soon as the script contains the database stuff(updateing a table in Saleslogix), the application fails.
My question is how do you pass the Database credentials to saleslogix? I tried this: I made a Reference to the Com object SLAPICom
Dim StrUseName as string Dim StrPassword as string Dim strBDE as string
StrUserName = "myUserName" StrPassowrd = "MyPassword" strBDE="MyServerName"
Slapi_Loginto strBDE,StrUserName,StrPassword
Thanks |
|
|
|
Re: Executing Saleslogix Script from a VB application
Posted: 04 Jun 08 5:37 PM
|
You're mixing COM calls via ClientObjix and SLAPI - they both are separate and don't interact at all.
For COM (ClientObjix) it uses the running client. All you are doing is telling the code to run inside the already running SLX client, just as if you had invoked it from an internal script.
My guess is that this has nothing to do with the fact that you're invoking it externally, but something else *within the script* is failing. If you run this by invoking it from another SLX script, I'd guess you'll see the same problem.
BTW, what exactly is failing, what is your error, etc? |
|
|
|
Re: Executing Saleslogix Script from a VB application
Posted: 05 Jun 08 9:36 AM
|
Ryan
Thanks a million for the response. If in my script I add a line like
strsql = "Update ........." dBExecute Strsql
When running the VB side, VB gives me Runtime Error 2147418113(8000ffff) - Catasrophic failure Any idea?
Thanks again |
|
|
|
Re: Executing Saleslogix Script from a VB application
Posted: 24 Jun 08 11:36 AM
|
Thanks Ryan.
Even if I write the simplest script, I get the same error when it is invoked within a VB app. This error occurs when I try to do anything which requires interactions with the Saleslogix Database/tables or scripts.
Is there a sample code which shows how to pass the credentials and execute a script? It can be a very simple script which updates one fieldin a table
As always, thanks for all your help (BTW we are still on version 5.2 ) |
|
|
|
Re: Executing Saleslogix Script from a VB application
Posted: 24 Jun 08 5:41 PM
|
Well, to be honest, it's been years since I've used 5.2 - I don't even think I have a machine around any more with 5.2 on it either. But I can tell you, that back in the day when I did use 5.2 I would do what you're describing all the time, without issues. Does your code look anything like this (not tested code and likely wrong since I haven't typed out old cypress script for quite a long time )
The SLX Script:
Dim hnd As Long hnd = DBOpenSQL("select top 1 account from account order by createdate desc", True) InvokeSetResult DBGetValue(hnd, "account") DBClose hnd
Then the external code (not sure what language you're using so this is just as external VBScript)
Dim slx Set slx = CreateObject("SalesLogix.ClientObjix") slx.DoInvoke "Basic", "System:MyScript" MsgBox "The last account created is " & slx.InvokeResult Set slx = Nothing
Anyway something like that. Like I said, I can't test this now, but that sort of thing was quite common for me back in the 5.2 days - so at least I know it worked back then.
-Ryan |
|
|
|
Re: Executing Saleslogix Script from a VB application
Posted: 25 Jun 08 11:30 AM
|
Is SalesLogix already running when this application starts? Or does the application actually start SLX itself, using a Shell command or some-such thing?
You can't execute SQL commands from within SLX until it's successfully logged in, and even if you pass the credentials on the command line (via the Shell statement), it won't be ready to run Enable scripts for a while after that. Your biggest problem with 5.2 is going to be determining when SLX is ready to accept ClientObjix calls and run DoInvoke's - v.6.2 (and higher) exposes an Application.State property that you can check, but v.5.2 does not.
If you absolutely cannot upgrade to 7.x, and your VB program doesn't require the creation or updating of file attachments in such a way that they sync out, I would strongly recommend abandoning the ClientObjix approach and using SLAPI exclusively. The learning curve is much steeper, though. |
|
|
|
You can
subscribe to receive a daily forum digest in your
user profile. View the site code
of conduct for posting guidelines.
Forum RSS Feed - Subscribe to the forum RSS feed to keep on top of the latest forum activity!
|
|
|
|
|
|
|
|