I wanted to share something I’ve been experimenting with that I finally got working, modifying the browser tab text in Kinetic to show the current Site (Plant). This makes it much easier to tell which tab belongs to which site when you have multiple tabs open across environments.
I couldn’t find any other way to do this, so if there’s a better or more supported method I’d love to hear it. This solution is pieced together from various community posts, and I’ve learned so much from everyone here that I wanted to give back in case it helps someone else.
End User Behavior
To open the same form for multiple sites at once, Kinetic requires a new instance in a separate browser tab. This must be done by:
- Manually opening a bookmark, using a shortcut, or typing the URL directly into the address bar.
- You cannot use in-app links or buttons to launch another site instance, doing so reuses the current session context, which may not behave properly across sites.
How the Tab Text Is Set
The text shown in the browser tab comes from the Menu.MenuDesc field, returned by the following backend API methods. By modifying the value returned from these methods using BPMs, we can indirectly control what appears in the tab title.
Ice.BO.Menu.GetMenuForLicenseType
- This is called when Kinetic first loads (e.g., Home screen), or after a full refresh.
- It returns the full list of available menu items for the user.
- Updating this affects the menu item names shown on the Home screen.
- Some forms have multiple associated menu entries, usually due to how they’re configured in Menu Maintenance.
Post-Processing BPM
Create a Post-Processing BPM on Ice.BO.Menu.GetMenuForLicenseType with the following code:
// Loop through all menu items ending in 'Project Entry' and prefix the MenuDesc with the current plant.
foreach (var menuItem in result.Menu.Where(x => x["MenuDesc"].ToString().EndsWith("Project Entry")))
{
menuItem["MenuDesc"] = callContextClient.CurrentPlant + " - Project Entry";
}
This will update the menu item label on the Home screen and affect the browser tab title if the form was launched from the Home screen.
Ice.BO.Menu.GetMenuID
- This method is called when a specific form (like Project Entry) loads directly — not from the Home screen.
- It only returns the menu item for that form.
- Modifying it affects just the current form instance, not the Home screen menu.
Post-Processing BPM
Create a Post-Processing BPM on Ice.BO.Menu.GetMenuID with this logic:
// If the current menu item ends in 'Project Entry', prefix it with the current plant.
if (result.Menu[0].MenuDesc.ToString().EndsWith("Project Entry"))
{
result.Menu[0].MenuDesc = callContextClient.CurrentPlant + " - Project Entry";
}
Final Result
You’ll now see something like this in the browser tab when the form is loaded:
Warnings & Considerations
- This approach modifies the
MenuDescfield, which is used in various parts of the UI, including the Home screen menu. While I haven’t encountered any issues so far, this hasn’t been thoroughly tested in all contexts or modules. - Changing
MenuDescinGetMenuForLicenseTypewill alter how the menu items appear on the Home screen. This may not be desirable in all environments, especially if users rely on consistent naming across sites. - If multiple BPMs or environments modify
MenuDescdifferently, you may see inconsistent or conflicting menu labels across tabs or users. - This change is cosmetic and session-scoped, but it could potentially interfere with:
- Personalizations or favorites that depend on the original
MenuDesc - Training materials or documentation referencing specific menu text
- Menu search functionality if users are used to default names
- Personalizations or favorites that depend on the original
- Always test in a pilot environment before rolling this out to production.
Let me know if you’ve found a better way to do this or if there are potential risks I’ve overlooked. Happy to hear feedback and learn more!
