Add a form section to every child of the Configuration Item table (cmdb_ci)

dustinhux
Kilo Contributor

I am currently trying to create a custom form section that can be added to all of my configuration items, which can be defined as an item in any table that extends the cmdb_ci table.   I was able to add the 6 custom fields that I needed into the Base Configuration Item table (cmdb) which in turn allows you go into each child of the cmdb_ci   table (ex. Accessory, cmbd_ci_acc) and design the form to show the values.   Since there are 93 children to the cmdb_ci table, I am trying to figure out a way to add one form section with 6 forms to every one of these children without having to enter their form design individually to create the form section and drag the 6 forms in.   Does anyone know an easier way to do this?

4 REPLIES 4

Michael Ritchie
ServiceNow Employee
ServiceNow Employee

I've never done it but almost positive it can be done.   The forms and sections are stored in various tables and through scripting you can likely copy the one you have setup to all the "downstream" forms by looping through the tables and adding the necessary records.   The challenge you will face is with the position of this form section and ensure you update the other position values in the Form Section (sys_ui_form_section) table.   In other words if you want this new section to be the first tab, you will need to loop through the existing ones and increment the position by 1.



If you navigate to System UI you will see links to the Forms and Form Sections tables so you know the tables you are dealing with.   Again this isn't anything I have done before so I don't have any example scripts to share, but I am confident it can be done.   What I don't know is if these modifications will be captured in an update set that you can then move up your instance stack.


dustinhux
Kilo Contributor

michael.ritchie Do you have a sample of a script that would add a value to a cmdb_ci_etc... form or add a value to any form for that matter?  


Unfortunately as mentioned above this is something I haven't done but believe its possible.   I don't have any example scripts to share.


Ryan Harringto1
Giga Contributor

Has anyone been able to achieve this via scripting since this has been posted and has an example script to share?