Mark Pack slip as shipped - BPM

bpm
e10

(jayaprakash prabhakaran) #1

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);
}

}


(jayaprakash prabhakaran) #2

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


(Bart Elia) #3

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?


(jayaprakash prabhakaran) #4

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


(Joseph Moeller) #5

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.


(jayaprakash prabhakaran) #6

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


(Joseph Moeller) #7

@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.