Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

IntegrationHUB ETL and business rules on cmdb_rel_ci

Amar_Be
Kilo Sage

Hi,

 

I'm using the IntegrationHub ETL (IHETL) to update CIs and create relationships.

The CIs are updated correctly and the relationships created as expected.

But the Business rules defined on the table cmdb_rel_ci are not triggered by the IHETL when the relationships are created.

 

I've created a very simple test BR that just log the action that triggered the BR.

When the relationships is created manually, the BR is triggered.

When the BR is on a CI class (cmdb_ci_ups, for instance), it is triggered by the IHETL.

But when it is on the CI relationship class, IHETL do not trigger the business rules.

 

I'm on Washington release.

Does anyone have an idea on the cause or solution of this issue?

1 ACCEPTED SOLUTION

I've reached out to ServiceNow Support, and they have directed me to KB0694512 which confirms that this has happened for a long time (since Jakarta in fact), and gives the system property to use to enable workflow.

@Amar_Be I do agree that it seems odd to make it standard behaviour that business rules shouldn't run in this situation, which makes it different to every other situation when a CI relationship record is created/updated/deleted.  But at least there is a workaround we can use if we want.

View solution in original post

10 REPLIES 10

In this case, the ETL map I've built has 2 target CI classes plus one relationship with the 2 CIs as parent and child.  There will be times when there are no changes at all to the actual CIs, but it will create a relationship.  So a BR won't run on either of the CI tables because there are no changes, and also won't run on the cmdb_rel_ci record because of the behaviour you described.  

 

We've decided we don't want to enable workflow using that system property because as you say cmdb_rel_ci typically sees lots of activity, and we don't want to put additional load on our instance.

 

I've done a solution to my particular requirement using a scheduled job instead of the business rule, so we're OK now.  Another possible option was to add code in the "after" script in the CMDB Integration Studio Application Data Source record, to parse the IRE output JSON and identify when a relationship had been created.  But I decided a periodic scheduled job would be easier and adequate for our current requirements.