Printing UserID on SSRS reports

I’m trying to find a way to pass the current user ID to be printed on a canned SSRS report (not BAQ Reports). It can be Sales Order Acknowledgement. I looked at RDD, report parameters and various tables E10 creates but nothing seems to hold the UserID that submitted the report. Any ideas?

Thanks

This post outlines a way to do it:

The userID is another field on the CallContextClientData temp table that gets generated when the report is run. “CurrentUserId”

1 Like

Hi Adam, thank you for the reply. It’s exactly what I was looking for, except that when I tried to bring the CallContextClientData table into the report I get an error. I do not see that temp table in the database either. Is this a feature beginning with certain version? I’m on 10.0.700.4.

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for dataset ‘DataSet1’. —> System.Data.SqlClient.SqlException: Invalid object name ‘CallContextClientData_51af3b26248c4fc7915d22c164517242’.
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 Ice.Core.SsrsReportService.ReportExecutionService.Render(String Format, String DeviceInfo, String& Extension, String& MimeType, String& Encoding, Warning[]& Warnings, String[]& StreamIds)

Wondering what did your modified expression end up looking like?
The values below worked on version 10.1.6 - note I joined on T2.Company.

T5.CurrentUserId

LEFT OUTER JOIN CallContextClientData_" + Parameters!TableGuid.Value + " T5
ON T2.Company = T5.CurrentCompany"

Really? I just created a new DataSet and set the query as this to test to see if a data will come into the report.

=“SELECT T1.CurrentPlant FROM CallContextClientData_” + Parameters!TableGuid.Value + " T1"

In the Epicor10Reports database I have never seen a table named “CallContextClientData_…” created.

Fred

Yeah one of those things. Not displayed - you just have to know.
I just happened to see a couple threads, referenced here:

  • never noticed any mention in the standard documentation but… could be in there?

CallContextClientData_ and CallContextBpmData_

e.g.
LEFT OUTER JOIN CallContextClientData_" + Parameters!TableGuid.Value + " T2
ON T1.Company = T2.CurrentCompany"

Or
LEFT OUTER JOIN CallContextBpmData_” + Parameters!TableGuid.Value + " T3 ON T1.whatever = T3.whatever"

When you run the report, have you tried setting the Archive Period to anything but 0 days? That should leave the temp table visible in the AppServerNameReports database. But it very well may be a later version feature… Just to confirm, did you change the datasource to the one the report uses on your new dataset?

I concluded this feature is not available in my version. I tested with 10.2.300 and verified that both CallContextBpmData and CallContextClientData tables are created.

Thanks