Issue Bringing in UD Table to Custom SSRS Report

Hi All,

I’m new to working with Epicor (Kinetic 11) and SSRS Report Builder. I’ve been able to customize the Job Traveler but have hit a wall with bringing in some fields that are in a user-defined table. I added the table in data definitions and created the relationships exactly as it was done for a Crystals Report version of this same custom report (created before I came along). I have tried multiple ways to bring the fields needed into Report Builder but have been unsuccessful. I was able to add a field from a table that was part of the out of the box Traveler dataset though. I’ve worked with a few people that have more experience than me in this and they are stumped as well. I’ve opened a ticket with Epicare and they have escalated the ticket but still have not been able to assist. Any pointers in how to solve this would be amazing. Thank you!

It’s a pain in the a…

I’ll see if I can find you a post so I don’t have to explain it :rofl:

Hahaha. Thank you.

I can’t find what I want, but if you’ve already got the rdd fixed up, open up the Traveler.rdl file in report
builder.

In the tree on the left, right click on Datasets->JobHead, select Datset Properties.

Stay on the Query screen, and click the little Fx button by the Query Expr window.

Inside there will be text like the following:

="SELECT T1.DueDate,T1.IUM,T1.ProdQty,T1.ReqDueDate,T1.StartDate,T1.Calc_MultiJobParts,T1.Calc_OrderQty,T1.Calc_StockQty, T2.AssemblySeq,T2.BomSequence,T2.Company,T2.[Description],T2.DrawNum,T2.IUM as JobAsmbl_IUM,T2.JobNum,T2.OverRunQty,T2.PartNum,T2.PullQty,T2.RequiredQty,T2.RevisionNum,T2.Calc_BCAsmSeq,T2.Calc_BCJobNum,T2.Calc_BCPartNum,T2.Calc_BCRevNum,T2.Calc_comment, T2.Calc_AttributeSetShortDescription, T3.CommentText,T3.Instructions,T3.DaysOut,T3.DueDate as JobOper_DueDate,T3.EstProdHours,T3.EstSetHours,T3.Machines,T3.OpCode,T3.OpDesc,T3.OprSeq,T3.PrimaryProdOpDtl,T3.PrimarySetupOpDtl,T3.ProdStandard,T3.RunQty,T3.StartDate as JobOper_StartDate,T3.StdFormat,T3.Calc_BCOpCode,T3.Calc_BCOprSeq,T3.Calc_DispStatus,T3.Calc_OPText,T3.Calc_OPType,T3.Calc_PurPoint,T3.Calc_VendorId,T3.Calc_VendorName,T3.OpCode_OpDesc, T4.CapabilityID,T4.ConcurrentCapacity,T4.DailyProdRate,T4.OpDtlSeq,T4.ProdCrewSize,T4.ResourceGrpID,T4.ResourceID,T4.SetUpCrewSize,T4.SetupOrProd,T4.Calc_BCCapabilityID,T4.Calc_BCResGrpID,T4.Calc_BCResourceID,T4.Calc_CapbltyDesc,T4.Calc_ResDesc,T4.Calc_ResGrpDesc,T4.Calc_SchedResDesc,T4.Calc_SchedResGrpDesc,T4.Calc_SchedResGrpID,T4.Calc_SchedResID, T5.ResourceGrpID as ResourceTimeUsed_ResourceGrpID,T5.ResourceID as ResourceTimeUsed_ResourceID,T5.WhatIf
 FROM JobHead_" + Parameters!TableGuid.Value + " T1
 LEFT OUTER JOIN JobAsmbl_" + Parameters!TableGuid.Value + " T2
  ON T1.Company = T2.Company AND T1.JobNum = T2.JobNum
 LEFT OUTER JOIN JobOper_" + Parameters!TableGuid.Value + " T3
  ON T2.Company = T3.Company AND T2.JobNum = T3.JobNum AND T2.AssemblySeq = T3.AssemblySeq
 LEFT OUTER JOIN JobOpDtl_" + Parameters!TableGuid.Value + " T4
  ON T3.Company = T4.Company AND T3.JobNum = T4.JobNum AND T3.AssemblySeq = T4.AssemblySeq AND T3.OprSeq = T4.OprSeq
 LEFT OUTER JOIN ResourceTimeUsed_" + Parameters!TableGuid.Value + " T5
  ON T4.Company = T5.Company AND T4.JobNum = T5.JobNum AND T4.AssemblySeq = T5.AssemblySeq AND T4.OprSeq = T5.OprSeq AND T4.OpDtlSeq = T5.OpDtlSeq"

You’ll have to add your joins at the bottom, and fields to the select.
Follow the pattern.

After that is done, in the tree to the left under query, is fields.
Add your fields there, the field name is what you want to call it, the field source
is what it is called in the query.

1 Like

Thank you. I did try that a few times with no luck.

Well maybe something is wrong with your rdd.

Let’s see how you set up the link, and the query text.

1 Like

