SL Functions and Properties
SnapLogic utility functions that provide array manipulation, hostname resolution, and range generation capabilities.
sl.ensureArray
Description: Takes an argument and returns that argument unchanged if it is an array, otherwise it should return the argument in an array.
Syntax:
sl.ensureArray(arg)
Example:
- Expression:
sl.ensureArray([1,2,3])Result: [1,2,3]
sl.gethostbyname
Description: Returns an array of IPv4 or IPv6 addresses for the given hostname or IP address.
Syntax:
sl.gethostbyname(host)
Example:
- Expression:
sl.gethostbyname("www.snaplogic.com")Result:
[ { "address": "54.214.241.155", "family": "ipv4", "hostname": "www.snaplogic.com" } ]
sl.range
Description: This function returns an array of numbers for the given range. If given a single numeric argument, it will return an array containing the numbers from zero up to the given number. Like the Python range() function, you can supply:
- a stopping point,
- a stopping point and a starting point, or
- a starting point, stopping point and a step
Syntax:
sl.range(stop)
sl.range(start, stop)
sl.range(start, stop, step)
Examples:
- Expression:
sl.range(5)Result:
[ 0, 1, 2, 3, 4 ] - Expression:
sl.range(1,6)Result:
[ 1, 2, 3, 4, 5 ] - Expression:
sl.range(0,10,2)Result:
[ 0, 2, 4, 6, 8 ]
sl.zip
Description: This function takes arrays of the same length and returns an array of tuples that contain the values from the input arrays at the same indexes. This works similar to the Python zip() function.
Syntax:
sl.zip([array1], [array2],...)
You can also use field parameters if they contain arrays of the same length, such as sl.zip($Alpha,$Beta).
Example:
- Expression:
sl.zip([1, 2, 3], ['a', 'b', 'c'])Result:
[ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ] ]
sl.zipObject
Description: This function returns an object composed from key-value pairs that accepts two arrays, the first with the properties and the second with values. This works similar to the Lodash zipObject function.
Syntax:
sl.zipObject([props=[]], [values=[]])
You can also use field parameters if they contain arrays of the different lengths, but extra key values are set to null.
Examples:
- Expression:
sl.zipObject([1, 2], ['a', 'b'])Result:
{'1': 'a', '2': 'b'} - Expression:
sl.zipObject([1,2],['a'])Result:
{'1': 'a', '2': null}