Binding Event Rules to dynamic CI names

Henrik Jutterst
Tera Guru

I'm trying to create an Event Rule where I should bind to the related Database CI.

The problem is that these CIs have a dynamic name, built up by:
<database>@<instance>@<host>, example myProdDatabase@myInstance01@myHost01 .

I have all the data in the event:
* myProdDatabase
* myInstance01
* myHost01

But when I create my Event Rule and try to bind to the database and name identifier, I was having issue to find the CI, because ServiceNow was not able to use variables in order to have dynamic names in the CI: <database>@<instance>@<host>

Question:
Therefore, is there a way around this when we are using dynamic names on the database CIs?
Or what is the alternatives here? Bind it direct to the Host is not the same really, but yeah..

 

 

HenrikJutterst_0-1698678928970.png

 

 

 

 

Look in the Processing notes on the event:
--------------------------------
Processing notes says:
Binding alert CI process flow:
Binding identification engine error: the input field(s) "name", "instance_name", that the rule "DynamicCIName" specified are empty and therefore no value was found to create the binding.
Run Identification Engine. No matching CI was found. But host was found by Identification Engine.
Identification Engine Errors:
Too many other errors.
In payload missing minimum set of input values for criterion (matching) attributes from identify rule for table [cmdb_ci_db_mssql_instance]. Add these input values in payload item '{"className":"cmdb_ci_db_mssql_instance","values":{"instance_name":null,"sys_class_name":"cmdb_ci_db_mssql_instance"},"internal_id":"1f674522bc46b510023e5205bcfefb2f","sys_object_source_info":{},"settings":{},"sys_ire_info":{},"display_values":{}}'.
Event CI type is empty
No related CI found for binding, alert CI will be bound to node (id): 8eff2432db1fbbc01918d29c6896197f
Bind to 8eff2432db1fbbc01918d29c6896197f

Event rule applied: DynamicCIName
--------------------------------

1 ACCEPTED SOLUTION

Hi Henrik,

 

 I can appreciate wanting to blur out sensitive information - however it would be easier if I had the xml event record to test 🙂 

 

That said, as you know, when using a non-host binding method, you'll remove the Node, give it a class/table to search and then the rule takes into consideration ALL of the variables within Addtional_Info to find a match.

 

If we're trying to match on an attribute that you don't want to use, we can negate the value (remove it from the search criteria) by adding another manual attribute using the variable name only then leave the value blank - it should look something like this ::

 

Screenshot 2023-12-08 at 10.16.04 AM.png

 Let me know if this works for you

View solution in original post

11 REPLIES 11

Henrik Jutterst
Tera Guru

Still looking for an answer to this, but I've submitted an idea about this to the Idea Portal.

Link is found here:

Event Management - Bind CI to Dynamic named CI 

@Henrik Jutterst  Is it possible to concatenate prameter1@prameter2@prameter3 in a temp variable and assign it to name identifier? I'm not sure if there an option in transform and compose alert output, I don't have EM instance to explore.

Alternate option you can populate the CI using Business rule or Flow by setting an unique identifier for these alerts types, create a custom fields to hold the database name/node lookup the respective CMDB DB table for mapping the CI to the Alert?

If my response helps to solve your issue. Kindly mark it as helpful & correct.

Thanks for input.

I'm looking for OOB solution to the question.
Don't want to build BR or Flow. If so, I'll bind to host instead

Ryan Zulli
ServiceNow Employee
ServiceNow Employee

Hi Henrik,

 

Have you tried using CI Field Matching using those variables to build out the name?