Equivalent to "run business rules" option in robust transformers built with IntegrationHub ETL?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-28-2024 07:07 AM - edited 02-28-2024 08:04 AM
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:
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:
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-28-2024 07:55 AM - edited 02-28-2024 08:01 AM
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.
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:
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-28-2024 10:50 AM - edited 02-28-2024 10:52 AM
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-28-2024 12:21 PM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-03-2024 08:21 AM
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!