Error on Show Message in Receipt.GetDtlPORelInfo post process BPM


On 10.2.600, when Epicor calls a post process on Receipt.GetDtlPORelInfo that contains a show message (either in custom code or widget) the message will show twice and then an error message will pop up saying,

The rest of the process will work as intended.
This occurs in 10.2.200 but there is no error message, just a duplicate of the first message.
Also this only occurs on the first release of a PO, any subsequent releases just display the message once.
Does anyone have a clue why this is?

I would need more details on how this BPM is structured. Do you have custom code?

Originally it was structured with custom code but I removed everthing while debugging until it was just the Start widget connected to a show message widget. The message continued to display twice followed by the above error.

Definitely report that then. Can you change it to pre or post?

Jason Woods

It is now reported. Regarding the pre or post, the process I need the message for needs to occur in a post process.

Is it possible to lookup the value needed in Pre-Processing?

I believe it is but the show message still causes the error.

Sorry, you have one post that says it is in Post Processing and another that says it is in Pre Processing. Whichever it is in, could you try it in the other?

I apologize, the project I am working on is a post process and this is where I first encountered the error. After your suggestion I then tested if I could replicate the error in a pre process (Start widget connected to a show message widget to keep it simple) and I did. To summarize, the error occurs in both pre and post so moving my project between the two isn’t an option. For the time being I have jury rigged a workaround that utilizes the post process without a show message (to avoid the error) and some code on a customization to display the message separately but it’s definitely not a long term solution.

Bummer… I suppose that we simply wait for Epicor then.

I looked into the issue some more and found that it was occurring because of some publish and subscribe code, specifically the last SubscribeToPublisher line.

	public void CreatePO_LineCommentsView( )
		baqdvPO_LineComments = new BAQDataView( "RctEntry_PO_LineComments_ETK" );
		oTrans.Add( "RctEntry_PO_LineComments_ETK_BAQ",  baqdvPO_LineComments );

		string pubBinding = "MultiKeySearch.PONum";
		IPublisher pub = oTrans.GetPublisher( pubBinding );

		if( pub == null )
			oTrans.PublishColumnChange( pubBinding, "pubPONum" );
			pub = oTrans.GetPublisher( pubBinding );

		if( pub != null ) 
			baqdvPO_LineComments.SubscribeToPublisher( pub.PublishName, "PODetail_PONUM" );

		pubBinding = "RcvDtl.POLine";
		IPublisher pub2 = oTrans.GetPublisher( pubBinding );

		if( pub2 == null )
			oTrans.PublishColumnChange( pubBinding, "pubPOLine" );
			pub2 = oTrans.GetPublisher( pubBinding );

		if( pub2 != null )
			baqdvPO_LineComments.SubscribeToPublisher( pub2.PublishName, "PODetail_POLine" );

I have verified that the dataview values are correct and that the code works as intended when a Show Message is not present in the BPM. As soon as a show message is placed in the release bpm it causes the message to run twice and then display the error above. Also it should be noted that, according to a trace, the bpm itself is not running twice.

Have you thought about removing the second subscribe and simply filtering the dataView?

What would filtering the dataview look like? I’m not sure exactly what you mean.

Here is instructions on the dataView.RowFilter:

baqdvPO_LineComments.dataView.RowFilter = "PODetail_POLine = " + myCurrentPOLine;

Alternatively, you may be able to use BAQ Markup for this…

Thank you for the documentation. I just tried this and it worked for the most part, it returned what I wanted it to and displayed the message without error. The only issue is that it doesn’t update when the line is changed, so POs with multiple lines don’t update like it did with the publish and subscribe. This code is for displaying comments from PODetail on receipt entry so having the dataview update on line update is important.

You will need to set the myCurrentPOLine value whenever it changes. and then reset the RowFilter.

I got the row filter working but I was still having some issues cleaning it up when I stumbled across this gem.

So I ended up going down this path, thanks to your great example!