Existing archive rule on cmdb child table prevents creation of new archive rule in parent cmdb table


Description

 

1) We want to implement archiving for the cmdb tables and its children tables.

2) We originally had a rule that worked at the cmdb_ci table at a high level.

3) We archived Computers and Personal Computers, but then if I tried to setup an archive for CMDB_CI the table was not shown, in order to archive it.

4) Therefore, we deleted that rule and created one at the lowest level of that chain of extended tables to be CMDB_CI_PC_Hardware then tried to create a new rule for its parent table CMDB_CI_Computer, it was still not shown. W

Release or Environment

 

This applies to all environments

Cause

 

 

1) We found out that the reason why you can't find the table cmdb_ci_computer, is because you already have the parent as an archive rule cmdb_ci_pc_hardware

2) This is a known issue documented on PRB713693

3) Unfortunately, our system is not designed to create multiple archive rules per hierarchy (vertically) in cmdb.

4) If you delete the archive rule cmdb_ci_pc_hardware, cmdb_ci_computer will pop up.

 

IMPORTANT: The archiver allows to create multiple archive rules for cmdb table that are Horizontally in the same level, but it will not allow you to create archive rules for the cmdb table's parent or children (Vertically).



This link will give you a good overview of the cmdb OOTB hierarchy: https://docs.servicenow.com/csh?topicname=r_EnterpriseCMDB.html&version=latest

Resolution

 

The best solution I have for you to be able to archive per hierarchy in one archive rule is the following:

1) Delete the archive rule cmdb_ci_pc_hardware

2) Create a new one on the top hierarchy cmdb (base configuration item), then start adding the conditions on the hierarchies you want to archive. For example:


Table: cmdb

Condition: Class is a Hardware
OR Class is a Computer AND name....
OR Class is a Printer...AND name CONTAINS........etc

 

TIP: When you use the Class column in the condition use the is a operator and not is, it will use a better index to make queries faster.

Additional Information

 

KB0722985 - Utilizing the INSTANCEOF operator to improve CMDB_CI queries.