Mark Pack slip as shipped - BPM

,

Hi Team,

I am trying to tick the pack slip “Ready To Invoice” via bpm on a UD06 table row added event. But pack slip gets deleted. any idea in handling this issue?

tried both Update() and UpdateMaster() methods …

Much appreciated for your insight on this issue…

using (Erp.Contracts.CustShipSvcContract ps = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.CustShipSvcContract>(this.Db))
{
int packnum =669;
int btcustnum = 334;
var psTs = ps.GetByID(packnum);
if(psTs != null)
{
Epicor.Customization.Bpm.InfoMessage.Publish( “into data set”);
psTs.ShipHead[0].ReadyToInvoice = true;
psTs.ShipHead[0].RowMod = “U”;
string temp1 = “”; bool temp2= false;
ps.UpdateMaster(ref psTs, false, true, false, false, true, true, true, packnum, btcustnum, out temp1, out temp1, out temp1, out temp1, out temp1, out temp1, out temp1, out temp1, out temp1, out temp1, out temp2, out temp2, out temp1, out temp1, out temp2, out temp2, out temp2, out temp2);
}

}

i tried the same as client side modification, it works without error. @Bart_Elia alert… probably bug?

Possibly. Reminder - BPM is server side code. Anything NOT in the client is a Tableset. - a dumb C# class / Basically a JSON blob. DataSets used in the client have a lot of gymnastics and defaulting done - it it ‘easier’ but you have to deal with the performance overhead.

For Tablesets we tried to keep them ‘opt in’ on initializations. Better performance especially in time sensitive areas where you only want to deal with a small subsets of tables. I am sure everyone can point to their favorite DataSet with 17 or more tables in it and you are yelling that you only care about two tables and understand my point.

The issues we have found is the server side application logic does not always have complete data checking and nice exceptions (You need to set ‘x’ when doing ‘y’). The same occurs when using BLTester or REST.

Submit it as an Integration Issue. Bonus points if you can replicate it in BLTester to speed Dev understanding.

Make Sense?

2 Likes

thanks @Bart_Elia for your valuable time and insight on this…

1 Like

Jayaprakash, how did you end up working around this? Move to client side or a server-side workaround? I’m hitting this exact issue in 10.1.500.

i ended up working in client side @josephmoeller. if you figure out any server side script, please let us know :slight_smile:

@prakash, as a proof of concept, I was able to perform the updates at the line level to transact inventory through the BOs, but the actual field updates for ready to invoice needed to be done via a Db.Validate(). I wasn’t comfortable with that as a solution, so I implemented this client side as well and kept the “should be working” code commented out in the BPM so that it can be implemented in a later version when the bug is resolved.

1 Like

I ran into this same issue in 10.2.300.15.

Setting ReadyToInvoice = true in an external .dll BPM and calling UpdateMaster made a mess.

My workaround was to create the pack in the BPM then send it to service connect to mark it as shipped.

1 Like

great…another way to win!!
i recommend you to read @josecgomez approach as well.

1 Like

4 posts were split to a new topic: Issues with REST, marking Pack Slip Ready to Invoice