Skip to main content
Solved

Navigating from lobby elements to tree screens - a definitive answer please?

  • December 7, 2021
  • 15 replies
  • 374 views

RobSimon
Sidekick (Employee)
Forum|alt.badge.img+8

Hello:

I am re-introducing a topic that has been brought up before in both Workplace and here in the Community, but I have yet to see any input from anyone in Product Development with a solution or guidance.

The issue is creating Lobby Navigation URL’s to “tree-enabled” screens like Equipment Object Navigator, Project Navigator, Sales Rule For Part, etc.  When navigating to these screens manually, the URL in the browser looks something like:

https://<server_url>/main/ifsapplications/web/page/SalesRule/Form;$filter=<expression>;treeviewrec=<value>;treeview=Tree;treeclient=SalesRule;treenodeid=<value>;path=<value>;record=<value>;searchfilter=<expression>

However, no combination of this URL type will work as a Lobby Navigation URL - you will just get framework-related errors.

Looking through the 21R2 Lobby Navigation Guide, there are mentions of a “tree” URL type, similar to “page” and “assistant”, but there are no examples in the documentation that show this.  In the 21R2 EQUIPMENT lobby under Maintenance, there is an element with a link to the EON which works as expected.  The link that is used there looks like this:

tree/EquipmentObjectStructureNavigation/EquipObjectStructureTree

Clicking through that link opens up the EON, and redirects the browser to a URL format that looks like my first example above, so it appears that these Tree URL’s exist for these screen types, and are what we should be using in our lobby configurations.

However, how do I find out the specific Tree URL for a given screen?  I’ve tried the Page Designer, Nav Designer, Log Window, Debug Console and Developer Tools within the browser to try and find a reference to this type of URL on one of these pages when navigating to it, but I cannot find anything.

@Dishani - I don’t mean to single you out, but I think you were the one who provided a customer with the Tree URL for the Project Navigator on LCS Case G2245575-A when they were having this same issue (tree/ProjectNavigator/Tree?$filter=<expression>).  How did you derive this value?  Are these URL’s documented somewhere?  There does not appear to be a standard naming convention that can be used to construct the URL.

Getting this working reliably will greatly help our Presales demos to prospects, and I imagine will help customers as well.

@Dan Matthews @Tom Gregory @AmyE @KarinR @Leif Johansson

A working lobby element link to the EON
From the Element Designer - great to know this, but how would I find this out for another screen?

 

Best answer by chwrlk

Hi RobSimon, 

tree/EquipmentObjectStructureNavigation/EquipObjectStructureTree

if we take segments of above URL from the beginning ,

  • tree - this is the page type parameter we are using for trees. It is always ‘tree’. No need to worry about it.
  • EquipmentObjectStructureNavigation: This is the client of the tree. If you go to tree enabled page this can be found using ‘treeclient’ parameter. 
  • EquipObjectStructureTree: This is the name of the tree. If you go to tree enabled page this can be found using ‘treeview’ parameter. 