Thank you for the very detailed response. I have taken all the steps mentioned. I’m working with Epicor trying to get this to work as well. Still no luck. I keep thinking I’m closer but no avail. I believe the problem lies in the syntax in SSRS that I have. The problem is the Part_UD table can only be joined to Part table by SysRowID and ForeignSysRowID. When I run the report and grab the GUID from System Monitor and search it in SSMS, I see that the data is there but it’s not populating on the report. Below is my syntax. Please be kind, I’m very new to Epicor and SSRS. Thank you.

=“SELECT T1.DueDate,T1.IUM,T1.ProdQty,T1.ReqDueDate,T1.StartDate,T1.Calc_MultiJobParts,T1.Calc_OrderQty,T1.Calc_StockQty, T2.AssemblySeq,T2.BomSequence,T2.Company,T2.[Description],T2.DrawNum,T2.IUM as JobAsmbl_IUM,T2.JobNum,T2.OverRunQty,T2.PartNum,T2.PullQty,T2.RequiredQty,T2.RevisionNum,T2.Calc_BCAsmSeq,T2.Calc_BCJobNum,T2.Calc_BCPartNum,T2.Calc_BCRevNum,T2.Calc_comment, T2.Calc_AttributeSetShortDescription, T3.CommentText,T3.Instructions,T3.DaysOut,T3.DueDate as JobOper_DueDate,T3.EstProdHours,T3.EstSetHours,T3.Machines,T3.OpCode,T3.OpDesc,T3.OprSeq,T3.PrimaryProdOpDtl,T3.PrimarySetupOpDtl,T3.ProdStandard,T3.RunQty,T3.StartDate as JobOper_StartDate,T3.StdFormat,T3.Calc_BCOpCode,T3.Calc_BCOprSeq,T3.Calc_DispStatus,T3.Calc_OPText,T3.Calc_OPType,T3.Calc_PurPoint,T3.Calc_VendorId,T3.Calc_VendorName,T3.OpCode_OpDesc, T4.CapabilityID,T4.ConcurrentCapacity,T4.DailyProdRate,T4.OpDtlSeq,T4.ProdCrewSize,T4.ResourceGrpID,T4.ResourceID,T4.SetUpCrewSize,T4.SetupOrProd,T4.Calc_BCCapabilityID,T4.Calc_BCResGrpID,T4.Calc_BCResourceID,T4.Calc_CapbltyDesc,T4.Calc_ResDesc,T4.Calc_ResGrpDesc,T4.Calc_SchedResDesc,T4.Calc_SchedResGrpDesc,T4.Calc_SchedResGrpID,T4.Calc_SchedResID, T5.ResourceGrpID as ResourceTimeUsed_ResourceGrpID,T5.ResourceID as ResourceTimeUsed_ResourceID,T5.WhatIf, T1.ShortChar01, T6.PartNum, T6.PartWeight1_c, T6.PartWeight2_c
FROM JobHead_” + Parameters!TableGuid.Value + " T1
LEFT OUTER JOIN JobAsmbl_" + Parameters!TableGuid.Value + " T2
ON T1.Company = T2.Company AND T1.JobNum = T2.JobNum
LEFT OUTER JOIN JobOper_" + Parameters!TableGuid.Value + " T3
ON T2.Company = T3.Company AND T2.JobNum = T3.JobNum AND T2.AssemblySeq = T3.AssemblySeq
LEFT OUTER JOIN JobOpDtl_" + Parameters!TableGuid.Value + " T4
ON T3.Company = T4.Company AND T3.JobNum = T4.JobNum AND T3.AssemblySeq = T4.AssemblySeq AND T3.OprSeq = T4.OprSeq
LEFT OUTER JOIN ResourceTimeUsed_" + Parameters!TableGuid.Value + " T5
ON T4.Company = T5.Company AND T4.JobNum = T5.JobNum AND T4.AssemblySeq = T5.AssemblySeq AND T4.OprSeq = T5.OprSeq AND T4.OpDtlSeq = T5.OpDtlSeq
LEFT OUTER JOIN Part_" + Parameters!TableGuid.Value + " T6
ON T5.Company = T6.Company"

I have tried to add the relationship with the Sys IDs I’ve mentioned as well but that causes the report to error out.

I have added the PartWeight1_c and PartWeight2_c fields in Dataset Properties as well. Those are the fields not showing btw.

Thanks again!!

Here is your issue. You do not need to bring in Part_UD.
Your UD fields will be brought in via part.

Check the exclusions list, and remove all the part_ud stuff.

1 Like

Another useful trick I like to do is run the report and set the archive period for a day or week, then look at the tables in the Report temp tables to confirm that the RDD is returning data, once I do that I then ensure that the query in the report data sets has the fields in the query and the fields are mapped.

Then you go off and fight with the report builder for a couple of hours and tada! It’s fixed. :slight_smile:

2 Likes

I started with that option and it wouldn’t come over. Also, all exclusions have been checked over as well. I also set the archive period to day.

Were the fields listed there in the exclusions?

If these fields are new, you will have to do a regen of the data model.

It was the syntax like I originally thought. Definitely wasn’t an easy one to figure out but I did. Thank you so much for the input. :heart_hands:

And because it was hard, you will retain that knowledge :rofl: :sob:

2 Likes

Truth!!