Lobby Navigation Guideline

Contents

Navigation Setup of Lobbies in Aurena

Navigation from an element is setup in the element designer.

Open theLobby Element Designer and select an element. The Navigation settings can be set in the Navigation section

NavigationProperties

Figure 1:Navigation Properties

Navigation in IFS EE is set through URL Address

Navigation in Aurena is set through Web Acess URL Address.This setting is available only for elements of type Aurena or Aurena B2B. Change the element type by selecting a Client type in Layout settings.

SelectClientType

Figure 2: Select client type in layout properties

Aurena Navigation URL

The URL path will depend on the type of the navigation.

Type Format Example
Page, Assistant, Tree <PageType>/<ClientName>/<PageName>?<Parameters> page/BusinessActivity/ActivityPage
Quick Report quickreport/<ReportId> quickreport/793115
Lobby lobby/<LobbyPageId> lobby/f7b1e8db-411e-426b
External URL <URL> http://www.ifs.com

AurenaURLPath

Figure 3: Aurena URL Path

Hint: To help construct the navigation link go to the destination page and view the path from the URL in the browser. For further assistance for construing the navigation link with fitter parameters, use the Page Search to filter the data intended to be viewed on the page and use the ‘Copy link’ option.

CopyLinkfromFiltered Page

Figure 4: Copy link from filtered page

Supported Navigation Parameters

Parameter Supported For Description
$filter Page, Tree

Filters the set of returned records in the destination page using the given parameter values.

Example:

page/ServiceRequest/ServiceBook?$filter=MchCode eq $[MchCode]

 

NOTE: Value for this parameter is specified using the OData $filter syntax. Supported $filter parameters for Lobby navigation in Aurena can be found in Appendix A.

$orderby Page, Tree

Order by comma-separated list of expressions to sort the items. Default ascending; can order ascending asc and descending desc.

Example:

page/ServiceRequest/ServiceBook?$filter=MchCode eq $[MchCode] and MchCodeContract eq $[Contract]&$orderby=RegDate desc, RealFDate desc

searchcontext Page, Tree

Set the search context of the navigated page/tree

Example:

page/BusinessMails/List?searchcontext=CustomerId:$CUSTOMER_ID$,FilterFromDate:true

contexts Page, Tree, Assistant

Set the client context of the navigated page/tree/assistant

Example:

assistant/AccountMatching/Assistant?contexts=Company:$COMPANY$&$filter=(MatchingNo startswith(FactId%2C%27PR%27) and SimulationVoucher eq 'false')

$action

Assistant

Call the function to initiate the assistant

Example:

assistant/ExportCompanyTemplateAssistant/Assistant?$action=ExportCompanySetup{InputTemplateId:$[TemplateId]}

startupmode

Page, Tree

It is possible to set the startup mode of a page when navigating from a lobby element. Currently it is possible to set the following startup behaviors for the destination page.

 

1. Navigate to a page and enable search instead of populating

startupmode=search

 

2. Execute a saved search after navigating into the page

This can be done by passing the URL parameter startupmode;

startupmode=search:<saved search name>

startupmode=search:PlannedOrdersToday

 

NOTE: Priority order of searches when navigating into a page.

1.        $filter from the URL

2.        startupmode from the URL

3.        Default startup mode (from user profile)

4.        Startupmode from Page metadata

pageParams Lobby

Pass page parameters of a lobby page.

Example:

lobby/9cf30284-04e6-489d-ad25-080c154010e3?pageParams=COMPANY:$COMPANY$,SITE:$SITE$

 

Page parameters set through this URL parameter will override any page parameters saved in the user profile. 

 

Note: In Lobby to Lobby navigation the page parameters of the source lobby will be automatically mapped to the page parameters of the destination lobby. Therefore, there is no requirement to explicitly map out the parameters as above, given that the parameter names are strictly equal.

 

Note: If you are using more than one parameter for the same navigation, the parameters should be separated using ‘&’.

Example:  page/PlanningUnitsAnalysis/List?contexts=Company:$Company$&$filter=BusinessPlanId eq $BUSINESS_PLAN_ID$

