BOReader & callContextClient

I need to exclude ‘completed’ items from a dropdown so the end user does not unnecessarily select an item that is not valid any longer. But this filter is only needed when NOT using certain UI’s.
The Dropdown is being populated by calling the BOReader.GetList, however the BO it uses does not have any callContextClient data other than CurrentUserID.
In this past I have used a BPM to evalulate the context of such a call (Application, Customization, user, etc) and then append additional filters to the ‘whereClause.’ But when the BOReader is used for this I cannot find a way to determine the client context.
Is there a way to accomplish this, am I missing something?
I could probably do it with a customization, but I would prefer a BPM.

I wonder if its just not populated and if you can access it by using the object in BPM:

CallContext.Current

Thanks @hkeric.wci, but I am not familiar with how to interact with this. I did some exploring using the ‘context-aware code completion’ but I don’t understand the data I am working with.
Can you explain how I could use this?

Thats not the one then… Maybe

image
image

I am just going off on the assumption for a moment, what if the temp-table just isn’t populated… just like ttXYZ where the ds might have the actual info.

I tried this.BpmContext.ClientInfo.AssemblyName but that comes up null… maybe the client is completely out of scope when BOReader is called?

Raise a support case. CallContext information should be available when calling the BOReader.

1 Like

Thanks @Rich!
I tested this in 10.0 vs 10.2.600.7 and in 10.0 I get all the ClientContext when hitting Operation Drop down in Time & Expense Entry, but only the CurrentUserId, CurrentCompany and CurrentPlant in 10.2.600.7
So glad I’m not crazy.
I am raising a case to Epicor Support.

If anyone else has BPM’s that depend on Methods called by the BOReader, looking at ClientType, ProcessId, AssemblyName, they do not work.