Value Cannot Be Null (fromItem in BufferCopy.GetRowCopier)

Anyone ever seen something like this error? I have disabled all the BPMs I can think of and it still throws this error when trying to mark a shipment as Shipped. The shipment has already been freighted and is otherwise ready to be marked Shipped. It is a shipment that is linked to an order with a credit card payment… so I know that quite a bit goes on when I mark it shipped.

System.ArgumentNullException: Value cannot be null.
Parameter name: fromItem
at Epicor.Data.BufferCopy.GetRowCopier(Object fromItem, Object toItem, Boolean fullRowCopy) in C:_Releases\ICE\ICE3.2.300.40\Source\Shared\Framework\Epicor.ServiceModel\Data\BufferCopy.cs:line 416
at Epicor.Data.BufferCopy.CopyExceptFor(Object fromItem, Object toItem, IList1 exceptForList) in C:\_Releases\ICE\ICE3.2.300.40\Source\Shared\Framework\Epicor.ServiceModel\Data\BufferCopy.cs:line 262 at Epicor.Data.BufferCopy.CopyExceptFor[TTypeFrom,TTypeTo](TTypeFrom fromItem, TTypeTo toItem, String[] exceptForList) in C:\_Releases\ICE\ICE3.2.300.40\Source\Shared\Framework\Epicor.ServiceModel\Data\BufferCopy.cs:line 136 at Erp.Services.BO.CustShipSvc.PreserveCreditTran(List1 list_CreditTran) in C:_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShip.cs:line 32227
at Erp.Services.BO.CustShipSvc.ShipHeadAfterUpdate() in C:_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShip.cs:line 32116
at Erp.Services.BO.CustShipSvc.OnRowEvent(DataTableEventType type, String tableName, IceRow row) in C:_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShip.Designer.cs:line 699
at Ice.Services.Trace.TablesetProfilingCollector.DoRowEventTrace(String tableName, String methodName, Int32 rowCount, Action action) in C:_Releases\ICE\ICE3.2.300.40\Source\Framework\Epicor.Ice\Services\TablesetProfilingCollector.cs:line 146
at Ice.TablesetBound3.UpdateRow(IceDataContext dataContext, Int32 tableNum, IIceTable table, IceRow updatedRow, IceRow originalRow, IColumnUncensor uncensor, TablesetProfilingCollector parentTraceCollector) in C:\_Releases\ICE\ICE3.2.300.40\Source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 1300 at Ice.TablesetBound3.WriteTable(IceDataContext dataContext, Int32 tableIndex, IIceTable table, TablesetProfilingCollector parentTraceCollector) in C:_Releases\ICE\ICE3.2.300.40\Source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 974
at Ice.TablesetBound3.InnerUpdate[TUpdater](IceDataContext dataContext, TFullTableset tableset) in C:\_Releases\ICE\ICE3.2.300.40\Source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 866 at Erp.Services.BO.CustShipSvc.Update(CustShipTableset& ds) in C:\_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShip.Designer.cs:line 2998 at Erp.Services.BO.CustShipSvcFacade.Update(CustShipTableset& ds) in C:\_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShipSvcFacade.cs:line 6287 at Erp.Services.BO.CustShipSvc.UpdateForUpdateExt(Object serviceObject, CustShipTableset& workingTs) in C:\_Releases\ERP\UD10.2.300.40\Source\Server\Services\BO\CustShip\CustShip.Designer.cs:line 3102 at Ice.TablesetBound3.CallUpdate(Object serviceObject, TFullTableset& workingTs, BOUpdErrorTableset errors, IceRow originalParentRecord) in C:_Releases\ICE\ICE3.2.300.40\Source\Framework\Epicor.Ice\Services\TablesetBound.UpdateExt.cs:line 1333

I remember this specific Error from a Epicor KB Article and the only Resolution they had was

KB0122556

The packs had an issue related to credit card transactions.

The process that is trying to write out the error message to the credittran table was failing due to a null value.

As a workaround, the only way to process the pack slips is mark them as FALSE for credit card orders.

For more details can review the logs on their credit card provider to find what’s the null value specifically.

1 Like

This raises a few questions: Will the credit card transaction still process? And payment get applied to the invoice? Or does that have to be done manually?

It’s interesting that this is happening right now because one of my other fires I’ve been fighting seems to be pointing at some malfunction of the credit card processor… new invoices are somehow getting referenced to very old credit card transactions and they get hung up… maybe reusing a PNREF - which is supposed to be unique, I thought… I have an active ticket right now about that…

Just an update to a workaround we figured out. It was definitely a credit card issue. We were able to complete the sale on the Sales Order by clicking the Sale button there. The credit card processed correctly. Then when we went to ship the order, it didn’t try to do a credit card transaction and it just completed like it was supposed to. The downside was it generated two invoices for the order (an advanced payment and then a shipping invoice). But it seems to have tied itself up neatly. I’ll post back if I hear anything to the contrary. For the purposes of this post, I think I can mark this solved.