Creating Software Installation Records

RahulY00040
Tera Contributor

Hello everyone,

 

I’ve come across an interesting integration scenario and would like your input. We are receiving device details along with associated software installation data from a source system. Each device can have 100+ software installations. This data is being ingested into a staging table via the integration.

Our objective is to:

  1. Identify or match the CI using device attributes such as Serial Number, FQDN, and related identifiers.
  2. Once the CI is successfully identified, create the corresponding Software Installation records in the cmdb_sam_sw_install table.

 

 

Since we will have one row per software installation, I want to avoid repeated IRE calls to retrieve the device sys_id for each record. Does anyone have suggestions on how to handle this more efficiently?

My current approach is as follows:

  1. Configure the Import Set to run asynchronously.
  2. Execute a Scheduled Job first to:
    • Group records based on device identifiers such as Serial Number and FQDN.
    • Make a single IRE call per device to retrieve the corresponding sys_id.
    • Update that sys_id on all related rows in the staging table.
  3. Once the above step is completed, trigger the Transform Job to map and insert the data into the target table.

I’d appreciate your review and any feedback or alternative suggestions.

 

Thanks in advance,

R

1 REPLY 1

Naveen20
ServiceNow Employee

Try this approach

Pre-Resolve CIs → Then Transform

  1. Import data into the staging table with async transform disabled (don't auto-transform).

  2. Run a pre-processing Script (Scheduled Job or Fix Script) that:

    • Groups staging rows by device identifier (Serial Number / FQDN).
    • Performs one GlideRecord lookup per unique device against cmdb_ci_computer (use IRE only if you need CI auto-creation).
    • Stamps the resolved sys_id into a u_resolved_ci field on all matching staging rows.
    • Marks each row's u_resolution_status as resolved or not_found.
  3. Trigger the Transform Map which:

    • Filters on u_resolution_status = resolved only.
    • Maps u_resolved_ciinstalled_on in cmdb_sam_sw_install directly — no lookups needed during transform.
    • Rows marked not_found are skipped and available for review/retry.

 If a device has 150 software rows, you make 1 lookup instead of 150. The transform becomes a pure insert operation with zero redundant CI resolution, and unmatched records are cleanly separated for troubleshooting.