Does anyone know if it’s possible to change the run out message that pops up when a user puts a runout part on an order (or PO).
I haven’t tried yet but I was thinking there must be a place to insert a BPM to intercept that message and change what it says. I want to do the same thing. I was hoping to display the comments that you can put in for a substitute part in the message as well. Did you try to do a trace on the business logic as it fires that message?
To figure this out, I would typically turn on tracing, and find out what business object gets called, and what it returns… then create a BPM around that (either as PRE or POST Processing, but most likely POST if you are trying to change the message).
I did this back in the olden days with the Exceeded Credit limit message that would pop up on sales orders after every change in a line item. I found that there was a specific BO that was called, and returned something. I found that I could hide the message after it was displayed the first time (setting a variable once it was displayed one time). this worked well, but it is no longer needed for the credit limit since Epicor fixed that, but you could use the same type of tech.
I appreciate the direction and plan on looking into it more this morning. I’ll return and post any additional information I find that others looking into something similar would find helpful.
Post Processing on → Erp.BO.SalesOrder.ChangePartNumMaster
cSubPartMessage = "The monkey was here.";
Post Processing on → Erp.BO.PO.PartStatusValidationMessages
QuestionString = "Woot!";
You can expand on it from there.
Kevin,
I apologize if I am going over some basics here I’m just not seeing what I would expect to see and it’s throwing me off.
I went through the trace log and found the cSubPartMessage field
but when I go into the post processing BPM Designer and select the set field widget I don’t see the field in any of the data tables. I assume it would be in OrderDtl thus the screen shot below but I actually checked each of the temp tables.
I see based on your code snippets that you seem to be using the custom code widget instead of the set field widget. Is that because of your familiarity with the custom code widget or is that the only way to access and modify that field?
Yes. Widgets are the spawn of Satan.
However, the widgets will work just fine.
You need to look for the parameters, not table fields.
Not sure what they are called off hand. Help guys?
Set Argument/Variable
Thank you!
For anyone else trying to modify this message I thought I would give a few of the lessons learned that I ran into.
Substitute Parts are weird. I think when the part is runout and there is a substitute part it runs through the processing once with the substitute part number and then displays the runout message and if the user selects no (to use the regular part) then it processes again with the runout part number. I’m saying this just based on what the results of my playing with the data are so I could be wrong. Even if it doesn’t do that, the partNum, ds.OrderDtl.PartNum, and the tt.OrderDtl.PartNum are all the substitute part number. I ended up using the IndexOf and Substring methods to determine the actual part number.
The intention behind the request was to access a custom end of life field that is on the part master so I actually needed access to the part number to linq to the part maser table.
The runout message is also triggers when entering a job number for a run out part as well as when a job material is runout. It’s not important to us but it might be to someone else modifying the runout messages. I also wouldn’t be surprised if it was also on part material and or quote material entry but didn’t spend the time to verify either of those.