Cannot change part number on inventory transfer without clearing screen

Yep, this was a huge bummer at my last job. We had an otherwise very successful upgrade to 10.2.700, but this got missed in the testing, and it left a large faction of the warehouse feeling like they were much worse off after the upgrade…

1 Like

I’m a bit confused - did they fix this prior to 10.2.700.9?

We just upgraded from 9.05.702a to 10.2.700.9 and I can see that the part number box and button are now greyed-out after doing a transfer so we can’t just key in or search for a new part. But we can click the new button, enter a new part, transfer it and it saves in the tree as well. If we want to do another transfer of the same part, we don’t even have to hit “new”, we just key in new quantities and bins and hit “transfer” again and it adds the transaction to the existing part. If we want to do another transfer for a part that we already did previously, just select it in the tree and do another transfer. Basically it sounds like its now working “as its supposed to”, aside from the change from E9 that we can no longer key in a different part number after completing a transaction (we have to use the “new” button). But aside from that small difference it actually seems to work pretty well.

Interesting, thanks for adding your own experience. Glad to see they allow the re-entering now. Interesting that if you would like to add a new part you have to use the new option, but at least it is working.

I’m pretty sure the part field is not cleared out, with the Kinetic UI in 2021.2… Just not the ‘classic modern’ UI. At least that’s one step back, and finally a step forward again. :slight_smile:

1 Like

Did anyone find a customization as a workaround to this? I’m trying to override the ReadOnly property, but its not sticking. This is still an issue in Kinetic 2021.2.21

1 Like

Tried this but it gets complicated quickly. You could have a BPM that sets a CallContextBPMData field like Checkbox01 to true right after CommitTransfer is called. Then, a customization on the form (EpiViewNotification - Initialize) that will clear the form if that CallContextBPMData field is true. The issue is Epicor is starting a new transaction right after CommitTransfer with GetTransferRecord. So if you clear the form/dataset it will break that.

Why not just tell the users to clear the form between transactions ? You could use keyboard shortcuts - I think default is CRTL+Q but you can assign a different key like F12 or something.

Add another textbox to your form called txtPartNum.
Use that one as your entry box for part number and add this code.

Have fun.

// **************************************************
// Custom code for InvTransferForm
// Created: 11/20/2022 10:48:53 PM
// **************************************************

extern alias Erp_Contracts_BO_InvTransfer;
extern alias Erp_Contracts_BO_PkgControlIDMaint;

using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.Adapters;
using Erp.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;

public class Script
{
	// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
	// Begin Wizard Added Module Level Variables **
	// End Wizard Added Module Level Variables **
	// Add Custom Module Level Variables Here **

	EpiTextBox ogTBPartNum;
	EpiButton  ogBtnTransfer;	

	public void InitializeCustomCode()
	{
		// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
		// Begin Wizard Added Variable Initialization
		// End Wizard Added Variable Initialization
		// Begin Wizard Added Custom Method Calls
		// End Wizard Added Custom Method Calls

		ogTBPartNum = (EpiTextBox)csm.GetNativeControlReference("8f54f627-4a40-4e54-8a2a-fe39fccf325f");
		ogBtnTransfer = (EpiButton)csm.GetNativeControlReference("54ab0f30-74d2-4a55-bddc-8845b56b77b1");

		ogBtnTransfer.Validated += new System.EventHandler(ogBtnTransfer_Validated);
		txtPartNum.TextChanged  += new System.EventHandler(txtPartNum_TextChanged);
		txtPartNum.Leave        += new System.EventHandler(txtPartNum_Leave);

	}

	public void DestroyCustomCode()
	{
		// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
		// Begin Wizard Added Object Disposal
		// End Wizard Added Object Disposal
		// Begin Custom Code Disposal
		// End Custom Code Disposal

		txtPartNum.TextChanged  -= new System.EventHandler(txtPartNum_TextChanged);
		txtPartNum.Leave        -= new System.EventHandler(txtPartNum_Leave);
		ogBtnTransfer.Validated -= new System.EventHandler(ogBtnTransfer_Validated);
	}

	private void txtPartNum_TextChanged(object sender, System.EventArgs args)
	{
		if(ogTBPartNum.ReadOnly == false)
		{
			try
			{
				ogTBPartNum.Text = txtPartNum.Text;
			}
			catch {}
		}
	}

	private void txtPartNum_Leave(object sender, System.EventArgs args)
	{
		if(ogTBPartNum.ReadOnly == false)
		{
			try
			{
				ogTBPartNum.Focus();
				SendKeys.Send("\t");				
			}
			catch {}
		}
	}

	private void ogBtnTransfer_Validated(object sender, System.EventArgs args)
	{
		oTrans.Clear();
		txtPartNum.Focus();
	}

}//END Script


1 Like

@klincecum Thanks.

I know that this is an old issue, and it has seen recent comments… thought I would test and close it out. I just tested in the Kinetic Browser based UI, and it appears that this is no longer an issue. The system leaves the part number editable (as it should) and you can adjust things easily. I did multiple tests on various parts. As can be seen in the screenshot, i changed parts multiple times:

2 Likes