Hello! Is there a way to create a GI that shows all the workspaces, categories, and the links to the screens?
I was able to create one that shows the workspaces and categories, and with these DAC I couldn’t find a field that is for screen titles. Right now the GI is duplicating categories for however many screens are listed under that category.
Am I missing data sources? is this information possible to pull in Acumatica?
Links to the screens are a bit tricky things in the GI configuration since the navigation settings are mostly focused on one single screen and different records in it.
However, it is possible to bypass it by using an external link to the Acumatica instance itself. Here is an example of configuration:
First, you need to use SiteMap table in your config:
Define relations between the tables:
And add necessary fields to the Results:
After that:
Go to Navigation.
Type your instance URL (full with ScreenID) into the Link field - Instead of using the exact ScreenID, use a parameter like ((ScreenID)) - This will allow you to add the link to the Navigation parameters.
Also here I would suggest using the Pop-Up Window navigation.
Go to Details again and uncheck Default navigation for the desired column and select your navigation:
You good to go:
Several things I faced with this approach:
For some reason, this type of navigation does not work for ‘New Tab’ type of navigation, and I was not able to determine what the problem was quickly. Most likely, the different format of URL should do the job.
I also tried to use [SiteMap.Url] for navigation, but using the path with a ‘/’ symbol in the formula led to replacing it with a %2F symbol, and I could not bypass it.
You can try to use a different configuration or URL here to achieve the task. I hope this will help.
Links to the screens are a bit tricky things in the GI configuration since the navigation settings are mostly focused on one single screen and different records in it.
However, it is possible to bypass it by using an external link to the Acumatica instance itself. Here is an example of configuration:
First, you need to use SiteMap table in your config:
Define relations between the tables:
And add necessary fields to the Results:
After that:
Go to Navigation.
Type your instance URL (full with ScreenID) into the Link field - Instead of using the exact ScreenID, use a parameter like ((ScreenID)) - This will allow you to add the link to the Navigation parameters.
Also here I would suggest using the Pop-Up Window navigation.
Go to Details again and uncheck Default navigation for the desired column and select your navigation:
You good to go:
Several things I faced with this approach:
For some reason, this type of navigation does not work for ‘New Tab’ type of navigation, and I was not able to determine what the problem was quickly. Most likely, the different format of URL should do the job.
I also tried to use [SiteMap.Url] for navigation, but using the path with a ‘/’ symbol in the formula led to replacing it with a %2F symbol, and I could not bypass it.
You can try to use a different configuration or URL here to achieve the task. I hope this will help.
Hi @afomichev Thank you so much for the detailed instructions, I was able to get it to work!
I did also notice that the some of the workspaces that I don’t have access to, or I don’t think the company has, those are also being pulled into the GI. And the screen links under these workspaces take you directly to the welcome page of Acumatica. Does the Workspace GI pull all available workspaces regardless of their availability to the users? Is there a way to eliminate including these workspaces?
For example: the ‘routes’ workspace is not something I see, and all the links under routes opens up the welcome page.
As with the previous task, there are certain challenges in resolving the access issue.
Since Access Rights operate at the system level and typically, tables specified in a Generic Inquiry are used to define which data is accessible, access is managed through these tables. In the current task, we’re dealing with a list of screens, and for each, we need to determine whether the user has access or not. Usually, Row Level Security is applied to data records, but it doesn’t apply to screens, which goes beyond the standard capabilities of GI.
However, by accessing Access Rights, we could theoretically read the permissions and try to account for them for the current user.
I can’t fully recommend this approach, as it may be resource-intensive, and I can’t guarantee it will filter everything correctly or avoid hiding necessary elements, but you could experiment with it:
Add RolesInGraph and UsersInRoles DACs to the list:
Add the appropriate relations:
Now you have the list of roles with different access levels to the screens and the list of users in this roles.
Define the conditions:
Here we need to see only records for the current user (@me) with access rights != Revoked
Add grouping by ScreenID:
After this, the user should see only the screens that he has access to:
But once again, Access Rights is a fairly complex mechanism to simply integrate into a GI, and I expect this approach may lead to a lot of inaccuracies.
By the way, what issue are you trying to solve with this GI?
Hi @afomichev Thank you once again, this is very helpful! There isn’t a specific issue that needs to be solved, we just wanted to see a list of workspaces, categories, and screens that we are using. I think what I need to do is to set a condition that filters out the workspaces that’s not turned on or in use in the system.
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.