No overload for method 'GetRows'

Hello,

We are beginning our initial testing on a DEV server for an upgrade of E10.1.400.38 ro E10.2.300.3.
Our server is up and spinning with our converted database.
Customization Workbench is throwing a good amount of warnings and errors on our form customization.

“No overload for method ‘GetRows’ takes 19 arguments” seems to be a popular a popular error that we are getting when we are testing our code.

We are looking for a little guidance on figuring out what the root cause is

I will post a code example,

Any help is much appreciated

Thanks,
Joe M.

This means Epicor has added/removed a parameter for whatever method the error is occurring on.

1 Like
	public void GetPackingSlipData(string strBOLNum)
{
	CustShipDataSet CustShipDS;	
	CustShipDS = new CustShipDataSet();

	bool morePages;

	string strWhereClauseShipHead;
	strWhereClauseShipHead = "";

	strWhereClauseShipHead = "ShortChar01 = '" + strBOLNum + "'";

	try
	{
		CustShipDS = CustShipBO.GetRows(strWhereClauseShipHead, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", 0, 1, out morePages);
	}
	catch (BusinessObjectException ex)
	{
		if (ex.ToString().Contains("not found"))
		{
			MessageBox.Show(String.Format("Packing Slips not found."));
		}
		else
		{
			MessageBox.Show(String.Format("WARNING: Error on retrieving Packing Slips. \rn \rn '{0}'", 
				ex.ToString() ));
		}
		return;
	}

	if (CustShipDS.ShipHead.Count > 0)
	{
		for (int i = 0; i < CustShipDS.ShipHead.Count; i++)
		{
			tblAvailablePackingSlips.Rows.Add(CustShipDS.ShipHead[i].PackNum);
			tblSelectedPackingSlips.Rows.Add(CustShipDS.ShipHead[i].PackNum);
			oTrans.NotifyAll();
		}
	}

}

Thanks Mr. Koch…

Any hints on where to find out what the proper amount of parameters are?

-JM

I use Visual Studio to see what parameters it is expecting, I believe when in customization maint at the bottom where it shows you the errors it will show you the method signature.

Outside of Visual Studio… are there any other references?

I have a copy of VS 2017 installed on my machine, but need guidance on how to debug a form customization within. I have searched for some answers on this, but can;t seem to get it working yet. I will continue to try that angle. Any recommendations on easy instructions for basic debugging in VS?

Thanks,
JM

I prefer a decompiler, like ILSpy, (10.2.100 below, looks like 20 params)

public CustShipDataSet GetRows(string whereClauseShipHead, string whereClauseShipHeadAttch, string whereClauseCartonTrkDtl, string whereClauseShipDtl, string whereClauseShipDtlAttch, string whereClauseShipCOO, string whereClauseShipDtlPackaging, string whereClauseShipDtlTax, string whereClauseShipMisc, string whereClauseReplicatedPacks, string whereClauseShipUPS, string whereClauseLegalNumberGenerate, string whereClauseLegalNumGenOpts, string whereClauseSalesKitCompIssue, string whereClauseSelectedSerialNumbers, string whereClauseShipTaxSum, string whereClauseSNFormat, int pageSize, int absolutePage, out bool morePages)

1 Like

You could clean this up and maybe make it run faster by using GetList instead of GetRows. GetList returns a much smaller dataset and seems like you are only needing the PackNum from ShipHead.

This would also solve this problem in the future if Epicor chooses to add/remove parameters again.

5 Likes

Excellent point @tkoch. Get list wont return any UD fields. Also, you could possible trim it even more by using a BOReader and returning only the cols you want.

1 Like

How about using the Business Logic tester, isn’t that one of its uses?

@tkoch
Is this what you were referring to.

Hello Folks,

Thanks for all the responses here.

Before I posted I did try to add one blank ("") additional param to see if that would be an easy fix.
The compiler then threw:
No overload for method ‘GetRows’ takes 20 arguments
The original error was message from the untouched code was:
No overload for method ‘GetRows’ takes 19 arguments

So I thought I was chasing my tail on this.

It turned out that when I added two additional blank ("") params that the code passed.

CustShipDS = CustShipBO.GetRows(strWhereClauseShipHead, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, 0, 1, out morePages);

This new DEV box is for 10.2.300.3
Maybe it is 21 params now for GetRows in this version.

Thanks also for the advice on compiliers and alternate methods to use in place of GetRows

Most of our form customization were written by a third party and at this point I am only trying to get the existing forms to work on our DEV server for testing. So reworking the code would be a ‘nice to have’ down the road on our end. Plus I am only good at hunting and pecking these issues and cleaning them up, not up to speed on full blown programming.

-JM