- My View
The application has some choice fields like so:
|Header 1||Header 2|
|Category||Product, Store setup, Training, Shipping, Inventory|
|Subcategory||Size issues, quantity issues, Quality issues, Shrink|
|Subdivision||Athletic, Youth, Outdoor|
Subcategory has a dependent field relationship with Category, and Subdivision with Division. So "Subcategory::Shrink" might be dependent on "Category::Inventory".
Problem #1: Subcategories, divisions etc get added/removed/renamed a lot. So we'll get a request to rename 'Category::Inventory' to "Category::Stuff", and we have also to update the dependency for "Subcategory::Shrink" to "Category::Stuff".
Problem #2: Superusers cannot update the keywords.
So I want to hand maintenance of the keywords, and of the relationships between them, to the users.
It seems clear the first step is to set the various keywords up as Reference fields, one table per keyword, and only one column, Name|name. So:
But I'm not clear on how best to declare relationships between, for example, a Category and one or more Subcategories. I want to to say "For this sys_id, here are the related sys_ids in table X". I need to do this in a way that:
-- will be usable by superusers (it has to look fairly intuitive)
-- can be exposed on a module
-- can be interrogated by reference qualifiers
Can anyone suggest?
What do you mean by superuser role? Do you mean Admin or any Manager role?
Problem #1: Subcategories, divisions etc get added/removed/renamed a lot. So we'll get a request to rename 'Category::Inventory' to "Category::Stuff", and we have also to update the dependency for "Subcategory::Shrink" to "Category::Stuff". --> This is well handled by ServiceNow. You just need to change the label, and the relationship between 'Category' and 'Sub Category' are not impacted
But I'm not clear on how best to declare relationships between, for example, a Category and one or more Subcategories. I want to to say "For this sys_id, here are the related sys_ids in table X" - This is handled by parent - child relationship and shown as Related Lists. Create Table A, and create Table B with a field which has reference to Table B. Create Related List to show the parent-child records.
can be exposed on a module - What do you want to be exposed as a module? every table / child tables created can be created as modules with ease.
Please refer the below URL to understand how to create related lists and module.
PS: Hit like, Helpful or Correct depending on the impact of the response
If I understand you correctly, related lists are about displaying in a table-like way rows that match some query. And that may be something I want to include in the solution, but it isn't what I was asking. I was asking how to capture the many:1 relationship between cat and subcat.
For example, given (cat1...cat5), I want to let the users check off, for each of (subcat1...subcat3), which of (cat1...cat5) each belongs to:
subcat1:associated with cat1...cat5
subcat2:associated with cat1, cat2, cat5
subcat3:associated with cat2...cat5
So when the user selects cat1, the subcat list includes subcat2 but not subcat3.
Conceptually what I'm looking for is a multivalue Reference field for the subcat form, expressed as a checkbox or a slushbucket. I haven't found such an animal.
Thanks for the details. What you are looking for is actually a Many to Many Relationship. Please check the below URL to find more about Many to Many and how to create a related list from it.
For your case,
1. I created the below Many to Many Relationship
2. Added this as a Related List in Subcategory form
3. Created a few sample Sub Category Vs Category records using Slushbucket.
I hope the above solves your case. Let me know if otherwise.
Please mark the answer as Correct, helpful as appropriate.
That looks like what I need. We inherited an application that uses literal keywords and dependent fields, and the business is constantly fiddling with the keywords. I'm looking for a way of handing keyword management over to the business, this looks like it might do it. Thank you.
Glad it worked out for you. If it answers your question, can you please mark the answer as correct to help the community.