that's how it's done in ServiceDesk. i believe you'll need to publish your workflow that will create your ticket, and then call that workflow as a service call with another (probably webform is easiest) workflow project. pass the "SessionId" through as a URL parameter.
short answer: when you check the box on the Publishing tab that says "Allow External Workflow Tracking IDs" and then you publish the workflow, it automatically creates an input parameter for the sessionid (a.k.a. Workflow Tracking ID) for the webservice for that workflow..
So, the long answer:
- prior to publishing, ensure "Allow External Workflow Tracking IDs" is set to "True" (this is on the Publishing tab)
- publish your workflow
- capture the URL (e.g. http://WF76A/TestWorkflow01/MyService.asmx)
- create an integration project
- add a web service caller generator
- from URL: (e.g. http://WF76A/TestWorkflow01/MyService.asmx)
- ensure "ExecuteWithWorkflowTrackingIDComponent" is available and selected in the Components section. if this isn't in the list, then go back to number 1 above and ensure it was set properly and then published afterwards.
- in another, separate webform project, load the integration library into the project.
- use the "ExecuteWithWorkflowTrackingIDComponent" and map in whatever GUID you want the session id to be. ensure the URL is correct in the component.
- rejoice
let me know if you want to have a look at a demo; i put one together to ensure i didn't miss anything in the steps i typed in up there ^^^.