Users accesing menu items / dashboard / reports

  • 26 January 2022
  • 5 replies
  • 584 views

We have some several custom dashboards and reports we would like to see if they are still being accessed.

Has anyone build a query or way to see this type of activity.

E10.2.400.26

Thank you 


5 replies

Userlevel 1

I’ve done this by putting in a standard routine in each customization that write data back to a UD table. Then you can write a dashboard to see who is calling each screen. Here is the routine I added and then you call it on the Form Load.


private void RecordEntry()
{
try
{
// Declare and Initialize EpiDataView Variables
// Declare and create an instance of the Adapter.
UD11Adapter UD11_adp = new UD11Adapter(this.oTrans);
UD11_adp.BOConnect();

EpiDataView CCClient_edv = (EpiDataView)oTrans.EpiDataViews["CallContextClientData"];

// Call Adapter method
bool result = UD11_adp.GetaNewUD11();

UD11_adp.UD11Data.UD11[0]["Key1"] = Convert.ToString(CCClient_edv.dataView[CCClient_edv.Row]["CustomizationID"]);

UD11_adp.UD11Data.UD11[0]["Key2"] = DateTime.Now.ToString("yyyyMMdd");
UD11_adp.UD11Data.UD11[0]["Key3"] = DateTime.Now.ToString("hh:mm:ss");
UD11_adp.UD11Data.UD11[0]["Key4"] = Convert.ToString(((Ice.Core.Session)oTrans.Session).UserID);
UD11_adp.UD11Data.UD11[0]["Key5"] = Convert.ToString(((Ice.Core.Session)oTrans.Session).EmployeeID);

UD11_adp.UD11Data.UD11[0]["Date01"] = DateTime.Now;
UD11_adp.UD11Data.UD11[0]["ShortChar01"] = Convert.ToString(CCClient_edv.dataView[CCClient_edv.Row]["AssemblyName"]);

UD11_adp.Update();

// Cleanup Adapter Reference
UD11_adp.Dispose();

} catch (System.Exception ex)
{
ExceptionBox.Show(ex);
}
}

Jim Rogers

Wild ERP, Inc.
 

We have done this before upgrading from E9 to E10.  We used a UD table to log information on which Menu items were ran and how many times.  It needed custom BPMs to write to the table any time menus were accessed and by whom.  Then, we created a dashboard to report all the information from that table.  So, if you have menu items for the things you are wanting to track, that would work.

Now, in E10, we created a BAQ to show when other BAQs have been run.  This helps us eliminate BAQs that haven’t been run in awhile.  This only checks when people have analyzed (Analyze button) the BAQ.

I haven’t looked at the BPMs in quite awhile, but I can affirm that these are possible.

We implemented something similar to track information such as  BAQ report, the user and the date when the report was run.

I created a Pre-processing BPM on the ReportMonitor.Update method which saves information to a UD table. 

 

The condition widget is used to make sure that a report was processed before saving the data to the UD table.

This is the condition I used:

The second line to match the field ttSysRptLst.LastAction to the “Process” value is used to save only one entry on the UD table. Without it the BPM will save two entries for every transaction.

The widgets to set the other values are all similar to this:

And finally the Custom Code widget has these instructions:

using(var UD19svc = Ice.Assemblies.ServiceRenderer.GetService<UD19SvcContract>(Db))
{
UD19Tableset ds = new UD19Tableset();
UD19svc.GetaNewUD19(ref ds);
ds.UD19[0].Key1 = new Ice.Lib.NextValue(Db).GetNextSequence("KeySeq").ToString();
ds.UD19[0].ShortChar01 = thisUserID;
ds.UD19[0].Character01 = thisRptDesc;
ds.UD19[0].Date01 = thisDate;
UD19svc.Update(ref ds);
}

On the Usings and References I included Ice.Contracts.BO.UDxx (where  xx is the number of the table) and Ice.Lib.NextValue (which is used to generate a unique Key for each record in UD).

 

Userlevel 2

Looks similar to what others have posted here, but I found the step-by-step instructions in this link perfect for setting up a BAQ to track which of our BAQs are being used:

https://www.gingerhelp.com/knowledgebase-epicor-erp/logging-baq-usage-with-a-bpm

 

Userlevel 1

We had 180 Crystal reports to deal with at our E10 upgrade and we used the old way - doing several audits asking people who’s using what. Then, the rule we used is - if you remove it and people don’t complain for 1-2 months then it’s fine. It does take some time and you need to be clear with people otherwise they’re going to tell you they need all of them.

Dragos

Reply