Now let’s try to map your url to this structure (https://<server_url>/main/ifsapplications/web/page/SalesRule/Form;$filter=<expression>;treeviewrec=<value>;treeview=Tree;treeclient=SalesRule;treenodeid=<value>;path=<value>;record=<value>;searchfilter=<expression>)

 

If we create a navigation URL for above URL it looks like follows.

tree/SalesRule/Tree

If there are unclear points, let us know. 

 

Thanks! 

15 replies

Forum|alt.badge.img+3
  • Do Gooder (Employee)
  • 10 replies
  • Answer
  • December 8, 2021

Hi RobSimon, 

tree/EquipmentObjectStructureNavigation/EquipObjectStructureTree

if we take segments of above URL from the beginning ,

  • tree - this is the page type parameter we are using for trees. It is always ‘tree’. No need to worry about it.
  • EquipmentObjectStructureNavigation: This is the client of the tree. If you go to tree enabled page this can be found using ‘treeclient’ parameter. 
  • EquipObjectStructureTree: This is the name of the tree. If you go to tree enabled page this can be found using ‘treeview’ parameter. 

Now let’s try to map your url to this structure (https://<server_url>/main/ifsapplications/web/page/SalesRule/Form;$filter=<expression>;treeviewrec=<value>;treeview=Tree;treeclient=SalesRule;treenodeid=<value>;path=<value>;record=<value>;searchfilter=<expression>)

 

If we create a navigation URL for above URL it looks like follows.

tree/SalesRule/Tree

If there are unclear points, let us know. 

 

Thanks! 


RobSimon
Sidekick (Employee)
Forum|alt.badge.img+8
  • Author
  • Sidekick (Employee)
  • 66 replies
  • December 8, 2021

@chwrlk - Thank you Chamara!  This type of formula for creating proper “tree” URL’s was exactly what I was looking for.  I applied your example to my specific scenario and it worked as expected.

This explanation would make a great addition to the Lobby Navigation Guide in our IFS Cloud Technical Documentation!  :wink:


wahelk
Hero (Former Employee)
Forum|alt.badge.img+11
  • Hero (Former Employee)
  • 154 replies
  • March 23, 2023

I am having an issue with equipment object navigator from lobby which needs to filter using page parameter.

URL: page/EquipmentObjectStructureNavigation/EquipmentObjectPageF?$filter= MchCode eq $COMPANY$

this works, but it's not populated correctly the tree. child nodes expand is not there. 

 


tried with this 

tree/EquipmentObjectStructureNavigation/EquipObjectStructureTree and it populate without filtering.

 


How can I use URL with proper filtering and popluate?


wahelk
Hero (Former Employee)
Forum|alt.badge.img+11
  • Hero (Former Employee)
  • 154 replies
  • March 23, 2023

Fond the way to define.

 

tree/EquipmentObjectStructureNavigation/EquipObjectStructureTree?$filter=MchCode eq $COMPANY$&navicontext=F


Forum|alt.badge.img+9
  • Sidekick (Partner)
  • 48 replies
  • May 23, 2023

Hi,

I try to link to this project page. main/ifsapplications/web/page/ProjectScopeAndSchedule/ProjectLevel;$filter=ProjectId%20eq%20'3187';navicontext=ScopeAndSchedule;record=KFByb2plY3RJZD0nMzE4Nycp;treeviewrec=KFByb2plY3RJZD0nMzE4Nycp;treeview=Tree;treeclient=ProjectNavigator;searchfilter=ProjectId%20eq%20'3187';treenodeid=UFJPSkVDVElEPTMxODc%3D;path=0.1731531774.18

 

So my link is tree/ProjectNavigator/Tree?$filter=projectid eq [Project Id] but it doesn’t works. Do you have an idea ?


wahelk
Hero (Former Employee)
Forum|alt.badge.img+11
  • Hero (Former Employee)
  • 154 replies
  • May 23, 2023

if you want to have data values  should be  $[Project Id] 


Forum|alt.badge.img+9
  • Sidekick (Partner)
  • 48 replies
  • May 23, 2023

Hi @wahelk Thanks but I tried and I have always the same error.

 


RobSimon
Sidekick (Employee)
Forum|alt.badge.img+8
  • Author
  • Sidekick (Employee)
  • 66 replies
  • May 23, 2023

I think filter criteria are case-sensitive in OData strings (not totally sure).  Have you tried ‘ProjectId’ instead of ‘projectid’?  Also, when I’ve used data references on something like a List Element, I’ve used the actual column ID from the datasource (PROJECT_ID).  Like this…

tree/ProjectNavigator/Tree?$filter=ProjectId eq $[PROJECT_ID]

I modified an existing element that was close to the above, and it worked for me.

 

 


Forum|alt.badge.img+9
  • Sidekick (Partner)
  • 48 replies
  • May 25, 2023

Hi @RobSimon Thanks for this information, it is better now but I have always an error. But if I valid it, page is open.

My Link : tree/ProjectNavigator/Tree?$filter=ProjectId eq $[PROJECT_ID]&navicontext=MaterialsAndServices

 

Url: https://goyer-cfg.ifs.cloud/main/ifsapplications/projection/v1/ProjectNavigator.svc/Projects?$filter=(ProjectId%20eq%20%273207%27%3Bnavicontext%3DScopeAndSchedule)%20and%20(ProjectId%20eq%20%273209%27)&$select=ProjectId,Objstate,Name,Company,Manager,CurrencyType,Description,CostStructureId,ProgramId,Category1Id,Category2Id,FinancialProjectExist,BaselineRevisionNumber,FinanciallyResponsible,EarnedValueMethod,CalendarId,PlanStart,PlanFinish,AccessOnOff,BaseCurrency,Objgrants,luname,keyref
        Date = 2023-05-25T06:23:22.406Z
        Request Id = 4c2fc88d-3537-4970-be74-181c7f34308d
        Client version = 22.1.10.20221205084017.0


RobSimon
Sidekick (Employee)
Forum|alt.badge.img+8
  • Author
  • Sidekick (Employee)
  • 66 replies
  • May 25, 2023

@Christophe BUSSI - what are the details of the server error?  Have you tried the link without the navcontext value, just to see if it works without an error?  The URL you pasted in seems to point to the “Scope and Schedule” context even though you are specifying Materials and Services, so I’m wondering if something is happening there.


Forum|alt.badge.img+22
  • Superhero (Employee)
  • 656 replies
  • August 17, 2023

@chwrlk - Thank you Chamara!  This type of formula for creating proper “tree” URL’s was exactly what I was looking for.  I applied your example to my specific scenario and it worked as expected.

This explanation would make a great addition to the Lobby Navigation Guide in our IFS Cloud Technical Documentation!  :wink:

@chwrlk Do you know how is responsible for updating the technical guide, because it hasn’t been done ? Should I create a ticket in OSCA for this ?


Forum|alt.badge.img+22
  • Superhero (Employee)
  • 656 replies
  • August 17, 2023

Hi @RobSimon Thanks for this information, it is better now but I have always an error. But if I valid it, page is open.

My Link : tree/ProjectNavigator/Tree?$filter=ProjectId eq $[PROJECT_ID]&navicontext=MaterialsAndServices

 

Url: https://goyer-cfg.ifs.cloud/main/ifsapplications/projection/v1/ProjectNavigator.svc/Projects?$filter=(ProjectId%20eq%20%273207%27%3Bnavicontext%3DScopeAndSchedule)%20and%20(ProjectId%20eq%20%273209%27)&$select=ProjectId,Objstate,Name,Company,Manager,CurrencyType,Description,CostStructureId,ProgramId,Category1Id,Category2Id,FinancialProjectExist,BaselineRevisionNumber,FinanciallyResponsible,EarnedValueMethod,CalendarId,PlanStart,PlanFinish,AccessOnOff,BaseCurrency,Objgrants,luname,keyref
        Date = 2023-05-25T06:23:22.406Z
        Request Id = 4c2fc88d-3537-4970-be74-181c7f34308d
        Client version = 22.1.10.20221205084017.0

Having just tested it, it works fine for tree/ProjectNavigator/Tree?$filter=ProjectId eq $Project_Id$&navicontext=MaterialsAndServices but using the page parameters. Do you have the project id in the page parameters ?


Forum|alt.badge.img+8

Hi @RobSimon  and @chwrlk ,

Is it planned somewhere to be able to use this syntax from NavigationLink type Custom Command button ?

Because we are always limited to select a page starting by ‘page/xxx’ without possibility to fill in manually this parameter, and thus not able to navigate to pages with trees.

Although we can see treeview endpoints in the Page list of values, it is still prefixed with ‘page/’ instead of ‘tree/’ . For example, for Service Contract, LoV contains ‘page/ServiceContract/ServiceContractTree’ where we should have ‘tree/ServiceContract/ServiceContractTree’. And link starting with ‘page/’ doesn’t work...

Thanks !


Forum|alt.badge.img+22
  • Superhero (Employee)
  • 656 replies
  • December 13, 2023

Hi @RobSimon  and @chwrlk ,

Is it planned somewhere to be able to use this syntax from NavigationLink type Custom Command button ?

Because we are always limited to select a page starting by ‘page/xxx’ without possibility to fill in manually this parameter, and thus not able to navigate to pages with trees.

Although we can see treeview endpoints in the Page list of values, it is still prefixed with ‘page/’ instead of ‘tree/’ . For example, for Service Contract, LoV contains ‘page/ServiceContract/ServiceContractTree’ where we should have ‘tree/ServiceContract/ServiceContractTree’. And link starting with ‘page/’ doesn’t work...

Thanks !

Dear @Sébastien DELAURE. I’ve created the OSCA ticket 93250 for this.


Forum|alt.badge.img+8

Tested successfully today on a 24R1 SU3 environment on Service Quotation treeview, it is now possible to create a custom command button navigation link to a treeview endpoint, we don’t have “page/” prefix anymore hardcoded in the LoV !