REST API BO.CashRecSvc.MassGenerateCashDtl (Cash Receipt Entry)

Good morning folks!
I have a traceroute of the process for creating Cash Receipt Entry.

Down the flow, the MassGenerateCashDtl method takes an input parameter of type Erp.BO.ARInvSelDataSet (which contains the selected invoices) as row items Erp.Tablesets.ARInv*Sel*Row, but I’m unsure where to get that data from. No where in the traceroute is that dataset/tableset retrieved, so I imagine that the client is creating them in the UI. There is a previous step that retrieves ALL the invoices CashRecGetInvoices, but the model Erp.Tablesets.ARInvc*Alloc*Row is slightly different in the properties present – so not sure if I can use that…?

Using the @josecgomez (and team) REST API library, I would normally obtain that object from a previous call, but since it’s not modeled in the trace log, I’m unsure how to model it (or do I have to do it property by property by hand)? Since the objects are JSON loosely typed, if I passed in the Erp.Tablesets.ARInvc*Alloc*Row items to the input parameter even though they differ, would this be an option?

Anyone have any thoughts?

Thanks in advance!

I’d suggest that you may need to trace what is happening if you create a group and then try the click the select group payments or try loading a group when you have the actions auto retrieve payments/invoices set. There may be other BOs firing at that time.

Yeah. I have the entire tracelog data and response stream from (start) LockARBatch → GetNewCashGrp → … → LeaveCashGrp (end)

There’s no ARInvSel anywhere in the log other than what’s passed into MassGenerateCashDtl.

There is a selectinvoices method that returns the ARInvSelDataSet. Perhaps you could use that as a starting point. Try using that in a function. I see you are on cloud so you don’t get the luxury of seeing how the C# is generated for the BPM/Function.

@Hally … do you know what Erp.BO contains that method you’re referring to?

It’s in the Erp.BO.CashRec BO

Hello, were you able to do this? I’m working on the same thing, but I can’t get this to work right.

Yes. I guess it depends on how you’re implementing. My deployment is a custom C# app … so I just created a dynamic object (that had the same properties of the ARInvSel object) and add it to a collection object. I then serialize the collection and used it as the parameter passed into the Erp.BO.CashRecSvc/MassGenerateCashDtl call.

Here are the properties I set…

invoice.Company = epicorInvoice.Company.Value;
invoice.InvoiceNum = epicorInvoice.InvoiceNum.Value;
invoice.DocInvoiceBal = epicorInvoice.DocInvoiceBal.Value;
invoice.SysRowID = epicorInvoice.SysRowID.Value;
invoice.Discount = epicorInvoice.Discount.Value;
invoice.TaxableWriteOff = epicorInvoice.TaxableWriteOff.Value;
invoice.WriteOff = epicorInvoice.WriteOff.Value;
invoice.WriteOffAmount = epicorInvoice.WriteOffAmount.Value;
invoice.WriteOffComment = epicorInvoice.WriteOffComment.Value;
invoice.AllocAmount = epicorInvoice.DocInvoiceBal.Value;
invoice.RowMod = "A";

Hope that helps. :+1: