We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Hide Tab not working when Playbook component uses Parent Record

Yathvika
Tera Contributor

Hi everyone,

I’m facing an issue with the Record Playbook component in UI Builder and would appreciate any suggestions.

Scenario:

 

My Record Page is built on the Task table.

Initially, the Playbook was associated directly with the  Task, and the Hide Tab condition worked correctly. The Playbook tab was shown only when a playbook was available for the task.

We have now changed the Playbook to be associated with the Parent Case ( Case) instead of the task.

What I changed:

The Record Playbook component is configured with:

Parent Table =l Case

Parent Sys ID = record.form.fields.parent_case.value

I created a data resource (record_has_playbook) that checks whether the parent case has a playbook.

The data resource returns the correct output (true/false).

Issue:

If I bind the Playbook component visibility to the data resource, it behaves correctly.

However, when I use the same data resource for Tab Settings → Hide Tab, the tab never becomes visible.

UI Builder - Hide Tab not working when Playbook component uses Parent Record

Settings → Hide Tab, the tab never becomes visible.

TIA

1 REPLY 1

Vikram Reddy
Tera Guru

Hey @Yathvika,

 

Switch off the client-side data resource for the Hide Tab option under Tab Settings and use a server-side UX Screen Condition instead, that's how ServiceNow's own Record Playbook tab pattern is documented. Component Visible bindings re-evaluate reactively once the data resource resolves, but Hide Tab gets evaluated earlier in the tab-render cycle, before a chained data resource depending on record.form.fields.parent_case.value has actually populated, so it just stays hidden. Add a condition under UX Screen Conditions on the app route that resolves the parent Case record server-side and calls sn_playbook.PlaybookExperience.parentRecordContainsPlaybook() against it, that's the supported approach for parent-linked playbooks.

 

Thank you,
Vikram Karety
Octigo Solutions INC