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
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.
Figure 2: Select client type in layout properties
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 |
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.
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$
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
Include page parameters values of the Lobby page.
Example:
Include data values of the element
Example: page/PlanningUnitsAnalysis/List?$filter=OrderNo eq $[ORDER_NO]
Include CSV values.
Example: page/PlanningUnitsAnalysis/List?$filter=MainRepresentativeId eq #USER_ID#
NOTE: CSV value formats for dates can be found in Appendix
B.
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 |
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:
URL Navigation: Mapping different page parameters between
lobby pages
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.
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’
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$) |
When
using enumeration values in filter conditions, full qualified name must be used,
like the advanced search.
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.
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
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')
· $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$ |
· 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) |