Question

Lobby Filter Parameters

  • 22 January 2020
  • 8 replies
  • 3593 views

Userlevel 1
Badge +3

Hi,

 

I am building some lobbies in IFS 10 and I would like to know if it is possible to use a predefined list of values to use in the lobby filter parameter. For example, if you want to filter by site, you would get a LOV on the parameter filter with the available sites in the system. 

Another interesting filter at the lobby level would be to have the calendar option available, whenever you wish to filter a parameter by date. Does anyone know how to do this or if it’s possible?


8 replies

Userlevel 6
Badge +15

Hi,

 

I’m fairly certain this is not possible as the parameters only accept text or context substitution values. - Very good ideas though
 

One thing that might be worth investigating is creating your own context substitution variable. 
 

I’ve never actually tried to create my own personally, but tempted to give it a go as could be useful in the future. Although the CSV screen is read only screen in IFS, the API does have the new_ procedure and in the documentation it doesn’t state you can’t create more. So fair game right??

 

In this case, it’s not overly helpful but instead of hard coding every site as a default for the user - even if they don’t have access to some. You could create a new server side CSV to find the sites the user has access to and only search for them. 

That is if we can actually create them and they work first!

Userlevel 7

It’s not possible to create LOVs for the parameters unfortunately, but you can use data in the lobby to pass into the parameter section. Let’s say you have a lobby element that lists all sites in your company, then you could set navigation from that lobby element up to populate the parameters with the value you have clicked on. 

Let’s say you have a lobby element that lists all sites i.e. column name CONTRACT, that you want to pass into your parameter SITE, you’d setup a navigation URL that opens the same lobby page, but passes the value you have clicked on into the parameter. Please note that you have to setup your data sources to take filters into account as well.

 

ifswin:Ifs.Fnd.CompositePageRenderer.PageContainer?page_id=[lobby page id]&&[lobby parameter]=[$value to pass to parameter$]

e.g. 

ifswin:Ifs.Fnd.CompositePageRenderer.PageContainer?page_id=9c8c74b2-a291-7dc5-93a1-322d31e61a06&&SITE=$CONTRACT$

When you click on the value, it would pass CONTRACT into the parameter called SITE. 

Example:

Data source:
 

 

Lobby Element

 

Lobby Page with parameter

 

The result?

 

Userlevel 5
Badge +11

@anmise thank you

Userlevel 5
Badge +14

@anmise thank you

Nice ;)

Badge +3

Hello,

Is it possible to use column value instead of filter parameter value in the URL Address? For example : ifswin:Ifs.Fnd.CompositePageRenderer.PageContainer?page_id=9c8c74b2-a291-7dc5-93a1-322d31e61a06&&COMPANY=[COMPANY column value]

Thank you ! 

Best regards,

Shady

Userlevel 4
Badge +7

Hi @anmise,

 

Does this syntax also work in Aurena “ifswin:Ifs.Fnd.CompositePageRenderer.PageContainer?page_id= “ ? I am struggling at the moment as it says page not found in Aurena, whereas it is working fine in IEE.

 

Userlevel 6
Badge +15

Hi,

 

I’m fairly certain this is not possible as the parameters only accept text or context substitution values. - Very good ideas though
 

One thing that might be worth investigating is creating your own context substitution variable. 
 

I’ve never actually tried to create my own personally, but tempted to give it a go as could be useful in the future. Although the CSV screen is read only screen in IFS, the API does have the new_ procedure and in the documentation it doesn’t state you can’t create more. So fair game right??

 

In this case, it’s not overly helpful but instead of hard coding every site as a default for the user - even if they don’t have access to some. You could create a new server side CSV to find the sites the user has access to and only search for them. 

That is if we can actually create them and they work first!

Revisiting my previous comment over a year ago.. but I have just had the need to create a CSV to use as a lobby filter, so it can be done. - However I think if you ever have an IFS upgrade then the value will be wiped out of the CSV table and need to be recreated.

My created CSV finds all of the sites the user has access to - After the script is executed, users would need to sign out and back into IFS again to get it to work

 


declare
name_ VARCHAR2(32000) := 'USER_ALL_SITE';
attr_ VARCHAR2(32000);
info_ varchar2(32000);
objid_ varchar2(32000);
objversion_ varchar2(32000);
begin
client_sys.Clear_Attr(attr_);
Client_SYS.Add_To_Attr('NAME','USER_ALL_SITE', attr_);

Client_SYS.Add_To_Attr('SERVER_METHOD','CUSTOM_LOBBY_API.Get_All_Sites', attr_);
Client_SYS.Add_To_Attr('IMPLEMENTATION_TYPE', 'Server', attr_);
Client_SYS.Add_To_Attr('FND_DATA_TYPE', 'String', attr_);
Client_SYS.Add_To_Attr('TRANSIENT', 'False', attr_);
Client_SYS.Add_To_Attr('MODULE', 'FNDBAS', attr_);

context_substitution_var_api.new__(info_,
objid_,
objversion_,
attr_ ,
'DO');
end;
FUNCTION Get_All_Sites RETURN VARCHAR2
IS

FUNCTION Core RETURN VARCHAR2
IS
userid_ varchar2(30);
--
temp_ varchar2(32000);
CURSOR get_attr IS
SELECT LISTAGG(contract, ';') WITHIN GROUP (ORDER BY contract)
FROM USER_ALLOWED_SITE_TAB
WHERE userid = userid_;
BEGIN
userid_ := Fnd_Session_API.Get_Fnd_User;
--
OPEN get_attr;
FETCH get_attr INTO temp_;
CLOSE get_attr;
RETURN temp_;
END Core;

BEGIN
RETURN Core;
END Get_All_Sites;

 

Then in the lobby data source you can use the following regular expression to filter by all sites as found in the CSV:

 

Users can type in their own sites if they wanted to narrow the filter such as: KEMP;TPCM in the site lobby parameter

Userlevel 7

Hi @anmise,

 

Does this syntax also work in Aurena “ifswin:Ifs.Fnd.CompositePageRenderer.PageContainer?page_id= “ ? I am struggling at the moment as it says page not found in Aurena, whereas it is working fine in IEE.

 

Hi @alicedc91, no that is specific to IEE. In Aurena you need to enter the url in web URL and the syntax is: lobby/[lobby id]?pageParams=

The value from the list you want to pass should be added as PARAMETER:$[VALUE_FROM_LIST_ELEMENT]$


E.g. lobby/4e9f55ed-522d-4b2d-8f11-247e258b65g8?pageParams=MANAGER:$[MANAGER]$

Reply