How to solve Operation against file 'cmdb_rel_ci' was aborted by Business Rule 'Transform synchronously problem?

Todd O
Tera Guru

I'm sending REST API calls to a web service that is attempting to insert a record into the CI Relationship [cmdb_rel_ci] table. In my dev instance, this works fine. I have everything setup in production that exact same way (web service, transform map, onBefore script, etc). However, when I run this in production, I get the following business rule problem.

find_real_file.png

Here is a representation of my data that I'm trying to load.   The names being the same should NOT be causing the problem as this works in dev and the sys_class_names are different so they are in different tables. That is, I have a linux server called server1 and vm instance with same name.   Any ideas would be much appreciated!!!!!

{

  "parent" : "server1",

  "u_child_sys_class_name" : "cmdb_ci_vmware_instance",

  "u_relation_type_name" : "Virtualized by::Virtualizes",

  "u_parent_sys_class_name" : "cmdb_ci_linux_server",

  "child" : "server1"

}

4 REPLIES 4

pankaj_puniani
ServiceNow Employee

Hi Todd,



Looking at error logs, it appears that this error occurs when out of box business rule 'Prevent Recursion in CI Relationships' on table 'cmdb_rel_ci' is triggered. This business rule is triggered when record's child and parent have same value. In your request both child and parent contains value 'server1'. I think this business rule is inactive on your dev but active on production, causing behavior to be different on dev vs prod instances.



Thanks,


Pankaj


HI Pankaj,


I have plenty of examples where the names are different and the sys_id's are different and I still get this same error message.   Here is an example JSON that I sent to the web service I have. I then have an onBefore script that uses this values to lookup both CI's to get sysids as well as the relationship type. I still get this business rule error that doesn't make sense to me. Furthermore, I can create the exact same relationship manually and it works fine. It just gives me this error when pushing it through via REST API. Any help is appreciated. Thanks.


Todd



{


      "parent" : "ABCMAX01-2382",


      "u_child_sys_class_name" : "cmdb_ci_esx_server",


      "u_relation_type_name" : "Provides storage for::Stored on",


      "u_parent_sys_class_name" : "cmdb_ci_storage_volume",


      "child" : "erxc01171"


}



parent sysid: ca1f6cc513dfa680f415345fd144b03b


child sysid: 4e1f6cc513dfa680f415345fd144b03b


Rel type sysid: 4e1f6cc513dfa680f415345fd144b03b



Again, I can add this exact relationship manually with no problems.


Hi Todd,



Did you find the solution for this scenario? I am also facing the same exact issue, just its in a transformation script.



Cheers,


Naveen


Hi Naveen,


It's been quite a while and I don't recall what was causing this but I think the problem went away. Sorry that I don't have a solid answer for you. Maybe try removing all these relationships for the two types causing the issue and then reload. Thanks.


Todd