Catalog UI Policy not working as required (Explained in Description)

rishabh31
Mega Sage

Respected Community,

When Selecting 'Task' (Choice) in Variable Field- Job Responsibilities, then only a Variable field- 'Task entry' becomes Mandatory & Visible.

find_real_file.png

*Outcome (Achieved but with Gap below)- 

find_real_file.png

When Selecting 'Duties' (Choice) in Variable Field- Job Responsibilities, then only a Variable field- 'Duties entry' becomes Mandatory & Visible.

find_real_file.png

*Outcome (Achieved but with Gap)-

find_real_file.png

When Selecting 'Responsibilities' (Choice) in Variable Field- Job Responsibilities, then only a Variable field- 'Responsibilties entry' becomes Mandatory & Visible.

find_real_file.png

*Outcome (Achieved but with Gap)-

find_real_file.png

& When Selecting 'All' (Choice) in Variable Field- Job Responsibilities, then all three Variable fields- 'Task entry', 'Duties entry' & 'Responsibilties entry' becomes Mandatory & Visible.

find_real_file.png

*Outcome (Not Achieved as Duties Entry Missing, Sometimes its Visible & many times NOT)-

find_real_file.png

I tried to achieve this by UI Actions OR UI Scripts also, but not getting results, please help me with revise script or process, I will be thankful!

Thanks in advance

1 ACCEPTED SOLUTION

OR else I believe you can achieve this using UI policy actions as well with below conditions in UI policy. you can create 3 UI Policies with details mentioned below:

Keep

On load : checked (on all UI Policies)

Reverse if false : checked (on all UI Policies)

1. UI policy for Task:

Condition - Job Responsibilities IS Task OR ALL

In UI policy actions - Task entry :  mandatory - true, visible - true

2. UI policy for Duties:

Condition - Job Responsibilities IS Duties OR ALL

In UI policy actions - Duties entry: mandatory - true, visible - true

3. UI policy for Responsibilities:

Condition - Job Responsibilities IS Responsibilities OR ALL

In UI policy actions - Responsibilities entry: mandatory - true, visible - true

Please mark my respsone as helpful/correct, if it answer your question.

Thanks

View solution in original post

7 REPLIES 7

Nikita Kale
Giga Guru

Hi 

For the spacing issue, please use setDisplay() instead of setVisible().

Please mark the response as helpful/correct, if it answers your question.

 

Thanks

Nikita

Thanks Nikita can you please me with other issue as well

Mahendra RC
Mega Sage

Hello Rishabh,

This is happening because you have I believe 3 UI policies and hence they are conflicting with each other. I would suggest you to create a single UI policy with the below condition:

Condtion: Job responsibility is one of Task, Duties, Responsibilities, All

In Execute if true: Please replace the correct field name and field Values (like All, Task, Duties backend value)

var jobResponsibility = g_form.getValue("job_responsibility");
if (jobResponsibilty == "All") {
g_form.setDisplay("task_entry", true);
g_form.setDisplay("duties_entry", true);
g_form.setDisplay("responsibilities_entry", true);
g_form.setMandatory("task_entry", true);
g_form.setMandatory("duties_entry", true);
g_form.setMandatory("responsibilities_entry", true);
} else if (jobResponsibility == "Task") {
// While hiding the fields you first need to set Mandatory as false and then set Display as false;
g_form.setMandatory("duties_entry", false);
g_form.setMandatory("responsibilities_entry", false);
g_form.setDisplay("duties_entry", false);
g_form.setDisplay("responsibilities_entry", false);

g_form.setDisplay("task_entry", true);
g_form.setMandatory("task_entry", true);
} else if (jobResponsibility == "Duties") {
// While hiding the fields you first need to set Mandatory as false and then set Display as false;
g_form.setMandatory("task_entry", false);
g_form.setMandatory("responsibilities_entry", false);
g_form.setDisplay("task_entry", false);
g_form.setDisplay("responsibilities_entry", false);

g_form.setDisplay("duties_entry", true);
g_form.setMandatory("duties_entry", true);
} else if (jobResponsibility == "Responsibilities") {
// While hiding the fields you first need to set Mandatory as false and then set Display as false;
g_form.setMandatory("task_entry", false);
g_form.setMandatory("duties_entry", false);
g_form.setDisplay("task_entry", false);
g_form.setDisplay("duties_entry", false);

g_form.setDisplay("responsibilities_entry", true);
g_form.setMandatory("responsibilities_entry", true);
}

in Execute if false:

g_form.setMandatory("task_entry", false);
g_form.setMandatory("duties_entry", false);
g_form.setMandatory("responsibilities_entry", false);
g_form.setDisplay("task_entry", false);
g_form.setDisplay("duties_entry", false);
g_form.setDisplay("responsibilities_entry", false);

Please mark my respsone as helpful/correct, if it answer your question.

Thanks

OR else I believe you can achieve this using UI policy actions as well with below conditions in UI policy. you can create 3 UI Policies with details mentioned below:

Keep

On load : checked (on all UI Policies)

Reverse if false : checked (on all UI Policies)

1. UI policy for Task:

Condition - Job Responsibilities IS Task OR ALL

In UI policy actions - Task entry :  mandatory - true, visible - true

2. UI policy for Duties:

Condition - Job Responsibilities IS Duties OR ALL

In UI policy actions - Duties entry: mandatory - true, visible - true

3. UI policy for Responsibilities:

Condition - Job Responsibilities IS Responsibilities OR ALL

In UI policy actions - Responsibilities entry: mandatory - true, visible - true

Please mark my respsone as helpful/correct, if it answer your question.

Thanks