Context menu error

Need some help from the gurus here on a context menu error in the Smart Client Kinetic UI.

On occasion our Sales & Customer service personnel will need to reprint a packing slip for a customer, so they go into Order Tracker, pull up the order then under Activity>Shipments on the PackID they right click open with Customer Shipment Tracker. When they do they get an error that says, “Menu ID Erp.UI.CustShipEntry is not valid for the current user”. I’m used to seeing an actual Menu ID show up in these errors not a UI ID, so I submitted a ticket to support. They said to give the Sales/Customer Service Group access to Customer Shipment Entry which is not an option because we don’t want them to have the ability to create shipments. The Sales/Customer Service Group has access to Customer Shipment Tracker directly from the CRM menu and doesn’t receive this error when they go there and manually enter the PackID, they only get it through trying to access Customer Shipment Tracker via the Context menu.

Has anyone else experienced this? If so, what did you do to correct it?

This error does not occur in Kinetic in the browser or Classic. Management is not wanting to go to the browser version yet so that is not an option to fix this.

TIA

Your profile indicates you’re using SaaS MT… if that is still true then there wouldn’t be anything you could do about it and you’d need to open a ticket to support.

If you’re not sure, see if you can find and open the program Context Menu Maintenance.

The problem is Context Menus only point to ONE instance of a menu.

But there are (3) Customer Shipment Trackers.

image

The Context Menu (in my system) is pointing at SRGO1020

SRGO1020 is the Customer Shipment Tracker found in Material Management > Shipping/Receiving… which your Sales & Customer Service group apparently can’t get to.

THEY have access to the Customer Shipment Tracker under Sales Management > CRM… which is Menu ID CRMG1180

One solution is to create a NEW Context Menu called “Customer Shipment Tracker (CRM)”… and point that one to Process ID CRMG1180. Then your CS team should be able to get through. You’ll just have to live with (2) Customer Shipment Tracker options in the context menu.

I can’t really explain this. Not sure what browser version you’re on… but if you’re looking at the newest 2024.1 version, they’ve added a new feature where menus will only show up ONCE, instead of (3) times in this case.
image

So, it will only show the menu a specific user has access to. I never really explored if that logic was being passed into the Context menus, too? So the context menu would automatically steer to the version they have access to? I’ll have to find out about that.

1 Like

We are a Public Government Cloud SaaS customer not SaaS MT.

I can access the Context Menu Maintenance, but the only thing I can find related to customer shipment tracker is this:

Our Sales/Customer Group along with all other groups has access to SRGO1020 (Security ID SEC507) as shown below so I don’t understand why they would get an error saying menu ID Erp.UI.CustomerShipmentEntry.

I don’t know either, and I’m even more stumped by how it can work properly in the Browser and Smart Client Classic but NOT work in Smart Client OE Browser. I’d stick with this is a bug and creating a ticket with Support.

2 Likes

So they have (menu security) that allows them to access that menu… but do they have access to all the parent menus where that Customer Shipment Tracker is?

image

Can they get into Material Management? Can they get into Shipping/Receiving?

If not, then, even though they have security to open Customer Shipment Tracker… they can’t get there.

1 Like

We did submit a ticket and they said to give users access to Customer Shipment Entry. IMO they don’t think it’s a bug.

Push back. Don’t accept their solution, escalate the ticket if they insist.

It is possible that this is a bug in the Seed data or in the alternate menu lookup code but lets see if you can update your configuration so the alternate menu lookup logic is not fully needed.

Initial Test:
As David has indicated, the context menu ID for Customer Shipment Tracker is SRGO1020. Go to the Security setup for that menu and add one of the Users that currently does not have access to the “Allowed Access” list. Save that change. Have that User logon after you have made the security change. Is that user now able to access Shipment Tracker?

If Yes, create a new Group for your Sales and Customer Service folks, add that group to each Sales and Customer Service User, and then on the Security record for SRGO1020, add that Group to the “Allowed Access” list - remove the User ID from your test (just to clean up).

Let us know how that goes.

The Alternate Menu ID lookup logic is a little involved and the error message displayed when the system is unable to find a valid Menu ID for the User and Menu Option, contains the text of the last string used in the search.

When you first logon, the Menu Tree is retrieved for the user and cached in Memory. The Context Menu Options are also resolved by merging any custom definitions with the base definition. When a Context Menu is selected, the system looks in the memory cache for that Menu ID and if it is not found, it starts the Alternate lookup process. The logic may have changed recently due to the Web UI differences but the first step should be to read the Menu record - from the Server - of the Menu specified in the Context Menu definition. That should be checked to see if the User has access even though it is not in their menu tree - this step is what we are attempting to use in the configuration above.

If the user does not have access to the defined Menu record, the “Program to Launch” defined in that Menu record is used to search the memory cached Menus to see if it exists in a Menu structure already retrieved - if found, that Menu record is used to satisfy the Context Menu request. If the Program to Launch cannot be found in the memory cached menus, the user is presented with the error message that includes the text from the Program to Launch search.

3 Likes

The security setup for SRGO1020 is already set to Allow Access to All User/Groups so the individual user ID is already in the Allow Access list.

What I don’t understand is why the Browser UI works but the SmartClient generates an error.

I think @Rich might be onto something here with the seeding data.

I suspect it is something to do with the process calling not the actual menu security.

When you put the form into developer mode (in classic) and you open the context menu you will get a popup like
image

You can go into Process Calling Maintenance and take a look and see if there is something wrong with it. Or you have a custom process calling entry that is configured for Erp.UI.SalesOrderTracker as the calling App that has the incorrect menuid

By default the standard Process calling setup for SRGO1020 has no value in the called from field which means “Use this menu for any apps that call the Customer Shipment tracker”

Here is an example of the standard
image

If you don’t have a custom Process calling then you may want to try creating a new custom one to override the standard trying blank in the Called from or adding in Erp.UI.SalesOrderTracker… By the way the case matters if I recall.

Not sure if you have access to Process Calling Maintenance on Cloud, but I can’t see why not.

Anyway I hope that helps…

1 Like

Okay - based on your results, I think this is a bug and I am working with Tech Support to move your EpicCare case for Dev review.

It might be related to the Seed Data or it might be related to changes made to accommodate the Web UI. The Menu item is configured to Open the Tracker DLL for the Smart Client but to use the Entry form in read-only mode for the Web UI. That difference may be causing issues with selecting the proper menu record to use for Smart Client launch.

1 Like