Report Data Definition and Microsoft Report Builder syncing issue?

Hi everyone, so recently, I tried to duplicate a Report Data Definition


into this…

and just excluded one field in one of the tables.

I went into Report Style Maintenance, and changed the data definition in the original report style from TSGOrderAck (shown in this pic) into TSGOrderAckC (the duplicate I created above)


I tried syncing dataset and got the following message

But then my report wouldn’t print. In the system monitor, I got the error message shown at the end.

I’m really a novice when dealing with reports from Epicor, any help is greatly appreciated !~

Thank you so much for your help!

ERROR MESSAGE :
Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask:
System.Web.Services.Protocols.SoapException: 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 ‘OrderHed’. —> System.Exception: For more information about this error navigate to the report server on the local server machine, or enable remote errors
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.SetExecutionParameters(ParameterValue Parameters, String ParameterLanguage) in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\Web References\SsrsReportService\Reference.cs:line 497
at Ice.Core.SsrsReporting.SsrsRendererBase.ConfigureReportServerForReport(String reportPath, ParameterValue parameters) in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsRendererBase.cs:line 169
at Ice.Core.SsrsReporting.SsrsSingleDocumentRenderer.<>c__DisplayClass1_0.b__0() in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsSingleDocumentRenderer.cs:line 49
at Ice.Core.SsrsReporting.SsrsRendererBase.TraceReportRendered(String printProgram, String ssrsRenderFormat, Func1 timedAction) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsRendererBase.cs:line 88 at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReport(String ssrsRenderFormat, String printProgram, Boolean ignorePageSettings) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 247 at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReportForPreviewOrGenerate(RenderedSsrsReport renderedReport) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 408 at Ice.Core.SsrsReporting.ReportProcessorBase.ProcessReportPart(String reportLocation) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 163 at Ice.Core.SsrsReporting.StandardReportProcessor.ProcessReportParts() in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\SsrsReporting\StandardReportProcessor.cs:line 31 at Ice.Core.RoutingAndBreaking.ReportPersister.Persist(ReportInstanceInformation reportInstance, Func 2 reportsRenderer, Action1 fillSysRptLstRow, Action 2 processReport, Func3 filterTableAttachmentsFunc) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\ReportPersister.cs:line 58 at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RenderUnroutedSsrsReport() in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 304 at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RunSsrsReportIfEnabled() in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 228 at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.ProcessReportWithDataInPlace(Func 2 executeCommand, Func2 executeReader, SqlObjectsCreated sqlObjectsCreated) in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 111 at Ice.Core.RptBase.ReportDatabaseBuilder.XMLClose() in C:\_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDatabaseBuilder.cs:line 93 at Ice.Core.RptTaskBase 1.XMLClose() in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\RptBase\RptTaskBase.cs:line 229
at Erp.Internal.OM.SalesOrderAck.RunProcess(Int64 instanceTaskNum, String outputFileName) in C:_Releases\ERP\UD10.2.600.12\Source\Server\Internal\OM\SalesOrderAck\SalesOrderAck.cs:line 619
at Ice.Core.TaskBase`1.StartProcess(Int64 instanceTaskNum, String outputFileName) in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskBase.cs:line 83
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in C:_Releases\ICE\UD10.2.600.12FW\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 117
at Ice.Hosting.TaskCaller.ExecuteTask() in C:_Releases\ICE\UD10.2.600.12FW\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 59
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 63
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in C:_Releases\ICE\UD10.2.600.12FW\Source\Server\Services\Lib\RunTask\RunTask.cs:line 452

1 Like

Mr. @MinhGiangg - Sadly you should NEVER use the Sync Dataset for standard Epicor Reports.

I use it for Custom reports and it typically works and saves a bunch of time.

However, it has been my experience that the Sync function will pollute an Epicor Standard report to where you will not be able to run it.

I would suggest restoring your backup (hopefully you have one) or grab the RDL’s and RDD from Pilot and bring them into Live. Unless you are working in Pilot - then do the same - but opposite :slight_smile:
DaveO

5 Likes

I learned very early on from my friend @DaveOlender to not touch the forbidden fruit - Sync Dataset. At least not in a standard report. It usually just completely nukes the report.

4 Likes

While I can’t offer any assistance with the report currently not working other than suggesting you restore a backup, for future reference when editing Epicor forms, you would do the following after changing the RDD.

  1. Open the report in SSRS and right click on the dataset with the field you are hoping to add / remove.

  2. Click the little function button next to Query to open the following. It’ll look horrendous because SSRS is… interesting with how it presents code. If the presentation is too horrendous to look through, you can always open it in Visual Studio for actual formatting.



    After a tiny bit of formatting for some human readability:

  3. Add or remove your selected information. As some examples, if you exclude RevisionNum from OrderDtl on the RDD, then you can simply delete “T2.RevisionNum” from the top portion of the query. If you were to include OpenRelease from OrderRel on the RDD, then you would add T3.OpenRelease to the top of the query as you are adding a field from OrderRel which is saved as T3. Hopefully this makes sense.

  4. After making your changes, click OK on both the Query and the Dataset Properties screens before making any other changes. This will ensure your query changes are saved to the form. If you don’t, changes may fail to save.

  5. Re-open the Dataset Properties screen. Open the fields menu. Remove the field that you have now excluded, or add it by selecting add new query field.

  6. Save and upload updated report to Epicor after making sure you have deleted any textboxes in the report referencing your removed fields. Alternatively, make sure you updated textboxes to include your newly added fields.

Hopefully this guide is simple enough to help with any future basic changes you may need to make. If you get good at building RDDs and making reports in SSRS, you may find it easier to build reports from scratch instead of making changes to default Epicor reports. Some of them seem to have been built in very odd ways that make them hard to work with.

Also, as others have already said - Sync Dataset is not your friend, sadly! It really only works well for simple BAQ reports that you have made yourself, and seemingly either breaks or slows down more advanced reports.

3 Likes

Thank you so much for the detailed instructions!! :smiley:

1 Like