Notifications

18 views

Symptoms

When a CI is inserted, you expected an Asset record to also be automatically inserted too, but that didn't happen.

Release

Any

Causes

No Model Category exists for the CI Class

A Model Category record specific to the CI Class/CI tabele must exist before any CI to Asset synchronization happens. 

You may have added a new custom CI Class table to the CMDB, and not created a Model Category yet to go with it. It is also possible that a record did exist originally, but was removed when demo data was cleaned away. 

Solution:

  1. Navigate to Product Catalog -> Product Models -> Model Categories
  2. Search for CI Class is the CMDB class/table of the CI record. e.g. Windows Server [cmdb_ci_win_server]
  3. If a record does not exist for your record's class, then you can create a new one.

Two Model Category records exist for the same CI Class

This situation shouldn't happen, but if it has, then behavior will be base one one or the other record, and which record is used may be inconsistent. It is possible that changes made by Update Sets may cause a duplicate.

Solution:

  1. Navigate to Product Catalog -> Product Models -> Model Categories
  2. Filter the list on CI Class IS your record's CI class. If this is the cause, then you will see more than 1 record.
  3. Delete all but the correct record.

Note: This may have been caused by PRB1300363. See: KB0725633 Unexpected new or Duplicate Model Categories after upgrade to KP11+ or LP3+ or Madrid

A Model Category exists, but with no Asset table entered

Even if a Model Category record exists for your CI record's class, the Asset Class field is may be empty. 

For an asset to be created, either the Asset [alm_asset] table, or one of the several extending tables - e.g. Hardware Asset [alm_hardware] - must be entered

Solution:

  1. Open the Model Category record as above.
  2. Enter the correct Asset Class value, and Save. 
  3. Click the 'Create Assets' button to add the Asset records for all existing CI records of this CI Class.

A Model Category exists, but with the wrong Asset table entered

You may add a Server CI, and expect e.g. a Hardware Asset to be created, but you can't find the asset in the Hardware table. It may be that the Model Record has Asset [alm_asset] set instead of Hardware Asset [alm_hardware]. Or Consumable Asset instead of Software Asset.

Solution:

  1. Open the Model Category record as above.
  2. Correct the Asset Class value. The UI may not let you do this.
  3. You may also want to update the Class value of some existing records to match the new setting. That is also quite difficult and a bit risky.

A Model Category, with an Asset table, but 'Enforce CI verification' is ticked

If a Model Category record has the "Enforce CI verification" checkbox ticked, that means the system does not create an Asset when the CI is inserted.

Solution:

  1. Open the Model Category record as above.
    Do either of:
    • Untick "Enforce CI verification", and Save, if you want all new CIs in this class from now on to have assets created on insert.
    • Open the specific CI, and click the "Create Asset" button.

The Model of the CI is set to "Don't create Assets"

Even if a Model Category is set to create Assets, individual Models can be set to override that behavior.

Solution:

  1. Open the CI
  2. Click through to the related Model
  3. Check the 'Asset tracking strategy' field
  4. If the value is "Don't Create Assets" then change it to "Leave to category"
  5. Manually create an Asset record, and link it to the CI before submitting the form

The "Create Asset on insert" Business Rule, and dependent "AssetandCI" Script Include may be Inactive or Customised

The code involved in creating an Asset when a CI is inserted is the 'Create Asset on insert' business rule, which in turn uses the "AssetandCI" Script Include.

The Business rule may be inactive, or customised, or replaced with a custom version. The Script Include may also have been customised, perhaps a long time ago, so that an old customised version that has been skipped in recent upgrades has now become incompatible with the current platform.

Solution:

  1. Revert the business rule and script include to the current out-of-box version.
  2. Re-implement any customisations using the supported methods, if possible:
    1. Model Category settings
    2. Model Settings
    3. Asset-CI Mapping tables - This was a fairly recent feature, allowing custom fields or custom status value choice lists to be taken into account without code changes, meaning most reasons for needing to customize code in the first place are no longer necessary.

The Asset is inserted, but values are empty

This may be due to ACL rules preventing creating assets, even though the same user can create the CI. Users need to be able to create both if that's how the Model Category is set up.

Or this may be a sign of a premature insert, due to an update() happening to the Asset before it has actually been inserted.

This may also be due to....

Custom code running as part of the CI or Asset insert breaks the insert

The "Create Asset on insert" Business Rule runs Before Insert of the CI. This is so that the CI can be inserted with the reference value to the Asset already there.

All other insert Business rules for the insert of both CI and the Asset must run and complete for the transaction to finish. As part of the asset insert, other records such as Cost Lines will need to be inserted.

Custom Business logic, such as Business Rule and workflows, may cause recursion that cancels the transaction, premature or duplicate inserts, transaction time-outs, and many other causes.

In these cases, turning on Session debug, and reproducing the problem insert is usually the quickest way to identify the problem.

Additional Information

KB0712445 Why do Assets get created when inserting a CI that has a Model that is set to Don't create Assets?

Article Information

Last Updated:2019-05-27 08:17:09
Published:2019-05-27