Equivalent to "run business rules" option in robust transformers built with IntegrationHub ETL?

BurtCrepeault
Tera Contributor

Hiyall,

 

I'm building transform maps, one of which is a robust import set transformer.

 

In a regular transform map, there is the "Run business rules" option which is very important that it be unchecked:

BurtCrepeault_0-1709132547690.png

 

However, in a robust import set transformer (built with IntegrationHub ETL), all I have is this, and i'm not finding where I could implement an equivalent:

BurtCrepeault_0-1709133245445.png

 

BurtCrepeault_1-1709132656981.png

 

Either I'm not looking in the right place or there is a way of diabling business rules in before and/or after scripts.

 

Any pointers? Thanks in advance!

4 REPLIES 4

BurtCrepeault
Tera Contributor

Follow-up, but not yet answered:

 

In this doc (ETL Definition Overview), we can clearly see that the "Run business rule" option is available when the Robust Import Set Transformer and ETL Entities are built from scratch.

BurtCrepeault_0-1709134065850.png

 

But, as stated in my original post, I used IntegrationHub ETL to build this particular transformer, and therefore I am not getting the same objects as we see in the article. For instance, I have these entities in the related lists of the transformer:

BurtCrepeault_1-1709134394183.png

 They are called CMDB Integration Studio Entities, and not ETL Entities. Looking in the sys_rte_eb_etl_entity table showed no results on my end.

 

The transformer I built with IntegrationHub ETL is conditional and maps to several classes depending on input data value.

 

I'm going to keep looking for ways to disable business rules with the IntegrationHub ETL version of my transformer, rather than rebuilding it from scratch. The setWorkflow() method of a GlideRecord could help, if I can find where to plug it, right before the insert/update...

 

I'll keep this thread up to date as I go.

In the meantime, I'd appreciate any thoughts.  Cheers!

BurtCrepeault
Tera Contributor

I tried something like this in the Devices Tranformer's Execute After Script:

 

 

(function(ireOutput, ireInput, runId) { 

    var gr; //GlideRecord
    for (var i = 0; i < ireOutput.length; i++) { 
        var output = ireOutput[i]; 
        gr = new GlideRecord(output.className);
        gr.setWorkflow(false);
    } 

})(ireOutput, ireInput, runId);

 

 

 

I didn't think it would work and, well, it didn't. I put a break point on it but I don't think the code even ran.

 

I'm going to leave it at that for now.

James Chun
Kilo Patron

Hi @BurtCrepeault,

 

Interesting question, I have done the research and looked around in the PDI but unfortunately, I couldn't find a solution.

The only explanation I can think of is that since IH ETL uses IRE during the data transformation, it's running some processes in the background. And that's why you can't have the functionality to stop running BR.

 

You might want to raise a Support case, very interested to know how it goes!

 

Cheers

 

 

Hi @James Chun,

 

Thanks for taking the time to check this out.

 

I'm a freelance developer, so I don't yet have access to opening support cases, sorry...

 

I ended up building some detection logic inside the flows that were triggered to end them early. Unfortunately, I was only partially successful with this approach, some conditions cannot be detected once the flow is triggered. If you think of a way to detect that a flow was triggered as a result of an IntegrationHub ETL execution, please let me know 🙂

 

Bonne journée!