BPM modify Menu Item

Hello guys, I´m completely new to BPMs but was told that one should help me to solve my requirement, so if someone is available to provide some guidance it will be very appreciated.

there are specific menu items that need to be set as accessible only for security manager the last 3 days of the month, so no one but manager can use them and the first day accessible for everyone again.

can somebody help me with that?

Would process security help?
For any BPM, I recommend running a trace to see what the client is communicating to the server. With that information I know what BO/Methods are being run and potentially what filters I can use.

Hi Jason,

thank you for your reply, normally invoice entry is available for specific security group the entire month, but i want it to set the menu item accessible only for security manager 3 days before the end of the month.

Actually i did a trace log for that specific action but have no idea on what to do with it i´m completely new to bpm´smenu_item.xml (63.1 KB)

It might be easier to answer if we knew which menu options you are referring to. IE… There might be an easier way to resolve this.

HI Tim, thank you for your reply. here is an screenshot of the Menu Maintenance screen pointing the checkbox i´m trying to check using a BPM


I need to set that field to a “True” value the last 3 days of month and then, the first day of the month set it back to “False” value

Why not simply put a BPM on the Invoice program that disallows invoices from being entered or posted during those three days. Yes, they could get into the program, but it would essentially be disabled.
The method is “InvcGrp.GetNewInvcGrp”… it would be PRE Processing, and you would put a condition to check for the date range.
image

You can pop up a message:

1 Like

What would happen if the orders were ERS/Auto Invoice, wouldn’t that negate the purpose for preventing orders, or is it an apply date issue?

There are actually a host of issues with locking down processes for 3 days… That is actually one of my questions about this. Epicor itself doesn’t require any form of month-end lockdown, and most companies do NOT do this. We have customers that regularly do 10,000 line items in shipping per day, and cannot afford to put that on hold for 3 days to run month end…
That said… is the reason for the 3 day period to solve a problem that doesn’t need solved in Epicor?

2 Likes

Slap a BO on GenXData.GetList

Catch the whereClause where your Key 2= ‘Your Form Here’

Throw an exception


<tracePacket>
  <businessObject>Ice.Proxy.BO.GenXDataImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://NotMyIp/</appServerUri>
  <returnType>Ice.Tablesets.XXXDefListTableset</returnType>
  <localTime>03/02/2020 15:53:26:4884065 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="49" roundTrip="39" channel="7" bpm="0" other="3" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[Key2 = 'App.AccountBudgetEntry.AcctBudgetForm']]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

Fair warning - I cant guarantee this wont cause issue with other internal process that use that form.

hi all, thank you for all your responses and ideas. The company i work for runs an “end of month” process and they need to prevent employees to log invoices during the last 3 days of the month. Only Accounts payable manager should be able to do it during those 3 days.

One idea that I have implemented at larger companies:

  1. I setup a security group called “Can Post AP Invoices”
  2. created a BPM on the APInvoice Post Invoice Process (Pre processing) that checks to make sure that the user is in the “Can Post AP Invoices” group
  3. only assigned the AP Manager to that group.
    This allows all people in AP to access the AP Invoice program, enter invoices, print edit lists, etc, BUT nobody is allowed to post (which is also in the AP program) the invoices except for the manager. This allows the manager to setup a review procedure before each posting. At month end critical time, the manager could still allow groups to go through if necessary.
1 Like

How about Using DMT to update the Menu security. It could be run on a Scheduled task (Windows taks,not Epicor task) on the App server.

edit

I think All you’d need to set is the Disallow All field.

You might need to create new SecID’s so that ones shared for menu items aren’t adversely affected.