Place Holders for Lobby Navigation

It is possible to use parameters in the filter conditions to populate data in the destination page after navigation. Following are the types of placeholders supported by framework used in Lobby and general navigation between pages in Aurena

 

Page Parameters ($PLACEHOLDER$)

Include page parameters values of the Lobby page.

Example:  page/CustomerInstallmentsAnalysis/List?$filter=CustomerId eq $CustomerId$

 

Data Values ($[PLACEHOLDER])

Include data values of the element

Example: page/PlanningUnitsAnalysis/List?$filter=OrderNo eq $[ORDER_NO]

 

       CSV (Context Substitution Variable) (#PLACEHOLDER#)

Include CSV values.

Example: page/PlanningUnitsAnalysis/List?$filter=MainRepresentativeId eq #USER_ID#

NOTE: CSV value formats for dates can be found in Appendix B.

 

 

 Lobby Navigation For Specific UI Elements

Following are some element specific examples on how the Web Access URL Address can be constructed for Aurena pages.

List

Setup navigation using a attribute value(s) in the selected row..

Example:

page/BusinessActivity/ActivityPage?$filter=RepresentativeId eq $[REPRESENTATIVE_ID]

 

Matrix

Setup navigation using the attributes mapped to the X and Y when clicking on a matrix cell

Example:

page/BusinessActivity/ActivityPage?$filter=RepresentativeId eq $[REPRESENTATIVE_ID] and Objstate eq $[STATE]

 

Charts (Bar, Line and Pie)

Navigate using the attributes mapped to the X axis and series attribute.

 

Image and Text Element

To set a URL in the Web Access URL field for Image and Text elements.

Example:

page/BusinessActivity/ActivityPage

www.ifs.com/news

 

 

Passing Page Parameters When Navigating from a Lobby Element to a Lobby Page

By default all common parameters with filled values upon navigation will be transferred to the destination lobby. If it is needed to customized use the pageParams URL parameter to map the page parameters of the source lobby to the page parameters of the destination lobby. Using the pageParams overrides the default behavior hence all mapping needs to be specified under pageParams mapping. 

Example:

Data source designer

Figure 4: Datasource Designer

URL Navigation: Mapping different page parameters between lobby pages

Web Access URL Navigation

Figure5: Web access URL Navigation

In this example ‘COMPANY’ page parameter should be there on both pages

Handling 'NULL' or Empty Values for Filtering in the URL

 

If the user wants to send null values in the URL the page parameter should be filled using <> symbol. Framework replaces this symbol with ‘null’ in the navigation parameter.

PassingNullforPageParameters

Figure 7: Passing NULL for page parametersI

 

Example: page/TreeControllers/CustomerPage?$filter=Country eq ‘SWEDEN’ and CustomerNo eq null 

This filter returns a set of customers whose country is Sweden and has no value for set in the field customer number. 

If the value is left empty it is interpreted as the user does not wishes to filter using the parameter.

When navigating the filter segment containing the page parameter placeholders will be dropped.  

Example: page/TreeControllers/CustomerPage?$filter=Country eq ‘SWEDEN’

 

Setting Up Complex Logic

Including complex logic in to the navigation could result in unexpected results.

Examples   Correct Syntax
URL containing multiple types of logical operators (and/or) without brackets $filter=Atr1 eq $PP1$ and Atr2 eq $PP2$ or Atr3 eq $PP3$ $filter=Atr1 eq $PP1$ and (Atr2 eq $PP2$ or Atr3 eq $PP3$) 
$filter=(Atr1 eq $PP1$ and Atr2 eq $PP2$) or Atr3 eq $PP3$
Complex ‘not’ statements $filter=not(contains(Atr1, $PP1$) and contains(Atr2, $PP2$)) $filter=not contains(Atr1, $PP1$) or not contains(Atr2, $PP2$)

Other supported URL examples can be found in Appendix C.

Enumerations

 When using enumeration values in filter conditions, full qualified name must be used, like the advanced search.

Eg: - $filter = Objstate eq  IfsApp.ActivityListHandling.ActivityState'Planned'

Due to the fact that SQL Lobby sources are using Views and Aurena Pages are using Projections, it's not always possible to create a one to one mapping between those two. This becomes apparent when trying to use enumerations values from the datasource in filter conditions to Aurena pages. In the view there are two values for enumerations: a client value and a database value (having suffix _DB). The Aurena page expects a projection value, which is a third value not present in the view. Sometimes it corresponds to the client value, sometimes to the database value, but sometimes to none of them. This can be checked by going to the Aurena page and performing queries and examining filter conditions. In cases where the expected value doesn't match neither client or database value, the filtering can be solved by adding a column with a mapping to the lobby datasource. This column would look like this example:

decode(MRP_TYPE_DB, 'BY_SITE', 'MrpBySite', 'BY_SELECTION', 'MrpBySelection' ...

It needs to be created manually and it will contain a mapping between DB values and projection values and can be used for filter conditions for Aurena pages.

APPENDIX

Appendix A: Supported $filter query options for Lobby navigation in Aurena

 

Query Options

 

Figure A1: Query Options

* Link to OData documentation lobby element.for $filter query options; OData Documentation>>

* The client renders the URL syntaxes defined in the

Appendix B: CSV (Context Substitution Values) for Dates

Following are the date related CSV (Context Substitution Variable) values for searching dates available in Aurena so far;

#TODAY#, #TOMORROW#, #YESTERDAY#

<X> - YEAR, MONTH, WEEK

#START_OF_THIS_<X>#

#END_OF_THIS_<X>#

#START_OF_LAST_<X>#

#END_OF_LAST_<X>#

#START_OF_NEXT_<X>#

#END_OF_NEXT_<X>#

 

 Example: #START_OF_THIS_YEAR#, #END_OF_NEXT_WEEK#

 

It is possible to add, deduct dates from date defined by the CSV value. When using the dropdown, labels are shown as ‘Today’, ‘Start of this month’, etc. but the relevant CSV value will be used in search after picking it from the dropdown.

 

Scenario: In range (Due Date): #START_OF_THIS_MONTH# to #END_OF_THIS_MONTH#+7

Advanced: DueDate >= ‘#START_OF_THIS_MONTH#’ AND DueDate <= ‘#END_OF_THIS_MONTH#+7’

 

Example: page/TaxCodes/List?$filter=ValidFrom eq '#TODAY#+2] 

page/TaxCodes/List?$filter=(ValidFrom ge '#START_OF_THIS_YEAR#' and ValidFrom le '#END_OF_THIS_YEAR#-21')

Appendix C: Supported URL Examples for $FILTER

·         $filter=Atr1 eq $PP1$ and Atr2 eq $PP2$ and Atr3 eq $PP3$ and Atr4 eq $PP4$

·         $filter=Atr1 eq $PP1$ and (Atr2 eq $PP2$ or Atr3 eq $PP3$) and Atr4 eq $PP4$

·         $filter=(Atr2 eq $PP2$ or Atr3 eq $PP3$) and contains(Atr1,$PP1$) and round(Atr1) eq $PP1$ and contains(Atr3,$PP3$)

·         $filter=Atr1 eq $PP1$ and (Atr2 eq $PP2$ or Atr3 eq $PP3$ or (Atr4 eq $PP4$ and Atr5 eq $PP5$)) and Atr4 eq $PP4$

·         $filter=Atr1 eq $PP1$ and not contains(Atr1,$PP1$) and Atr3 eq $PP3$ and Atr4 eq $PP4$

·         $filter=Atr1 eq $PP1$ and (Atr2 eq $PP2$ or not contains(Atr1,$PP1$)) and Atr4 eq $PP4$

·         $filter=Attr1 eq Path.To.Enum’$PP1′ and Atr2 eq $PP2$ and Atr3 eq $PP3$

 

 

Notes:

·         In some cases, same filtering achieved using some SQL expressions can be achieved using odata filter as well even though there is no direct mapping between the syntaxes.

Eg: - nvl(X,10) = Y can be written as $filter=(X eq null and Y eq 10) or (X ne null and X eq Y)