Wednesday, September 6, 2023

#987 OIC Integration Dependencies - who calls what?

This is a question I often get asked by customers - "Can I have a report of my integrations, listing their dependencies?"

e.g. Integration 1 invokes ATP and then another integration via local invoke.

Simple with the OIC APIs - let's start with a simple integration flow - 


Here I have a REST Trigger as source and 2 targets - 

1. ATP - Write2ATP
2. LocalAsync3 - Local Invoke

I create an OIC integration that will use the OIC Factory apis to get this information.

Here is the integration I created to retrieve the information - 




This integration invokes the following factory apis - 

























Firstly, Retrieve Integrations - then I take the id returned and use it in Retrieve an Integration

I test the apis in Postman, before implementing the integration - 

Here is an extract from the Retrieve Integrations response - 

As you can see - the connection structure contains the salient info.




But let's use the 2nd api - the key is the id found here - 


So, with this id, I invoke the 2nd api - Retrieve Integration -  

/ic/api/integration/v1/integrations/AA_EF_ASYNC2|01.00.0000?integrationInstance=myOICInstance

Here we get more detail - note the connections structure - this lists the 2 connections explicitly used in the integration, namely the REST Trigger and the ATP invoke. But what about the local invoke? EF_ASYNC2 invokes EF_ASYNC3.

This info is in the endpoints section - 



  Here I see - 















In OIC, COLLOCATED always refers to Local Invoke. Note the name attribute - I set this in the integration to LocalAsync3 - I edit the integration AA_EF_ASYNC2 and change the name to that of the integration being invoked - 






Adhering to such a simple naming convention for local invokes allows me to plot the dependencies using the OIC factory apis. 

My integration simply logs this data, naturally, I could, also write this to a file.






No comments: