Looking for guidance if a report can be generated to review Supplier Performance on delivered material
I just created something like this. You will have to update the BAQ on the Vendor.VendorID table criteria. I used paste/insert to pate in a whole list of applicable vendor IDs. The BAQ shows vendor (supplier) performance over a date range. The BAQ has lots of extra fields because it is used in a BAQ Report.
BAQ:
VEndPerfDtlFilterUSD.baq (49.9 KB)
BAQ Report:
VendPerfDtlUSD.xml (2.4 KB)
Note that the Parameters in the BAQ are useless right now. I just forgot to remove them. If you run the BAQ through the BAQ report, then the parameters in the BAQ report should override the BAQ.
Having said all that, there is also a built-in Supplier Performance Report. Executive Analysis > ShopVision > Performance. I could never get anything useful out of mine because it relies on something that doesn’t work in Epicor for us.
Unfortunately, my companies IT policy blocks my viewing this. Can you post a pdf to view? Here is how I want to score them.
Supplier Performance Report.pdf (648.9 KB)
/*
* Disclaimer!!!
* This is not a real query being executed, but a simplified version for general vision.
* Executing it with any other tool may produce a different result.
*/
select
[SubQuery1].[Calculated_Average] as [Calculated_Average],
[SubQuery1].[Calculated_CountReceiptsLate] as [Calculated_CountReceiptsLate],
[SubQuery1].[Calculated_LineTotal] as [Calculated_LineTotal],
[SubQuery1].[Calculated_TotalMisc] as [Calculated_TotalMisc],
[SubQuery1].[PORel_DueDate] as [PORel_DueDate],
[SubQuery1].[RcvDtl_DocVendorUnitCost] as [RcvDtl_DocVendorUnitCost],
[SubQuery1].[RcvDtl_OurUnitCost] as [RcvDtl_OurUnitCost],
[SubQuery1].[RcvDtl_PackLine] as [RcvDtl_PackLine],
[SubQuery1].[RcvDtl_PackSlip] as [RcvDtl_PackSlip],
[SubQuery1].[RcvDtl_PartNum] as [RcvDtl_PartNum],
[SubQuery1].[RcvDtl_POLine] as [RcvDtl_POLine],
[SubQuery1].[RcvDtl_PONum] as [RcvDtl_PONum],
[SubQuery1].[RcvDtl_PORelNum] as [RcvDtl_PORelNum],
[SubQuery1].[RcvDtl_PUM] as [RcvDtl_PUM],
[SubQuery1].[RcvDtl_ReceiptDate] as [RcvDtl_ReceiptDate],
[SubQuery1].[RcvDtl_VendorQty] as [RcvDtl_VendorQty],
[SubQuery1].[Vendor_Name] as [Vendor_Name],
[SubQuery1].[Vendor_VendorID] as [Vendor_VendorID],
[SubQuery1].[Vendor_VendorNum] as [Vendor_VendorNum],
[SubQuery1].[VendorPP_City] as [VendorPP_City],
[SubQuery1].[VendorPP_Name] as [VendorPP_Name],
[SubQuery1].[VendorPP_State] as [VendorPP_State],
[SubQuery1].[VendorPP_VendorNum] as [VendorPP_VendorNum],
(SubQuery1.Calculated_LineTotal+ SubQuery1.Calculated_TotalMisc) as [Calculated_GrandTotals]
from (select
[Vendor].[Name] as [Vendor_Name],
[VendorPP].[Name] as [VendorPP_Name],
[VendorPP].[City] as [VendorPP_City],
[VendorPP].[State] as [VendorPP_State],
[PORel].[DueDate] as [PORel_DueDate],
[RcvDtl].[ReceiptDate] as [RcvDtl_ReceiptDate],
[RcvDtl].[PartNum] as [RcvDtl_PartNum],
[RcvDtl].[PackSlip] as [RcvDtl_PackSlip],
[RcvDtl].[VendorQty] as [RcvDtl_VendorQty],
[RcvDtl].[PONum] as [RcvDtl_PONum],
[RcvDtl].[POLine] as [RcvDtl_POLine],
[RcvDtl].[PackLine] as [RcvDtl_PackLine],
[RcvDtl].[PORelNum] as [RcvDtl_PORelNum],
(convert(int, datediff(day,PORel.DueDate,RcvDtl.ReceiptDate) )) as [Calculated_CountReceiptsLate],
(datediff(day,PORel.DueDate,RcvDtl.ReceiptDate)) as [Calculated_Average],
[Vendor].[VendorID] as [Vendor_VendorID],
[Vendor].[VendorNum] as [Vendor_VendorNum],
[VendorPP].[VendorNum] as [VendorPP_VendorNum],
[RcvDtl].[DocVendorUnitCost] as [RcvDtl_DocVendorUnitCost],
[RcvDtl].[OurUnitCost] as [RcvDtl_OurUnitCost],
[RcvDtl].[PUM] as [RcvDtl_PUM],
((RcvDtl.VendorQty * RcvDtl.DocVendorUnitCost)) as [Calculated_LineTotal],
(sum(isnull(APInvMsc.DocMiscAmt,0))) as [Calculated_TotalMisc]
from Erp.RcvDtl as RcvDtl
inner join Erp.PORel as PORel on
RcvDtl.Company = PORel.Company
and RcvDtl.PONum = PORel.PONum
and RcvDtl.POLine = PORel.POLine
and RcvDtl.PORelNum = PORel.PORelNum
inner join Erp.PODetail as PODetail on
PORel.Company = PODetail.Company
and PORel.PONum = PODetail.PONUM
and PORel.POLine = PODetail.POLine
inner join Erp.POHeader as POHeader on
PODetail.Company = POHeader.Company
and PODetail.PONUM = POHeader.PONum
inner join Erp.Vendor as Vendor on
POHeader.Company = Vendor.Company
and POHeader.VendorNum = Vendor.VendorNum
and ( Vendor.VendorID in ('YOURVENDORIDSHERE') )
inner join Erp.VendorPP as VendorPP on
POHeader.Company = VendorPP.Company
and POHeader.VendorNum = VendorPP.VendorNum
and POHeader.PurPoint = VendorPP.PurPoint
left outer join Erp.APInvMsc as APInvMsc on
POHeader.Company = APInvMsc.Company
and POHeader.PONum = APInvMsc.PONum
inner join Erp.RcvHead as RcvHead on
RcvDtl.Company = RcvHead.Company
and RcvDtl.VendorNum = RcvHead.VendorNum
and RcvDtl.PurPoint = RcvHead.PurPoint
and RcvDtl.PackSlip = RcvHead.PackSlip
group by [Vendor].[Name],
[VendorPP].[Name],
[VendorPP].[City],
[VendorPP].[State],
[PORel].[DueDate],
[RcvDtl].[ReceiptDate],
[RcvDtl].[PartNum],
[RcvDtl].[PackSlip],
[RcvDtl].[VendorQty],
[RcvDtl].[PONum],
[RcvDtl].[POLine],
[RcvDtl].[PackLine],
[RcvDtl].[PORelNum],
(convert(int, datediff(day,PORel.DueDate,RcvDtl.ReceiptDate) )),
(datediff(day,PORel.DueDate,RcvDtl.ReceiptDate)),
[Vendor].[VendorID],
[Vendor].[VendorNum],
[VendorPP].[VendorNum],
[RcvDtl].[DocVendorUnitCost],
[RcvDtl].[OurUnitCost],
[RcvDtl].[PUM],
((RcvDtl.VendorQty * RcvDtl.DocVendorUnitCost))) as SubQuery1
The report you want is certainly possible. I say build it up in a BAQ first. Once you have the BAQ spitting out the right data, then making a BAQ Report out of it is easy. But make sure to get your BAQ as close as possible first.
Truer words have never been spoken