Can I get rid of pop-up messages for job links and ready to calculate on Order Entry? Also, does everyone create job links as part of the order entry process?

Hello All,

I have seen some threads for the Ready To Calculate Message on Order Entry like this one Order Entry Ready to Process Message . Has there been any developments on this “feature?” Is there any way to make that pop-up not pop up…?

Also, we frequently get the message about the order having make direct releases without a job link. Does anyone else get this? Is everyone creating job links as part of the sales order process? Is there any way to disable this pop-up?

Thanks in advance for any inputOrderJobLink ReadyToProcess . Attached are photos of the messages.

The “Order has make direct releases without” message i’m not sure about, we don’t get that one and have a mixed mode environment so I’m thinking that must have something to do with a setup param somewhere requiring jobs before an order is released? not sure. As for the Read To Process message unless you use tax connect, set it to default true in company config, remove from the screen via customization if you so choose and viola no more message.

Some of these messages are intrusive and it would be nice to hear if there are ways around them. I’ve never found those ways.

In answer to your specific question about the job links, we get around it by automating the Order Job Wizard process in a BPM on SalesOrder Update. Which we check is ready by using the Ready To Process flag, so we can’t turn that one off.

We do use a tax software that keys in on this field so we have to check it at some point.

Care to share that BPM code? @dhewi Also do you every worry about material or capacity constraints? How could the BPM handle those?

The Ready to Process popup can be suppressed via Company Configuration

image

Right, but I don’t necessarily want to default it because changing it from false to true activates our tax software which calculates and adds tax to the order.

There are many times where order entry leaves the order knowing that it is not checked. They are sick and tired of having to confirm that message.

I’ll see if I can dig it out tomorrow.

We don’t (currently) use any kind of capacity, but we have standard lead times (which are enforced at order entry) and users can see material stock as they enter orders too. There’s still a lot we can do to improve that area, I will admit, but it isn’t a serious problem.

The key is that the Order Job Wizard allows jobs to be created at a selected level of readiness anyway - you can create them but not engineer them or release them or schedule them, or you can do any or all of those. We default to everything but scheduling in the automation, but you don’t have to.

Bummer. Well there is a way to suppress that message with BPMs but I’m not sure how you would remind the users to eventually do it.

Some day I hope to have the understanding of business objects, how to trace something and re-build it via c#, adapters, etc. so that I can feel comfortable attempting something like this.

That’s hardcore. Hat off.
Call me callous, but I think I prefer telling my users they have to put up with the pop-up box.

Its often the Adapter that has the MessageBox wrapped… The BO’s are silent and will output messages usually to an out variable or throw an exception… So by not using the Adapter you can sometimes get around it… Now if Epicor calls Update() and that calls 10 other methods, then it becomes much more difficult =)

Agreed, I only do it when I have to like in fast paced Packout where a Popup blocking your Handheld as you try to rapid fire through labels was a No =) Instead I played an error.wav and showed the message but the error.wav screamed “stop scanning, pull up Handheld and look at screen I need you to push something”

Best method: Train users to deal with it.

1 Like

Yeah… @dhewi I told them that I would look into it, but maybe we should look into using the Order Job wizard to create job links before leaving the sales order, then they won’t see the pop up anymore.That would require a lot of training about job planning, etc. Unless I can harness @hasokeric 's amazing developer powers and figure out a trick, I think we are just stuck dealing with it.

Here’s the BPM code for automating the job creation anyway, in case that helps.

string e = "";
Erp.Tablesets.OrderJobWizTableset OrderJobWizDataSet;
Erp.Contracts.OrderJobWizSvcContract job = null;

job = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.OrderJobWizSvcContract>(Db);

using (var txScope = IceContext.CreateDefaultTransactionScope())
{
	var thisOrderHed = (from row in Db.OrderHed where row.Company == Session.CompanyID && row.OrderNum == orderNum select row).FirstOrDefault();
	if (thisOrderHed != null)
	{ 
		orderNum = thisOrderHed.OrderNum;
		var orderRows = (from orderrelRow in Db.OrderRel join partRow in Db.Part on new { orderrelRow.Company, orderrelRow.PartNum } equals new { partRow.Company, partRow.PartNum } where orderrelRow.Company == Session.CompanyID && orderrelRow.OrderNum == orderNum && orderrelRow.Make == true select new { orderrelRow.OrderNum, orderrelRow.OrderLine, orderrelRow.OrderRelNum, orderrelRow.PartNum, OrderQty = orderrelRow.OurReqQty } );
	
	foreach (var oRow in orderRows)
	{ 
		var jobRow = (from row in Db.JobProd where row.Company == Session.CompanyID && row.OrderNum == oRow.OrderNum && row.OrderLine == oRow.OrderLine && row.OrderRelNum == oRow.OrderRelNum select row).FirstOrDefault(); 
		
		if (jobRow == null)
		{
			e = "no job " + oRow.OrderNum.ToString() + "." + oRow.OrderLine.ToString();
			OrderJobWizDataSet = job.GetMatrix(oRow.OrderNum, oRow.OrderLine, 1);

			var JWJobOrderDtl = (from row in OrderJobWizDataSet.JWJobOrderDtl where row.Company == Session.CompanyID && row.OrderNum == oRow.OrderNum && row.OrderLine == oRow.OrderLine select row).FirstOrDefault();
			var orderRel = (from row in Db.OrderRel where row.Company == Session.CompanyID && row.OrderNum == oRow.OrderNum && row.OrderLine == oRow.OrderLine && row.OrderRelNum == oRow.OrderRelNum && row.ActionAhead_c == true select row).FirstOrDefault();
			
			if (JWJobOrderDtl != null)
			{
				JWJobOrderDtl.JobChkBox = true;
				JWJobOrderDtl.DetailChkBox = true;
				//JWJobOrderDtl.ReleaseChkBox = true;
				JWJobOrderDtl.ScheduleChkBox = true;
				JWJobOrderDtl.RowMod = "U";
			}

			job.ValidateJobs(ref OrderJobWizDataSet, out e);
			if (e.Length == 0)
			{
				job.CreateJobs(ref OrderJobWizDataSet, out e);
			}
			Db.Validate();
			
		}
		else
		{
			e = "job already exists: " + jobRow.JobNum;
		}
		
	}
	}
	try
	{
			txScope.Complete();
	}
	catch (Exception err)
	{
			Ice.Diagnostics.Log.WriteEntry("SalesOrder.MasterUpdate Method Post CreateOtherJob: " + err.Message);
	}
	if (e != string.Empty)
	{
			this.PublishInfoMessage(e,Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual,"",""); 
	}
}
1 Like

Any way I can use this but have the job be created with the order-line-release number (like in the planning workbench) and not just the next job number?

That’s what it does by default. I think that part is down to your company configuration, and then the Order Job Wizard follows whatever you’ve set.

1 Like

This is the setting for that I’m pretty sure.

image

1 Like

@dhewi @Banderson I should have known they would hide that in there. Thank you both.