Video Screencast Help

Email monitor - modifying to monitor multiple mailbox and routing error

Created: 10 Mar 2014 | 14 comments


I have implemented the changes in the article - both parts. I have following the instructions and suggestions in article, but I am getting "SessionID Empty" error.

in the event logs : "Exception at Run method with message :Empty SessionID."


"System.Web.Services.Protocols.SoapException: Empty SessionID.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at RulesDataServiceDynamicService.RulesDataService.GetMappingIDByName(String sessionId, String name)
   at RulesDataServiceDynamicService.GetMappingIDByNameComponent.Run(IData data)
   at LogicBase.Core.ExecutionEngine.SinglePathProcessComponentExecutionDelegate.Execute(IData data, IOrchestrationComponent comp, String& outputPath, IExecutionEngine engine, TLExecutionContext context)
   at LogicBase.Core.ExecutionEngine.AbstractExecutionEngine.RunComponent(TLExecutionContext context, IData data, IOrchestrationComponent comp)"

I did notice in the Routing & Classification that the following components having SessionID empty errors when validating the Model:-

Get EmailToQueue Data Mapping ID

Match Email.To address to EmailToQueue mapping

Get EmailToClassification Data Mapping ID

Match Email.To address to EmailToClassification mapping

The issue is that I do not know what SessionID is supposed to be?

The monitoring of Multiple mailbox is working, but routing and classification is not working.

Any help will be appreciated

Operating Systems:

Comments 14 CommentsJump to latest comment

Heman's picture

Just been told by pmi0383 it should be "outPutGlobalSessionID", now not getting the errors, but getting new ones :-

[WorkflowTasks] Error loading task.
Client: IP=fe80::b854:9c2d:1c46:ee70%12 HostName=fe80::b854:9c2d:1c46:ee70%12 Browser=Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.5477)
System.Exception: taskID is null
   at LogicBase.Ensemble.WorkflowTasks.WorkflowTasks.GetTaskByID(String sessionID, String taskID) in c:\build\projects\WF75_SDSP1_Apollo\ensemble\LogicBase.Ensemble\WorkflowTasks\WorkflowTasks.asmx.cs:line 1280


[Reports] Error saving process permission.
Client: IP=fe80::b854:9c2d:1c46:ee70%12 HostName=fe80::b854:9c2d:1c46:ee70%12 Browser=Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.5477)
System.Exception: Permission for 'Support' already exists.
   at LogicBase.Ensemble.Reports.ServiceCore.ReportLogProcessPermission.AddNew(String sessionID, ReportLogProcessPermission[] permissions, Boolean performMapping) in c:\build\projects\WF75_SDSP1_Apollo\ensemble\LogicBase.Ensemble\Reports\DataLayer\ReportLogProcessPermission.cs:line 216

not sure if this is related. Also the emails are not getting routed


MPowers's picture

Are you guys both on 7.5 SP1? We're only on 7.5 MP1, but we have been planning to update Dev anyway, so I can try to test.

MPowers's picture

Here is a copy of our project if you want to try, no idea what those errors are about. We've been using our project in production with about 25 mailboxes for a few months now, but like I said we're on MP1.

I did make some changes that fixed routing for me. For one, I use the "currentemailbox.emailmonitoredboxname" instead of the "To address" to route. This is so if there are multiple email addresses in the To field or in the CC, it still routes. Obviously, you'd need to adjust your data mappings based off of that. I also carry that variable through the whole project, as it didn't work right when I just tried to copy the emailmonitoredboxname to the "To Name", as was suggested in the article comments. I also added a notication to ticket owner in the response section.

Hope you have some more luck.

AttachmentSize 4.27 MB
Heman's picture

Hi pmj0383, sorry about the delay. I have installed your, but the routing is still not working and still getting the errors in my last post, when an email is received by ServiceDesk. and yes I am using 7.5 SP1. What I find strange is looking for something in "c:\build\projects\WF75_SDSP1_Apollo\ensemble\LogicBase.Ensemble\WorkflowTasks\" which I do not have.

any ideas?

thanks - Heman

MPowers's picture

That sounds like why you are getting the errors (and I've seen other projects from Symantec have libraries with incorrect paths).

Where is it showing that path? Can you check the libraries of the project and see if that path is anywhere? Also, are any components in the project showing the red exclamation mark? If not, when you debug, at what component does it give that error? Maybe I can try to look at mine and see what the right paths are.

TGiles's picture

The path that is showing is simply referring to the location of the LogicBase.Ensemble code when the dll itself was built. You won't have this path existing in your ServiceDesk installation.

Heman's picture

I ran the email monitor in debug and there were no errors, so will have to look at the routing and clasification, as the email is this being created to the default queue.

MPowers's picture

Do you have your data mappings set? If you are using my package, I have it set to add the To: address and mailbox name to the bottom of the process message on the incident to help troubleshooting.

Heman's picture

Hi MPowers

I have done the Data Mappings and rechecked them and still the routing is not working. It is always going to the default queue. I have checked at the bottom of the incident and see the To: address and the mailbox name. I have made sure in the data mapping is correct. is there something I am missing? Is "outPutGlobalSessionID" correct as the sessionID for the componantsabove?

MPowers's picture


I think I see what you mean now that I've upgraded to SP1 on my dev environment. On the previous version, the mapping component did not require a sessionID, but now in SP1 it does. I would think it would be the outputGlobalSessionID (which is output from the previous component), but I'll test and see if email routing works in my dev now that I'm on the same version as you.

Here's the old version:


New version:


TGiles's picture

Since you are using ServiceDesk 7.5 SP1 don't bother performing the queue routing inside E-mail Monitor as the SP1 versions of E-mail Monitor passes the mailbox information into SD.IncidentManagementSimple to allow you to use Automation rules for routing. This includes the updated Multi E-mail Monitor project that was released for SP1. The information is stored in the Channel Details field and can easily be used against a data mapping table defined in the portal to route to the designated queues. Simply make sure that the key1 field in the data mapping table is the mailbox name you used to monitor.

The updated 7.5 SP1 version of the project should be attached to as a download on the original article about the Multi E-mail Monitor.

MPowers's picture


I did see that new feature. In the release notes it says that the To address is in the request channel details. I have two questions that are pretty much needed for us to switch to using it.

1. Does the new method support routing when multiple entries are in the To address?

2. Does the new method support routing when the email was CC'ed to an email address (not in the To).

These things are why I ended up editing our package to look at the name of the mailbox and not use the To address at all. Can we do the same thing with the new method?

TGiles's picture

Yes to both questions. The updated version will populate the request channel details field with the mailbox name of the specific e-mail box that it is processing. Using this method it doesn't matter if the address was in the To:, CC:, or BCC: field.