Efx Report Qty GetNew widget reports "An active Labor Header record is required"

Hey all,

I had this working in 2022.1.10 on a single-site license. We set up a new environment on a different server in 2022.1.13 and bought a multi-site license.

In a function, I’m having an issue with the report quantity widget, just getting a new report qty dataset:


I get the error: “An active Labor Header record is required.”

Detailed error report below.

I’ve checked the company and site configurations and can’t see any glaring differences. The employee is set up the same.

Here’s the trace result from running Report Qty from MES:

    <parameter name="empID" type="System.String"><![CDATA[arcshop]]></parameter>
    <parameter name="DtlLaborHedSeq" type="System.Int32"><![CDATA[-1]]></parameter>
    <parameter name="DtlLaborDtlSeq" type="System.Int32"><![CDATA[-1]]></parameter>
    <parameter name="CallContext" type="Ice.Bpm.Context.ContextDataSet">

I tried pulling in a new report quantity widget inside the function but get the same error.

What am I not seeing?



Business Layer Exception

An active Labor Header record is required.

Exception caught in: Epicor.Ice.Lib.RestClient

Error Detail

Correlation ID: ea09c3f0-3218-4ccf-aff8-d5b908718b0a
Description: An active Labor Header record is required.
Program: Erp.Services.BO.ReportQty.dll
Method: GetNewReportQty
Line Number: 423
Column Number: 13

Client Stack Trace

at Ice.Lib.RestClient.ResilientCaller.d__10.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Ice.Lib.RestClient.ResilientCaller.d__6.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Ice.Lib.RestClient.AsyncToSyncHelper.DoSynchronous[TResult](Task1 task) at Ice.Lib.RestClient.RestClient.Ice.Lib.RestClient.IRestFunctionCaller.Post(String library, String function, RestContent content, Boolean published, IEnumerable1 headers)
at Script.applyCompletedBilletsFunction()
at Script.btnCompleteBillets_Click(Object sender, EventArgs args)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at Infragistics.Win.Misc.UltraButtonBase.OnClick(EventArgs e)
at Ice.Lib.Framework.EpiButton.OnClick(EventArgs e)
at Infragistics.Win.Misc.UltraButton.OnMouseUp(MouseEventArgs e)
at Ice.Lib.Framework.EpiButton.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

You need to have an active Labor Head Record for the employee archshop.
I think you can have a 0 for Labor Dtl.

You’ll need to clock in arcshop first, and get the labor header number.

Okay, I had an open clock-in for the employee I’m using for these jobs on the old environment but hadn’t clocked it in on the new one.

I added a check for a clocked in employee and a clock-in widget if it wasn’t.

If I use a -1 for the labor head record in the get new record widget I don’t need the labor head record.