0.0.8-2023.1.1 • Published 3 months ago

@itentialopensource/set-operations-for-arrays v0.0.8-2023.1.1

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
3 months ago

Deprecation Notice

This Pre-Built has been deprecated as of 01-15-2024 and will be end of life on 01-15-2025. The capabilities of this Pre-Built have been replaced by the IAP - Data Manipulation

Set Operations for Arrays

Table of Contents

Overview

This JST allows IAP users to do set operations on 2 user provided arrays. The JST removes duplicates from both of the input arrays before processing them and uses the Remove Duplicates from Array Of Objects Or Arrays pre-built for that purpose. Arrays with deeply nested objects are also supported. Please note, the worst case in time complexity for this JST is $O(n^2)$ hence the operation might be slow for sufficiently large datasets.

Installation Prerequisites

Users must satisfy the following prerequisites:

  • Itential Automation Platform: ^2023.1.x

How to Install

To install the pre-built:

  • Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the Prerequisites section.
  • The pre-built can be installed from within App-Admin_Essential. Simply search for the name of your desired pre-built and click the install button.

How to Run

Use the following to run the pre-built: 1. Once the JST is installed as outlined in the How to Install section above, navigate to the section in your workflow where you would like to convert a string to an object and add a JSON Transformation task.

  1. Inside the Transformation task, search for and select setOperationsForArrays (the name of the internal JST).

  2. The inputs to the JST would be the 2 arrays that you want to do the set operations on.

  3. Save your input and the task is ready to run inside of IAP.

Attributes

Attributes for the pre-built are outlined in the following tables.

  1. Input:
  1. Output:

Examples

Examples describing how the pre-built will work for different inputs.

Example 1

Input:

{
  "array1": [1,2,3,4,5],
  "array2": [4,5,6,7,8]
}

Output:

{
  "union": [1,2,3,4,5,6,7,8],
  "array2-array1": [6,7,8],
  "array1-array2": [1,2,3],
  "intersection": [4,5],
  "difference": [1,2,3,6,7,8]
}

Input:

{
  "array1": ["pineapple","banana","apple","grapes"],
  "array2": ["pineapple","banana","mango","orange"]
}

Output:

{
  "union": ["pineapple","banana","apple","grapes","mango","orange"],
  "array2-array1": ["mango","orange"],
  "array1-array2": ["apple","grapes"],
  "intersection": ["pineapple","banana"],
  "difference": ["apple","grapes","mango","orange"]
}

Input:

{
  "array1": [
              [1,3,4],[1,3,4],[1,2],"apple"
            ],
  "array2": [
              [1,3,4],[1,3,5],"apple",99
            ]
}

Output:

{
  "union": [
            [1,3,4],[1,2],"apple",[1,3,5],99
           ],
  "array2-array1": [
                    [1,3,5], 99
                   ],
  "array1-array2": [
                    [1,2]
                   ],
  "intersection": [
                    [1,3,4],"apple"
                  ],
  "difference": [
                  [1,2],[1,3,5],99
                ]
}

Example 4

Input:

{
  "array1": [
    {"1": "1"},
    {"2": "2"},
    {"3": "3"}
  ],
  "array2": [
    {"1": 1},
    {"2": "2"},
    {"4": 4}
  ]
}

Output:

{
"union": [
    {"1": "1"},
    {"2": "2"},
    {"3": "3"},
    {"1": 1},
    {"4": 4}
  ],
  "array2-array1": [
    {"1": 1},
    {"4": 4}
  ],
  "array1-array2": [
    {"1": "1"},
    {"3": "3"}
  ],
  "intersection": [
    {"2": "2"}
  ],
  "difference": [
    {"1": "1"},
    {"3": "3"},
    {"1": 1},
    {"4": 4}
  ]
}

Additional Information

Please use your Itential Customer Success account if you need support when using this Pre-Built Transformation.