Looking For A Way To Pinpoint A Specific User

Hey all! I’m trying to come up with a kind of messaging system in Epicor. I know there’s the Enterprise feature, but my company doesn’t want to foot the bill for that. So I would like to setup something using a UD table and BPMs. To start, I’m basically looking for the following…

  1. A way to tell if someone is logged in to Epicor.
  2. A way to pinpoint their machine to popup a message for only them.

Has anyone out there done something like this before? Does anyone even think it’s possible? Thank you all in advance for any help you can offer!

I am not sure this direct approach is feasible, however you could take more of a ‘client polling’ approach…

The business object method call Ice.ReportMonitor.GetRowsKeepIdleTime fires continuously when the client is running.
You could add a post process method directive on this mehtod that checks to see if there is a message pending for this user and use InfoMessage.Publish(…) to push the message to the user.
Then you could use a UD table to store pending messages.

3 Likes

Thanks @adaniell for the advice. Below is what I’m hoping to achieve…

I will be using a UD table to store messages, and I’ll set up a method directive on ReportMonitor, under GetRowsKeepIdleTime, that will look at that UD table for new messages. If a new message is available for the user, it will show the message and then either mark it as READ or remove it from the UD table.

Originally, I had planned to create a method directive for my UD table that triggered when a new row was created, and then look in the Ice.SysActivityLog table to see if the user was logged in. I just couldn’t figure out how to direct the message to the users machine only. But I think the process above will work better. I’ll let everyone know what happens. Thanks again!