SALT in Skagit (Part 3)

POSTED BY: GUNNAR KUDRJAVETS, MSS Software Design Engineer

ALAN TURNQUIST, MSS Software Design Engineer

Here are some recent FAQs about SALT:

Q: How do I debug a SALT application running inside a Windows Workflow Foundation (WWF) application?

A: You can use the debugger statement (https://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/c6d2e193-c1f7-4fb3-8a4e-cc9823174ae4.asp) in the JScript portion of your application to break into the debugger. After you press F10 in Visual Studio the debugger attaches itself to the relevant W3WP.EXE process. If a debugger statement is executed, your application will encounter a breakpoint and you would be able to step through the JScript inside your SALT application and do all the usual debugging.

 

Q: What’s the window.applicationData property introduced in MSS 2007 and how can I benefit from it?

 

A: The window.applicationData property will persist across the lifetime of the SALT application. This means that for example you can do the following things:

-

  • In your workflow application code in C# you can add data to the dictionary.

    this.saltInterpreterActivity1.ApplicationData["foo"] = "bar";
    this.saltInterpreterActivity1.ApplicationData["AnswerToEverything"] = 42;
    this.saltInterpreterActivity1.ApplicationData["SomeObjectIWishToUseInSalt"] = new MyObject();

    In SALT you can later use window.applicationData to access all this information from any individual SALT page.

  • In one SALT page you can add some information and it’ll be available to all the other pages in your application. For example you might set something in your start page and later the error page will be able to access this data.

After the SALT application terminates, your workflow application will be able to access the data stored by the SALT application. For example if you want to log something in the error page, you can add it to the dictionary and then use C# code to write the error into NT Event Log, log file, etc.

Q: How do I close a SALT application which is running part of WWF application without terminating the telephony session?

A: If a SALT application is running from within a workflow, there are two choices to exit the SALT application:

  • The SALT application sends the ClearConnection CSTA message which will cause us to call TelephonySession.Close() which will terminate the call.

  • The SALT application calls window.close(). In this case, we’ll close the application and do all the required cleanup, but won’t close the telephony session. After that you can continue with your application from the workflow.