Adding More CIs to Incidents

We are using 9.33 with PD4. We are unable to use discovery so all of our CIs and relationships have been added manually. We have an ongoing project to identify the relationships between CIs, but that will not help our immediate need. I need to be able to add multiple CIs to an Incident record so that we can report on all the CIs that were down.

I have searched the forums, but found very little information on anyone else completing this. Any suggestions would be greatly appreciated.

  • When we first started our implementation at the company where I'm working, we barely had a Configuration Management process, let alone using Universal Discovery to discover CIs and relationships, but we had a similar need.  The Incident Management process team wanted a way to identify multiple CIs that were affected within a single Incident ticket.  At first, there wasn't even an ask for these additional CIs to have any kind of relationship to the primary CI in the IM ticket, but that request did come later.

    So, we started by adding an additional array field within the Incident ticket for the additional affected CIs.  Calling it 'affected.cis.array', we created a new section on the IM ticket to display these CIs, created the appropriate link record for performing the Fill.

    Once we started getting relationship data, we simply modified the query in the link record to start at the CI listed in the primary CI field, then query the cirelationship table and display a list of CIs that are upstream or downstream of the CI in the ticket, and allowed for a multi-fill on the field.

    So there's no OOB method for doing what you're asking, but it's not a complicated thing to build.

  • I'm getting a little hung up on the link file. I tried looking at Change since it has an array for the CI's but it doesn't seem to translate well in Probsummary. I can get the first field to fill, but it won't search or allow me to fill any of the other fields in the array. Do you have any suggestions?

  • Verified Answer

    Haven't tried this in 9.4x or greater, so I don't know if the link lines work differently in the newer version.  This works through 9.31

    First, make sure you're actually dealing with an array field.  In the dbdict for your record, you should have something that makes it look like the field is listed twice... like:

    Name                      | Type
    affected.cis.array    | array
       affected.cis.array | character

    If it's not an array field, and you're trying to index it like an array field, you might get unexpected results.

    Assuming your new array field is 'affected.cis.array' your link record would be:

    Field (From/Source): affected.cis.array
    File (To/Target): device
    Format (To/Target): device
    Field (To/Target): logical.name
    Query: $query
    
    Expressions -
    $L.idx = nullsub(cursor.line(1),1)
    if (not (null($L.idx in affected.cis.array in $File))) then ($query="logical.name#\"" $L.idx in affected.cis.array in $File "\"")
    
    Source Field | Target Field
    affected.cis.array | logical.name

    Or, you can share your link record and any error messages or odd behavior you're getting and maybe we'll be able to figure out what's wrong.

  • Verified Answer

    Haven't tried this in 9.4x or greater, so I don't know if the link lines work differently in the newer version.  This works through 9.31

    First, make sure you're actually dealing with an array field.  In the dbdict for your record, you should have something that makes it look like the field is listed twice... like:

    Name                      | Type
    affected.cis.array    | array
       affected.cis.array | character

    If it's not an array field, and you're trying to index it like an array field, you might get unexpected results.

    Assuming your new array field is 'affected.cis.array' your link record would be:

    Field (From/Source): affected.cis.array
    File (To/Target): device
    Format (To/Target): device
    Field (To/Target): logical.name
    Query: $query
    
    Expressions -
    $L.idx = nullsub(cursor.line(1),1)
    if (not (null($L.idx in affected.cis.array in $File))) then ($query="logical.name#\"" $L.idx in affected.cis.array in $File "\"")
    
    Source Field | Target Field
    affected.cis.array | logical.name

    Or, you can share your link record and any error messages or odd behavior you're getting and maybe we'll be able to figure out what's wrong.

  • Verified Answer

    Haven't tried this in 9.4x or greater, so I don't know if the link lines work differently in the newer version.  This works through 9.31

    First, make sure you're actually dealing with an array field.  In the dbdict for your record, you should have something that makes it look like the field is listed twice... like:

    Name                      | Type
    affected.cis.array    | array
       affected.cis.array | character

    If it's not an array field, and you're trying to index it like an array field, you might get unexpected results.

    Assuming your new array field is 'affected.cis.array' your link record would be:

    Field (From/Source): affected.cis.array
    File (To/Target): device
    Format (To/Target): device
    Field (To/Target): logical.name
    Query: $query
    
    Expressions -
    $L.idx = nullsub(cursor.line(1),1)
    if (not (null($L.idx in affected.cis.array in $File))) then ($query="logical.name#\"" $L.idx in affected.cis.array in $File "\"")
    
    Source Field | Target Field
    affected.cis.array | logical.name

    Or, you can share your link record and any error messages or odd behavior you're getting and maybe we'll be able to figure out what's wrong.

  • This worked like a charm. Thank you!