IntegrationHub ETL: How to update list field type?

midjoule
Kilo Sage

Hello,

 

The requirement is to define if a server is monitored and, if it is monitored, we would like to know which monitoring tool is used. In our case, we have 3 monitoring tools : PRTG, SOC, CloudNetCare

Initially (3 years ago), only PRTG was in the scope of the import. At that time, I used IntegrationHub ETL to import the data and update a boolean field (i.e. Monitored = true/false).

 

Today, we want to show the 3 possibilities : is the server monitored by PRTG ? SOC ? CloudNetCare ? Or any combination of the 3 ? Currently, only PRTG is automated. The other monitoring tools are set manually in the attribute of the server. In order to fulfill this requirement, I created a new field of type List (GlideList) : Monitored By. And I added the 3 choices:

midjoule_0-1708668233070.png

 

My challenge is now to update that field with IntegrationHub ETL and keeping any of the other values that might have been added manually. Unfortunately, I only see the possibility to set the value in IntegrationHub ETL in the "Map to CMDB" form (i.e. no scripting available) :

midjoule_1-1708668449724.png

Here, "monitored_by" contains the value "PRTG".

As a result, the existing data of a given server (e.g. PRTG, SOC) is simply overwritten by "PRTG" once the import is completed.

 

Is there a way to manage this requirement with IntegrationHub ETL ?

 

#vancouver, #integrationHub etl, #glidelist

1 ACCEPTED SOLUTION

James Chun
Kilo Patron

Hi @midjoule,

 

I think you should be able to achieve this via some scripting to transform your data.

 

  1. Open your definition in the IntegrationHub ETL guide
  2. Select the "2.Prepare Source Data for Mapping"
  3. Click 'New Transform' button on the top left of the page
  4. Select Multiple input/output script
  5. In the input columns, select 'monitored_by' and your CI identifier field
  6. Create an output column (e.g. transformed_monitored_by)
  7. In the script, use the CI identifier input to find your CI. 
    1. If the CI has 'monitored_by' populated with SOC or PRTG or both, append PRTG
  8. In the 'Map to CMDB' use the new output field created in step 6

Hope that helps!

 

Thanks

 

View solution in original post

6 REPLIES 6

James Chun
Kilo Patron

Hi @midjoule,

 

I think you should be able to achieve this via some scripting to transform your data.

 

  1. Open your definition in the IntegrationHub ETL guide
  2. Select the "2.Prepare Source Data for Mapping"
  3. Click 'New Transform' button on the top left of the page
  4. Select Multiple input/output script
  5. In the input columns, select 'monitored_by' and your CI identifier field
  6. Create an output column (e.g. transformed_monitored_by)
  7. In the script, use the CI identifier input to find your CI. 
    1. If the CI has 'monitored_by' populated with SOC or PRTG or both, append PRTG
  8. In the 'Map to CMDB' use the new output field created in step 6

Hope that helps!

 

Thanks

 

Thanks @James Chun for the proposal. It works perfectly 👍

@midjoule I'm just wondering whether you have your example. We have something similar. Thanks

Hello @newservicenowus ,

Here is how I built it:

1. Retrieve the sys_id of the server and use it to retrieve its Monitored By field value and put it in the temp variable currently_monitored_by:

midjoule_0-1750397512474.png

2. Create a new field in the transform map that stores the final value to be set on the computer:

midjoule_2-1750397869625.png

Hope it helps.

Best regards