Cosmos DB Connector
Documentation
Version: 2
Documentation

Placeholder Functions (For ODBC and Data Gateway)


Most Tools / Programming language supports making SQL Query dynamic. However there will be a time when its not possible or very hard. ZappySys drivers support unique way to make your SQL Query dynamic. You can use Function Placeholders anywhere in the SQL string, URL JOIN or Stored Proc Param usage and it will be replaced before its evaluated by Query Parser.

Content


Introduction


Most Tools / Programming language supports making SQL Query dynamic. However there will be a time when its not possible or very hard. ZappySys drivers support unique way to make your SQL Query dynamic. You can use Function Placeholders anywhere in the SQL string, URL JOIN or Stored Proc Param usage and it will be replaced before its evaluated by Query Parser.

Using Placeholder functions in SQL
For example using placeholder in your SQL as below pass current date / time in yyyy-MM-dd format.

select * from mytable where date='<<yyyy-MM-dd,FUN_GETDATE>>'

Using Placeholder functions in URL JOIN (Example for JSON/XML/CSV Driver)
Here is how you can apply functions to URL join parameters when parent data is passed to child URL. See how we are reading Base64 data and pass it to child URL (after applying FUN_BASE64DEC function).

SELECT b.* FROM $
WITH(
--1st level (root)--
 src='https://zappysys.com/downloads/files/test/nested-base64.xml' 
,filter='$.soap:Envelope.soap:Body'
,alias='a'

--2nd level--
,join1_data='[$a.Result,FUN_BASE64DEC$]'
,join1_ElementsToTreatAsArray='Row'
,join1_filter='$.Data.Row[*]' 
,join1_alias='b' 
)

Using Placeholder functions in Stored Proc Parameter
Here is how you can use function for stored proc parameter.

CREATE PROCEDURE usp_GetOrders
 @Country='UK'
AS
 select * from Orders where Country='<@Country,FUN_TRIM>'

Step-By-Step


In this tutorial we will show you how to use static Placeholders to make things much cleaner and easier. You can pass input values for placeholders by Direct value. Here is just an example of static placeholder.
  1. Firstly, You need to Download and Install ZappySys ODBC PowerPack.
  2. After you install ZappySys ODBC Drivers you can use Driver functionality few ways (see below).
    1. Using ODBC DSN (User level DSN or System level DSN)
    2. Using Direct ODBC Connection String
    3. Connect client app/server from Windows, Linux, Mac OS to ZappySys Data Gateway using Microsoft SQL Server Driver (i.e. JDBC, ODBC, OLEDB ...)

  3. Regardless which method you choose from your App below steps will help you to configure your connectivity in correct way.
    If you choose to connect using direct ConnectionString then also try below Steps to create correct ConnectionString which you can copy from DSN Config Tool and paste inside your App / Programming Language Code.
  4. Type odbcad32.exe in your search box and launch the DSN Config utility.
  5. If you want access for yourself then stay of User DSN Tab. If you want grant access other users then go to System DSN tab. For SQL Server Integration go to System Tab and add new System DSN rather than User DSN. Click New button.
    ZappySys ODBC Driver - Open UI
  6. From the Driver list Select ZappySys ODBC Driver. For this example select [ZappySys JSON Driver].
    ZappySys ODBC Driver - Create JSON Driver
  7. Click on Finish button.
  8. Now, Move in Preview Tab, Enter or Modify query in editor and hit on Preview Button to see value of Placeholder. Use following query for test.
    
    SELECT * FROM $ 
    WITH (SRC='http://httpbin.org/get?mypara=<<ABCDEF123##,FUN_BASE64ENC>>')
    
    For more about function click here.
    Configure JSON Driver for Static Placeholder

Function List


Along with format specifiers you can also use functions. See below list.

Function name Description
FUN_NOW Returns current datetime using default ISO date format or custom format.
Syntax:
<<[output_date_format],FUN_NOW>>
FUN_TODAY Returns today's date using default date format yyyy-MM-dd or you can supply custom format.
Syntax:
<<[output_date_format],FUN_TODAY>>
FUN_TO_DATE This function evaluates date expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).
Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATE>>
FUN_TO_DATETIME This function evaluates date/time expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).
Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATETIME>>
FUN_TO_DATETIME_UTC This function is same as TO_DATETIME except it returns datetime in UTC. It evaluates date/time expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).
Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATETIME_UTC>>
FUN_GETDATE_UTC Returns current datetime in UTC using default ISO date format or custom format.
Syntax:
<<[output_date_format],FUN_GETDATE_UTC>>
FUN_TO_UTC_DATE Converts local date to UTC date (after conversion time portion is removed)
Syntax:
<<input_date_time,FUN_TO_UTC_DATE>>
FUN_TO_UTC_DATETIME Converts local date to UTC date (after conversion time portion is removed)
Syntax:
<<input_date_time,FUN_TO_UTC_DATETIME>>
FUN_TO_LOCAL_DATE Converts UTC datetime to local datetime based on current system timezone (after conversion time portion is removed)
Syntax:
<<input_date_time,FUN_TO_LOCAL_DATE>>
FUN_TO_LOCAL_DATETIME Converts UTC datetime to local datetime (based on current system timezone)
Syntax:
<<input_date_time,FUN_TO_LOCAL_DATETIME>>
FUN_TIMESTAMP_UNIX Converts date/time to Unix TimeStamp which is integer number which represents number of seconds that have passed since January 1, 1970 (the birth of Unix a.k.a. the Unix epoch)
Syntax:
<<[input_date_time],FUN_TIMESTAMP_UNIX>>
FUN_TIMESTAMP_MS_UNIX Converts date/time to Unix TimeStamp which is integer number which represents number of milliseconds that have passed since January 1, 1970 (the birth of Unix a.k.a. the Unix epoch)
Syntax:
<<[input_date_time],FUN_TIMESTAMP_MS_UNIX>>
FUN_UNIX_TIMESTAMP_TO_DATE Converts Unix TimeStamp format to UTC date/time
Syntax:
<<input_unix_timestamp,FUN_UNIX_TIMESTAMP_TO_DATE>>
FUN_UNIX_TIMESTAMP_MS_TO_DATE Converts Unix TimeStamp format to UTC date/time
Syntax:
<<input_unix_timestamp,FUN_UNIX_TIMESTAMP_MS_TO_DATE>>
FUN_TRIM This function trims white spaces (i.e. new line, tab, spaces) around input string.
Syntax:
<<input_text,FUN_TRIM>>
FUN_TRIM_QUOTES This function trims single and double quotes around input string.
Syntax:
<<input_text,FUN_TRIM_QUOTES>>
FUN_UPPER This function returns upper case string.
Syntax:
<<input_text,FUN_UPPER>>
FUN_LOWER This function returns lower case string.
Syntax:
<<input_text,FUN_LOWER>>
FUN_REPLACE Search for sub string and returns a new string with replaced value
Syntax:
<<input_text|~|search_for|~|replace_with|~|is_case_sensitive,FUN_REPLACE>>
FUN_IF_NULL Returns custom string if input value is null else different string with value template (use $1 to reference input value in the return template)
Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_NULL>>
FUN_IF_EMPTY Returns custom string if input value is empty (blank string) else different string with value template (use $1 to reference input value in the return template)
Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_EMPTY>>
FUN_IF_NULL_OR_EMPTY Returns custom string if input value is null or empty else different string with value template (use $1 to reference input value in the return template)
Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_NULL_OR_EMPTY>>
FUN_IF Performs IF condition check on two values, returns match_text or not_match_text argument based on value1 compare with value2 on match_operator (match operation is not case-sensitive by default unless you supply is_case_sensitive argument). If no match found then not_match_text is returned if supplied else error is thrown. Condition match can be equal, contains, greater than, less than, in, between or regular expression.
Syntax:
<<value1|~|match_operator|~|value2|~|match_text|~|not_match_text[|~|is_case_sensitive][|~|encode_function],FUN_IF>>
FUN_IF_REGEX_MATCH Match for regular expression string pattern and return match condition if found else return non match condition
Syntax:
<<input_text|~|search_pattern|~|match_string|~|not_match_string[|~|is_case_sensitive][|~|encode_function][|~|multi_match_separator],FUN_IF_REGEX_MATCH>>
FUN_CASE Returns custom string by matching one or more conditions (CASE statement). If no match found default_value (last argument) is returned if supplied else error is thrown. Condition match can be equal, contains, greater than, less than, in, between or regular expression.
Syntax:
<<input_value|~|condition_1[|~|condition_2][|~|condition_3][|~|...][|~|condition_N][|~|default_value],FUN_CASE>>
FUN_REGEX_REPLACE Search for string pattern using Regular expression and returns a new string with replaced value
Syntax:
<<input_text|~|search_pattern|~|replace_with[|~|is_case_sensitive],FUN_REGEX_REPLACE>>
FUN_REGEX_EXTRACT Returns string match using Regular expression
Syntax:
<<input_text|~|search_pattern[|~|is_case_sensitive][|~|is_required],FUN_REGEX_EXTRACT>>
FUN_MD5 Returns MD5 hash in Base64 format for specified input
Syntax:
<<input_string,FUN_MD5>>
FUN_MD5HEX Returns MD5 hash in Hex format (all Uppercase). To output Hash in base64 use FUN_MD5. To output Hash in lowercase format use FUN_HASH_MD5_HEX
Syntax:
<<input_string,FUN_MD5HEX>>
FUN_FILE_MD5 Returns File content MD5 hash in Base64 format for a specified file path. File content can be text or binary.
Syntax:
<<file_path,FUN_FILE_MD5>>
FUN_FILE_MD5HEX Returns File content MD5 hash in Hex format (rather than Base64) for a specified file path. File content can be text or binary.
Syntax:
<<file_path,FUN_FILE_MD5HEX>>
FUN_FILE_NAME Returns file name from the input file path.
Syntax:
<<file_path,FUN_FILE_NAME>>
FUN_FILE_SIZE Returns file size (in bytes) for a single file or multiple files using wildcard pattern match.
Syntax:
<<file_path_or_pattern,FUN_FILE_SIZE>>
FUN_FILE_SIZE_RECURSIVE Returns file size (in bytes) for a single file or multiple files using wildcard pattern match. This function scans child folders too for wildcard pattern search.
Syntax:
<<file_path_or_pattern,FUN_FILE_SIZE_RECURSIVE>>
FUN_FILE_COUNT Returns total file count for a given wildcard pattern match.
Syntax:
<<file_path_pattern,FUN_FILE_COUNT>>
FUN_FILE_COUNT_RECURSIVE Returns total file count for a given wildcard pattern match. This function scans child folders too for wildcard pattern search.
Syntax:
<<file_path_pattern,FUN_FILE_COUNT_RECURSIVE>>
FUN_FILE_EXITS Returns file(s) exists status (True or False) for a single file or multiple files using wildcard pattern match.
Syntax:
<<file_path_or_pattern,FUN_FILE_EXITS>>
FUN_FILE_EXITS_RECURSIVE Returns file(s) exists status (True or False) for a single file or multiple files using wildcard pattern match. This function scans child folders too for wildcard pattern search.
Syntax:
<<file_path_or_pattern,FUN_FILE_EXITS_RECURSIVE>>
FUN_FILE_EXTENSION Returns file extension for a given file path.
Syntax:
<<file_name_or_path,FUN_FILE_EXTENSION>>
FUN_FILE_ENCODING Returns encoding type from the input file path. Possible return values are: ASCII, UTF8, UTF8WithoutBOM, UTF16, UTF16WithoutBOM, UTF32, UTF32WithoutBOM, UTF7, UTF7WithoutBOM, BigEndian, BigEndianWithoutBOM
Syntax:
<<file_path,FUN_FILE_ENCODING>>
FUN_FILE_ISLOCKED Returns lock status (True or False) from the input file path. If Some Program is locking file then returns True else False.
Syntax:
<<file_path,FUN_FILE_ISLOCKED>>
FUN_FILE_DIRECTORY Returns directory name for a given file path.
Syntax:
<<file_path,FUN_FILE_DIRECTORY>>
FUN_FILE_AGE_CREATE Returns file age in days based on CreationDate of the file. (e.g. If file was created 5 days ago then it returns 5).
Syntax:
<<file_path,FUN_FILE_AGE_CREATE>>
FUN_FILE_AGE_LASTEDIT Returns file age in days based on LastModifiedDate of the file. (e.g. If file was edited 5 days ago then it returns 5).
Syntax:
<<file_path,FUN_FILE_AGE_LASTEDIT>>
FUN_FILE_CREATE_DATE Returns file creation date in ISO date format (i.e. 2021-12-31T23:59:59.123).
Syntax:
<<file_path,FUN_FILE_CREATE_DATE>>
FUN_FILE_LASTEDIT_DATE Returns file last edit date in ISO date format (i.e. 2021-12-31T23:59:59.123).
Syntax:
<<file_path,FUN_FILE_LASTEDIT_DATE>>
FUN_FILE_BASE64ENC Returns BASE64 encoded string of local file content (binary or text).
Syntax:
<<file_path,FUN_FILE_BASE64ENC>>
FUN_FILE_NAME Returns file name from the input file path.
Syntax:
<<file_path,FUN_FILE_NAME>>
FUN_FILE_READ Reads local file and returns content as string
Syntax:
<<file_path,FUN_FILE_READ>>
FUN_FILE_WRITE Write content to a file. Returns file size if successful. If its append mode then returns appended text length.
Syntax:
<<file_path|~|content|~|overwrite|~|append|~|create_target_folder_if_missing|~|encoding,FUN_FILE_WRITE>>
FUN_FILE_WRITE_BINARY Writes input base64 string to a file as decoded binary data. Returns file size if successful. If its append mode then returns appended byte array size.
Syntax:
<<file_path|~|content_base64|~|overwrite|~|append|~|create_target_folder_if_missing,FUN_FILE_WRITE_BINARY>>
FUN_FOLDER_NAME Returns folder name from the path.
Syntax:
<<folder_path,FUN_FOLDER_NAME>>
FUN_FOLDER_SIZE Returns folder size in bytes (including files from sub folders).
Syntax:
<<folder_path,FUN_FOLDER_SIZE>>
FUN_FOLDER_EXITS Returns folder exists status (True or False).
Syntax:
<<folder_path,FUN_FOLDER_EXITS>>
FUN_FOLDER_FILECOUNT Returns file count of a folder (including files from sub folders).
Syntax:
<<folder_path,FUN_FOLDER_FILECOUNT>>
FUN_FOLDER_AGE_CREATE Returns folder age in days based on CreationDate of the folder. (e.g. If folder was created 5 days ago then it returns 5).
Syntax:
<<folder_path,FUN_FOLDER_AGE_CREATE>>
FUN_FOLDER_CREATE_DATE Returns folder creation date in ISO date format (i.e. 2021-12-31T23:59:59.123).
Syntax:
<<folder_path,FUN_FOLDER_CREATE_DATE>>
FUN_HTTP_READ Calls HTTP request and returns response data (text or binary) as string from an URL (Supports GET, POST, PUT with Body/Headers...)
Syntax:
<<url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload],FUN_HTTP_READ>>
FUN_HTTP_READ_BINARY Calls HTTP request and returns response data (text or binary) as Base64 string from an URL (Supports GET, POST, PUT with Body/Headers...)
Syntax:
<<url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload],FUN_HTTP_READ_BINARY>>
FUN_HTTP_WRITE Calls HTTP request and saves response (text or binary) to a local disk file and returns file size in bytes (Supports GET, POST, PUT with Body/Headers...)
Syntax:
<<file_path|~|url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload][|~|overwrite_target][|~|append][|~|create_folder_if_missing][|~|encoding],FUN_HTTP_WRITE>>
FUN_HTTP_WRITE_BINARY Calls HTTP request and saves response (text or binary) to a local disk file and returns file size in bytes (Supports GET, POST, PUT with Body/Headers...)
Syntax:
<<file_path|~|url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload][|~|overwrite_target][|~|append][|~|create_folder_if_missing][|~|encoding],FUN_HTTP_WRITE_BINARY>>
FUN_HASH_MD5 Returns MD5 hash in Base64 format for specified input string
Syntax:
<<input_string,FUN_HASH_MD5>>
FUN_HASH_MD5_HEX Returns MD5 hash in HEX format for specified input string. To output hash in Base64 use HASH_MD5 function.
Syntax:
<<input_string,FUN_HASH_MD5_HEX>>
FUN_HASH_FILE_MD5 Returns MD5 hash in Base64 format for specified input file
Syntax:
<<input_file,FUN_HASH_FILE_MD5>>
FUN_HASH_FILE_MD5_HEX Returns MD5 hash in HEX format for specified input file. To output hash in Base64 use HASH_MD5 function.
Syntax:
<<input_file,FUN_HASH_FILE_MD5_HEX>>
FUN_HASH_SHA1 Returns SHA1 hash in Base64 format for specified input string
Syntax:
<<input_string,FUN_HASH_SHA1>>
FUN_HASH_SHA1_HEX Returns SHA1 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA1 function.
Syntax:
<<input_string,FUN_HASH_SHA1_HEX>>
FUN_HASH_SHA256 Returns SHA256 hash in Base64 format for specified input string
Syntax:
<<input_string,FUN_HASH_SHA256>>
FUN_HASH_SHA256_HEX Returns SHA256 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA256 function.
Syntax:
<<input_string,FUN_HASH_SHA256_HEX>>
FUN_HASH_FILE_SHA256 Returns SHA256 hash in Base64 format for specified input file
Syntax:
<<input_file,FUN_HASH_FILE_SHA256>>
FUN_HASH_FILE_SHA256_HEX Returns SHA256 hash in HEX format for specified input file. To output hash in Base64 use HASH_SHA256 function.
Syntax:
<<input_file,FUN_HASH_FILE_SHA256_HEX>>
FUN_HASH_SHA512 Returns SHA512 hash in Base64 format for specified input string
Syntax:
<<input_string,FUN_HASH_SHA512>>
FUN_HASH_SHA512_HEX Returns SHA512 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA512 function.
Syntax:
<<input_string,FUN_HASH_SHA512_HEX>>
FUN_HMAC_MD5 Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the MD5 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_MD5>>
FUN_HMAC_SHA1 Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA1 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA1>>
FUN_HMAC_SHA256 Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA256 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA256>>
FUN_HMAC_SHA384 Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA384 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384>>
FUN_HMAC_SHA384 Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA512 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384>>
FUN_HMAC_MD5_HEX Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the MD5 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_MD5_HEX>>
FUN_HMAC_SHA1_HEX Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA1 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA1_HEX>>
FUN_HMAC_SHA256_HEX Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA256 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA256_HEX>>
FUN_HMAC_SHA384_HEX Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA384 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384_HEX>>
FUN_HMAC_SHA512_HEX Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA512 hash function (Hash input data using user defined secret key)
Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA512_HEX>>
FUN_JSONENC Encodes string for JSON value (e.g. {NEWLINE} is replaced to \r\n, double quote to \", {TAB} to \\t )
Syntax:
<<input_string,FUN_JSONENC>>
FUN_JSONDEC Decodes JSON string (e.g. \r\n is replaced to {NEWLINE}, \" to double quote, \\t to {TAB})
Syntax:
<<input_string,FUN_JSONDEC>>
FUN_JSON_TO_TEXT Extracts Text from JSON array using JSON Path expression. You can specify expression like $.data[*] or $.data[*].email. If document is Array (i.e. starts with [ ) then root is referred as $.data[*]
Syntax:
<<input_json|~|json_path[|~|separator][|~|throw_error_if_nomatch],FUN_JSON_TO_TEXT>>
FUN_XMLENC Encodes plain text to XML encoded value (e.g. > is replaced to > and < is replaced to < )
Syntax:
<<input_string,FUN_XMLENC>>
FUN_XMLDEC Decodes XML value to plain text (e.g. > is replaced to > and < is replaced to < )
Syntax:
<<input_string,FUN_XMLDEC>>
FUN_XML_TO_TEXT Extracts Text from XML using XPath expression. You can specify expression like /data/rows/row[0]/@name
Syntax:
<<input_xml|~|xml_path[|~|separator]|~|indent,FUN_XML_TO_TEXT>>
FUN_URLENC Encodes input string to percentage encoding format for URL (e.g. A&B is encoded to A%26B)
Syntax:
<<input_string,FUN_URLENC>>
FUN_URLDEC Decodes url encoded value to plain text
Syntax:
<<input_string,FUN_URLDEC>>
FUN_URLENCDATA Encodes input string to percentage encoding format for URL using exact same rules as FUN_URLENCDATA except space is encoded as %20 rather than +
Syntax:
<<input_string,FUN_URLENCDATA>>
FUN_NEW_GUID Creates a new unique GUID
Syntax:
<<[format],FUN_NEW_GUID>>
FUN_SEQUENCE Returns a number in a sequence (adds +1 in last number)
Syntax:
<<[seed_number],FUN_SEQUENCE>>
FUN_RANDOM_INT Generates a random integer from 1 to given max range
Syntax:
<<[max_number],FUN_RANDOM_INT>>
FUN_RANDOM_STR Generates a random string
Syntax:
<<[max_length],FUN_RANDOM_STR>>
FUN_BASE64ENC Encodes input string to BASE64 format
Syntax:
<<input_text,FUN_BASE64ENC>>
FUN_BASE64DEC Decodes base64 encoded string to plain text
Syntax:
<<input_text,FUN_BASE64DEC>>

Date Time Formatting


You can use DateTime format specifiers like below as long as DataType is DateTime. Click here to see full list of datetime format specifiers. Click Here to see list of predefined standard date time formats.

Example Sample Output
<<yyyy,FUN_TODAY>>
2016
<<yyyyMMdd,FUN_TODAY>>
20161231
<<MMM dd, yyyy,FUN_TODAY>>
Dec 31, 2016
<<MMMM dd, yyyy,FUN_TODAY>>
December 31, 2016
<<yyyy-MM-ddTHH:mm:ss.fffZ,FUN_TODAY>>
2016-12-31T23:59:59.999Z
<<yyy-MM-dd hh:mm:ss tt,FUN_TODAY>>
2016-12-31 11:59:59 PM

Date/Time Functions

FUN_NOW

Syntax:
<<[output_date_format],FUN_NOW>>
Returns current datetime using default ISO date format or custom format.

Parameters:

NameDescription
output_date_format (Optional)[String] Custom date format. If not supplied default ISO date format (yyyy-MM-ddTHH:mm:ss) is used. For more information about custom date format specifiers check this link https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms

Examples:

ExampleSample OutputDescription
<<FUN_NOW>>
2020-01-31T23:59:59
<<FUN_GETDATE>>
2020-01-31T23:59:59
<<yyyy-MM-dd,FUN_NOW>>
2020-01-31
<<yyyy-MM-dd HH:mm.fff,FUN_NOW>>
2020-01-31 23:59.999
<<yyyy, MMM dd,FUN_NOW>>
2021, Mar 07
<<yyyy-MM-dd hh:mm tt,FUN_NOW>>
2020-01-31 11:59 PM
<<unix_timestamp,FUN_NOW>>
1640210107
Outputs data in Unix Epoch format (numeric timestamp). Assuming now is 22-Dec-2021 21:55:07 GMT
<<unix_timestamp_ms,FUN_NOW>>
1640210107000
Outputs data in Unix Epoch format (numeric timestamp with milliseconds). Assuming now is 22-Dec-2021 21:55:07 GMT

FUN_TODAY

Syntax:
<<[output_date_format],FUN_TODAY>>
Returns today's date using default date format yyyy-MM-dd or you can supply custom format.

Parameters:

NameDescription
output_date_format (Optional)[String] Custom date format. If not supplied default ISO date format (yyyy-MM-dd) is used. For more information about custom date format specifiers check this link https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms

Examples:

ExampleSample OutputDescription
<<FUN_TODAY>>
2020-01-31
<<yyyy, MMM dd,FUN_TODAY>>
2021, Mar 07
<<yyyy-MM-dd hh:mm tt,FUN_TODAY>>
2020-01-31 11:59 PM
<<unix_timestamp,FUN_TODAY>>
1615179600
Outputs data in Unix Epoch format (numeric timestamp). Assuming today is 2021-03-08T17:50:33

FUN_TO_DATE

Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATE>>
This function evaluates date expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).

Parameters:

NameDescription
expression[String] This expression can be in the form of [function_name][+/-][interval][+/-][interval].... For example to get Last date of previous month you can do "monthend-1d". To get yesterday's date you can just type "yesterday". Valid date function names for this expression are [ now | today | yesterday | weekstart | weekend | monthstart | monthend | yearstart | yearend ].
Valid interval names are [ms (for milliseconds) | s OR sec | min | h OR hour | y OR year | d OR day |m OR month | y OR year]
output_date_format (Optional)[String] Output format of date/time. e.g. yyyy-MM-dd HH:mm:ss.fff. Default format is yyyy-MM-dd. For more information on possible date format specifier check this https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms
input_datetime (Optional)[String] Date or Datetime for which you like to evaluate expression. If you do not supply this then current date is used as input for expression.
return_staticvalue_on_bad_expression (Optional)[Boolean] Set this argument if you wish to skip format / expression evaluation if input expression value is static date/time or bad value. By default if expression is bad then current date is used and format is applied.

Examples:

ExampleSample OutputDescription
<<today,FUN_TO_DATE>>
2020-01-31
Outputs today's date using default date format (i.e. yyyy-MM-dd)
<<today||yyyyMMdd,FUN_TO_DATE>>
20200131
Outputs today's date using custom date format yyyyMMdd
<<now||yyyy-MM-dd HH:mm:ss.fff,FUN_TO_DATE>>
2020-01-31 23:59:59.123
Outputs current datetime using custom date format
<<today-5d,FUN_TO_DATE>>
2020-01-26
Subtract 5 days from today's date
<<today-5d+1y,FUN_TO_DATE>>
2020-01-26
Subtract 5 days from today's date and then add 1 year
<<today+5d,FUN_TO_DATE>>
2020-02-05
Adds 5 days to today's date
<<-5d||yyyMMdd||2020-01-01,FUN_TO_DATE>>
20191227
Subtract 5 days from input date 2020-01-01 and output using custom date format yyyyMMdd
<<+2m||yyyMMdd||2020-01-01,FUN_TO_DATE>>
20200201
Adds 2 month in input date 2020-01-01 and output using custom date format yyyyMMdd
<<today-1y,FUN_TO_DATE>>
2019-01-31
Subtract one year from today's date
<<monthstart+3d,FUN_TO_DATE>>
2020-01-03
Adds 3 days to current month start date
<<monthend+2d,FUN_TO_DATE>>
2020-02-02
Adds 3 days to current month end date
<<yearstart+1y,FUN_TO_DATE>>
2021-01-01
Outputs next year's start date (Adds one year to current year's start date)
<<yearend+1y,FUN_TO_DATE>>
2021-12-31
Outputs next year's end date (Adds one year to current year's end date)
<<weekstart+1y,FUN_TO_DATE>>
2021-01-01
Outputs next year's start date
<<yesterday||yyyMMdd,FUN_TO_DATE>>
20200131
Outputs yesterday's date using custom date format yyyyMMdd
<<now||unix_timestamp,FUN_TO_DATE>>
1640210107
Outputs data in Unix Epoch format (numeric timestamp). Assuming now is 22 Dec 2021 21:55:07 GMT
<<now||unix_timestamp_ms,FUN_TO_DATE>>
1640210107000
Outputs data in Unix Epoch format (numeric timestamp with milliseconds). Assuming now is 22 Dec 2021 21:55:07.000 GMT
<<some-bad-expression,FUN_TO_DATE>>
2020-01-31
When bad input supplied it returns today's date using default date format (i.e. yyyy-MM-dd)
<<some-bad-expression||yyyy MM dd,FUN_TO_DATE>>
2020 01 31
When bad input supplied alog with custom format, it returns today's date using custom format (i.e. yyyy MM dd in this example)
<<some-bad-expression||yyyy MM dd||1900-01-01||true,FUN_TO_DATE>>
1900-01-01
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is
<<some-bad-expression||yyyy MM dd||||true,FUN_TO_DATE>>
some-bad-expression
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is
<<2020-01-31,FUN_TO_DATE>>
2020-01-31
When a valid date/time supplied it returns the same date time in default format default date format (i.e. yyyy-MM-dd)
<<2020-01-31T23:59:59||yyyy MM dd HH mm ss,FUN_TO_DATE>>
2020 01 31 23 59 59
When a valid date/time supplied it returns the same date time using requested format. If format is not supplied then default date format is used (i.e. yyyy-MM-dd)

FUN_TO_DATETIME

Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATETIME>>
This function evaluates date/time expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).

Parameters:

NameDescription
expression[String] This expression can be in the form of [function_name][+/-][interval][interval][+/-][interval]... For example to get Last date of previous month you can do "monthend-1d". To get yesterday's date you can just type "yesterday". Valid date function names for this expression are [ now | today | yesterday | weekstart | weekend | monthstart | monthend | yearstart | yearend ].
Valid interval names are [ms (for milliseconds) | s OR sec | min | h OR hour | y OR year | d OR day |m OR month | y OR year]
output_date_format (Optional)[String] Output format of date/time. e.g. yyyy-MM-dd HH:mm:ss.fff. Default format is yyyy-MM-ddTHH:mm:ss. For more information on possible date format specifier check this https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms
input_datetime (Optional)[String] Date or Datetime for which you like to evaluate expression. If you do not supply this then current date is used as input for expression.
return_staticvalue_on_bad_expression (Optional)[Boolean] Set this argument if you wish to skip format / expression evaluation if input expression value is static date/time or bad value. By default if expression is bad then current date is used and format is applied.

Examples:

ExampleSample OutputDescription
<<today,FUN_TO_DATETIME>>
2020-01-31T00:00:00
Outputs today's date using default date format (i.e. yyyy-MM-ddTHH:mm:ss)
<<now,FUN_TO_DATETIME>>
2020-01-31T23:59:59
Outputs current datetime using default date format (i.e. yyyy-MM-ddTHH:mm:ss)
<<now-5h,FUN_TO_DATETIME>>
2020-01-31T18:59:59
Subtract 5 hours from current time and outputs using default date format
<<today||yyyyMMdd,FUN_TO_DATETIME>>
20200131
Outputs today's date using custom date format yyyyMMdd
<<now||yyyy-MM-dd HH:mm:ss.fff,FUN_TO_DATETIME>>
2020-01-31 23:59:59.123
Outputs current datetime using custom date format
<<today-5d,FUN_TO_DATETIME>>
2020-01-26T00:00:00
Subtract 5 days from today's date
<<today-5d+1y,FUN_TO_DATETIME>>
2020-01-26T00:00:00
Subtract 5 days from today's date and then add 1 year
<<today+5d,FUN_TO_DATETIME>>
2020-02-05T00:00:00
Adds 5 days to today's date
<<-5d||yyyMMdd||2020-01-01,FUN_TO_DATETIME>>
20191227
Subtract 5 days from input date 2020-01-01 and output using custom date format yyyyMMdd
<<+2m||yyyMMdd||2020-01-01,FUN_TO_DATETIME>>
20200201
Adds 2 month in input date 2020-01-01 and output using custom date format yyyyMMdd
<<today-1y,FUN_TO_DATETIME>>
2019-01-31T00:00:00
Subtract one year from today's date
<<monthstart+3d,FUN_TO_DATETIME>>
2020-01-03T00:00:00
Adds 3 days to current month start date
<<monthend+2d,FUN_TO_DATETIME>>
2020-02-02T00:00:00
Adds 3 days to current month end date
<<yearstart+1y,FUN_TO_DATETIME>>
2021-01-01T00:00:00
Outputs next year's start date (Adds one year to current year's start date)
<<yearend+1y,FUN_TO_DATETIME>>
2021-12-31T00:00:00
Outputs next year's end date (Adds one year to current year's end date)
<<weekstart+1y,FUN_TO_DATETIME>>
2021-01-01T00:00:00
Outputs next year's start date
<<yesterday||yyyMMdd,FUN_TO_DATETIME>>
20200131
Outputs yesterday's date using custom date format yyyyMMdd
<<now||unix_timestamp,FUN_TO_DATETIME>>
1640210107
Outputs data in Unix Epoch format (numeric timestamp). Assuming now is 22 Dec 2021 21:55:07 GMT
<<now||unix_timestamp_ms,FUN_TO_DATETIME>>
1640210107000
Outputs data in Unix Epoch format (numeric timestamp with milliseconds). Assuming now is 22 Dec 2021 21:55:07.000 GMT
<<some-bad-expression,FUN_TO_DATETIME>>
2020-01-31
When bad input supplied it returns today's date using default date format (i.e. yyyy-MM-dd)
<<some-bad-expression||yyyy MM dd,FUN_TO_DATETIME>>
2020 01 31
When bad input supplied alog with custom format, it returns today's date using custom format (i.e. yyyy MM dd in this example)
<<some-bad-expression||yyyy MM dd||1900-01-01||true,FUN_TO_DATETIME>>
1900-01-01
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is
<<some-bad-expression||yyyy MM dd||||true,FUN_TO_DATETIME>>
some-bad-expression
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is

FUN_TO_DATETIME_UTC

Syntax:
<<expression[|~|output_date_format][|~|input_datetime][|~|return_staticvalue_on_bad_expression],FUN_TO_DATETIME_UTC>>
This function is same as TO_DATETIME except it returns datetime in UTC. It evaluates date/time expression for known values (i.e. today/yesterday keywords) or can be applied on user defined date/time. It can add / subtract interval from date (e.g. today+3y, now-2m, weekstart+1d, +2h, +3d).

Parameters:

NameDescription
expression[String] This expression can be in the form of [function_name][+/-][interval]. For example to get Last date of previous month you can do "monthend-1d". To get yesterday's date you can just type "yesterday". Valid date function names for this expression are [ now | today | yesterday | weekstart | weekend | monthstart | monthend | yearstart | yearend ].
Valid interval names are [ms (for milliseconds) | s OR sec | min | h OR hour | y OR year | d OR day |m OR month | y OR year]
output_date_format (Optional)[String] Output format of date/time. e.g. yyyy-MM-dd HH:mm:ss.fff. Default format is yyyy-MM-ddTHH:mm:ss. For more information on possible date format specifier check this https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms
input_datetime (Optional)[String] Date or Datetime for which you like to evaluate expression. If you do not supply this then current date is used as input for expression.
return_staticvalue_on_bad_expression (Optional)[Boolean] Set this argument if you wish to skip format / expression evaluation if input expression value is static date/time or bad value. By default if expression is bad then current date is used and format is applied.

Examples:

ExampleSample OutputDescription
<<today,FUN_TO_DATETIME_UTC>>
2020-01-31T00:00:00
Outputs today's date using default date format (i.e. yyyy-MM-ddTHH:mm:ss)
<<now,FUN_TO_DATETIME_UTC>>
2020-01-31T23:59:59
Outputs current datetime using default date format (i.e. yyyy-MM-ddTHH:mm:ss)
<<now-5h,FUN_TO_DATETIME_UTC>>
2020-01-31T18:59:59
Subtract 5 hours from current time and outputs using default date format
<<today||yyyyMMdd,FUN_TO_DATETIME_UTC>>
20200131
Outputs today's date using custom date format yyyyMMdd
<<now||yyyy-MM-dd HH:mm:ss.fff,FUN_TO_DATETIME_UTC>>
2020-01-31 23:59:59.123
Outputs current datetime using custom date format
<<today-5d,FUN_TO_DATETIME_UTC>>
2020-01-26T00:00:00
Subtract 5 days from today's date
<<today+5d,FUN_TO_DATETIME_UTC>>
2020-02-05T00:00:00
Adds 5 days to today's date
<<-5d||yyyMMdd||2020-01-01,FUN_TO_DATETIME_UTC>>
20191227
Subtract 5 days from input date 2020-01-01 and output using custom date format yyyyMMdd
<<+2m||yyyMMdd||2020-01-01,FUN_TO_DATETIME_UTC>>
20200201
Adds 2 month in input date 2020-01-01 and output using custom date format yyyyMMdd
<<today-1y,FUN_TO_DATETIME_UTC>>
2019-01-31T00:00:00
Subtract one year from today's date
<<monthstart+3d,FUN_TO_DATETIME_UTC>>
2020-01-03T00:00:00
Adds 3 days to current month start date
<<monthend+2d,FUN_TO_DATETIME_UTC>>
2020-02-02T00:00:00
Adds 3 days to current month end date
<<yearstart+1y,FUN_TO_DATETIME_UTC>>
2021-01-01T00:00:00
Outputs next year's start date (Adds one year to current year's start date)
<<yearend+1y,FUN_TO_DATETIME_UTC>>
2021-12-31T00:00:00
Outputs next year's end date (Adds one year to current year's end date)
<<weekstart+1y,FUN_TO_DATETIME_UTC>>
2021-01-01T00:00:00
Outputs next year's start date
<<yesterday||yyyMMdd,FUN_TO_DATETIME_UTC>>
20200131
Outputs yesterday's date using custom date format yyyyMMdd
<<now||unix_timestamp,FUN_TO_DATETIME_UTC>>
1640210107
Outputs data in Unix Epoch format (numeric timestamp). Assuming now is 22 Dec 2021 21:55:07 GMT
<<now||unix_timestamp_ms,FUN_TO_DATETIME_UTC>>
1640210107000
Outputs data in Unix Epoch format (numeric timestamp with milliseconds). Assuming now is 22 Dec 2021 21:55:07.000 GMT
<<some-bad-expression,FUN_TO_DATETIME_UTC>>
2020-01-31
When bad input supplied it returns today's date using default date format (i.e. yyyy-MM-dd)
<<some-bad-expression||yyyy MM dd,FUN_TO_DATETIME_UTC>>
2020 01 31
When bad input supplied alog with custom format, it returns today's date using custom format (i.e. yyyy MM dd in this example)
<<some-bad-expression||yyyy MM dd||1900-01-01||true,FUN_TO_DATETIME_UTC>>
1900-01-01
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is
<<some-bad-expression||yyyy MM dd||||true,FUN_TO_DATETIME_UTC>>
some-bad-expression
When bad expression supplied along with return_staticvalue_on_bad_expression parameter it will return input_value if supplied else bad expression value as is

FUN_GETDATE_UTC

Syntax:
<<[output_date_format],FUN_GETDATE_UTC>>
Returns current datetime in UTC using default ISO date format or custom format.

Parameters:

NameDescription
output_date_format (Optional)[String] Custom date format. If not supplied default ISO date format (yyyy-MM-ddTHH:mm:ssZ) is used. Notice that default date format ends with Z to indicate UTC time. For more information about custom date format specifiers check this link https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings You can also output in Unix Timestamp format by using format specifier unix_timestamp --OR-- unix_timestamp_ms

Examples:

ExampleSample OutputDescription
<<FUN_GETDATE_UTC>>
2020-01-31T23:59:59Z
<<yyyy-MM-dd,FUN_GETDATE_UTC>>
2020-01-31
<<yyyy-MM-dd HH:mm.fff,FUN_GETDATE_UTC>>
2020-01-31 23:59.999
<<yyyy, MMM dd,FUN_GETDATE_UTC>>
2021, Mar 07
<<yyyy-MM-dd hh:mm tt,FUN_GETDATE_UTC>>
2020-01-31 11:59 PM
<<unix_timestamp,FUN_GETDATE_UTC>>
1615179600
Outputs data in Unix Epoch format (numeric timestamp). Assuming today is 2021-03-08T17:50:33

FUN_TO_UTC_DATE

Syntax:
<<input_date_time,FUN_TO_UTC_DATE>>
Converts local date to UTC date (after conversion time portion is removed)

Parameters:

NameDescription
input_date_time[DateTime] Datetime you like to convert to UTC date

Examples:

ExampleSample OutputDescription
<<2021-01-01,FUN_TO_UTC_DATE>>
2020-12-31
Updated date after converting local time to UTC (+5:00 timezone converted to UTC)

FUN_TO_UTC_DATETIME

Syntax:
<<input_date_time,FUN_TO_UTC_DATETIME>>
Converts local date to UTC date (after conversion time portion is removed)

Parameters:

NameDescription
input_date_time[String] Datetime you like to convert to UTC date

Examples:

ExampleSample OutputDescription
<<2020-12-31T23:00:00,FUN_TO_UTC_DATETIME>>
2021-01-01T04:00:00Z
Example of time conversion to UTC for -5:00 timezone
<<2021-01-01T00:00:00,FUN_TO_UTC_DATETIME>>
2020-12-31T20:00:00Z
Example of time conversion to UTC for +5:00 timezone
<<2021-01-01,FUN_TO_UTC_DATETIME>>
2021-01-01T05:00:00Z
Example of time conversion to UTC for -5:00 timezone (EST)

FUN_TO_LOCAL_DATE

Syntax:
<<input_date_time,FUN_TO_LOCAL_DATE>>
Converts UTC datetime to local datetime based on current system timezone (after conversion time portion is removed)

Parameters:

NameDescription
input_date_time[String] Datetime you like to convert to UTC date

Examples:

ExampleSample OutputDescription
<<2020-12-31T23:00:00,FUN_TO_LOCAL_DATE>>
2021-01-01
Example of time conversion to UTC for -5:00 timezone
<<2021-01-01T00:00:00,FUN_TO_LOCAL_DATE>>
2020-12-31
Example of time conversion to UTC for +5:00 timezone
<<2021-01-01,FUN_TO_LOCAL_DATE>>
2020-12-31
Example of time conversion to UTC for +5:00 timezone

FUN_TO_LOCAL_DATETIME

Syntax:
<<input_date_time,FUN_TO_LOCAL_DATETIME>>
Converts UTC datetime to local datetime (based on current system timezone)

Parameters:

NameDescription
input_date_time[String] UTC Datetime you like to convert to local time

Examples:

ExampleSample OutputDescription
<<2020-12-31T23:00:00,FUN_TO_LOCAL_DATETIME>>
2021-01-01T04:00:00
Example of time conversion to UTC for -5:00 timezone
<<2021-01-01T00:00:00,FUN_TO_LOCAL_DATETIME>>
2020-12-31T20:00:00
Example of time conversion to UTC for +5:00 timezone
<<2021-01-01,FUN_TO_LOCAL_DATETIME>>
2020-12-31
Example of time conversion to UTC for +5:00 timezone

FUN_TIMESTAMP_UNIX

Syntax:
<<[input_date_time],FUN_TIMESTAMP_UNIX>>
Converts date/time to Unix TimeStamp which is integer number which represents number of seconds that have passed since January 1, 1970 (the birth of Unix a.k.a. the Unix epoch)

Parameters:

NameDescription
input_date_time (Optional)[DateTime] Input date/time which you like to convert to Unix Timestamp

Examples:

ExampleSample OutputDescription
<<FUN_TIMESTAMP_UNIX>>
1615225833 (assuming System Clock was 2021-03-08T12:50:33 EST -5:00)
Unix Timestamp generated based on current time
<<2020-01-01T00:00:00,FUN_TIMESTAMP_UNIX>>
1577854800
Unix Timestamp is generated for user defined date time (System setting EST -5:00 timezone). By default input date is treated as Local time so its always converted to UTC before generating Timestamp.
<<2020-01-01,FUN_TIMESTAMP_UNIX>>
1577854800
Unix Timestamp is generated for user defined date time (System setting EST -5:00 timezone). Only date supplied (Time part is 00:00:00)
<<2020-01-01T00:00:00Z,FUN_TIMESTAMP_UNIX>>
1577836800
Unix Timestamp is generated for user defined date time which is marked as UTC date (Z suffix at the end).

FUN_TIMESTAMP_MS_UNIX

Syntax:
<<[input_date_time],FUN_TIMESTAMP_MS_UNIX>>
Converts date/time to Unix TimeStamp which is integer number which represents number of milliseconds that have passed since January 1, 1970 (the birth of Unix a.k.a. the Unix epoch)

Parameters:

NameDescription
input_date_time (Optional)[DateTime] Input date/time which you like to convert to Unix Timestamp

Examples:

ExampleSample OutputDescription
<<FUN_TIMESTAMP_MS_UNIX>>
1577905199123 (assuming System Clock was 2020-01-01T13:59:59.123 EST -5:00)
Unix Timestamp generated based on current time
<<2020-01-01T13:59:59.123,FUN_TIMESTAMP_MS_UNIX>>
1577941199123
Unix Timestamp is generated for user defined date time (System setting EST -5:00 timezone). By default input date is treated as Local time so its always converted to UTC before generating Timestamp.
<<2020-01-01,FUN_TIMESTAMP_MS_UNIX>>
1577854800000
Unix Timestamp is generated for user defined date time (System setting EST -5:00 timezone). Only date supplied (Time part is 00:00:00)
<<2020-01-01T13:59:59.123Z,FUN_TIMESTAMP_MS_UNIX>>
1577887199123
Unix Timestamp is generated for user defined date time which is marked as UTC date (Z suffix at the end).

FUN_UNIX_TIMESTAMP_TO_DATE

Syntax:
<<input_unix_timestamp,FUN_UNIX_TIMESTAMP_TO_DATE>>
Converts Unix TimeStamp format to UTC date/time

Parameters:

NameDescription
input_unix_timestamp[Int32] Input Unix timestamp which you like to convert to datetime. Milliseconds part is not included in the output. Long timestamp format (e.g. 1615225833123) may not throw error but will produce bad output.

Examples:

ExampleSample OutputDescription
<<1615225833,FUN_UNIX_TIMESTAMP_TO_DATE>>
2021-03-08T17:50:33
OK - Just datetime (no milliseconds)
<<1615225833123,FUN_UNIX_TIMESTAMP_TO_DATE>>
2021-03-08T17:50:33
ERROR - Out of range. Long timestamp (with milliseconds) not allowed (if you like to use this format use FUN_UNIX_TIMESTAMP_MS_TO_DATE function instead)
<<1615225833.123,FUN_UNIX_TIMESTAMP_TO_DATE>>
2021-03-08T17:50:33
OK - Milliseconds in decimal part processed but not displayed.
<<1.615225833123E9,FUN_UNIX_TIMESTAMP_TO_DATE>>
2021-03-08T17:50:33
OK - Milliseconds in decimal part represented as scientific notation processed but not displayed.

FUN_UNIX_TIMESTAMP_MS_TO_DATE

Syntax:
<<input_unix_timestamp,FUN_UNIX_TIMESTAMP_MS_TO_DATE>>
Converts Unix TimeStamp format to UTC date/time

Parameters:

NameDescription
input_unix_timestamp[Int64] Input Unix timestamp which you like to convert to datetime. Use scientific notation (double type) or use floating point after timestamp to produce milliseconds in the output.

Examples:

ExampleSample OutputDescription
<<1577941199123,FUN_UNIX_TIMESTAMP_MS_TO_DATE>>
2020-01-02T04:59:59.123
Milliseconds in integer part
<<1577941199.123,FUN_UNIX_TIMESTAMP_MS_TO_DATE>>
2020-01-02T04:59:59.123
Milliseconds in decimal part
<<1.577941199123E9,FUN_UNIX_TIMESTAMP_MS_TO_DATE>>
2020-01-02T04:59:59.123
Milliseconds in decimal part represented as scientific notation

String Functions

FUN_TRIM

Syntax:
<<input_text,FUN_TRIM>>
This function trims white spaces (i.e. new line, tab, spaces) around input string.

Parameters:

NameDescription
input_text[String] Input string which you want to trim.

Examples:

ExampleSample OutputDescription
<<  ABCD  ,FUN_TRIM>>
ABCD
<<ABCD  ,FUN_TRIM>>
ABCD

FUN_TRIM_QUOTES

Syntax:
<<input_text,FUN_TRIM_QUOTES>>
This function trims single and double quotes around input string.

Parameters:

NameDescription
input_text[String] Input string for which you want to trim quotes.

Examples:

ExampleSample OutputDescription
<<'ABCD',FUN_TRIM_QUOTES>>
ABCD
Trim single quotes
<<"ABCD",FUN_TRIM_QUOTES>>
ABCD
Trim double quotes
<<"'ABCD'",FUN_TRIM_QUOTES>>
ABCD
Trim single and double quotes
<<"""ABCD""",FUN_TRIM_QUOTES>>
ABCD
Trim many quotes
<<     """ABCD"""     ,FUN_TRIM_QUOTES>>
     """ABCD"""     
No trimming because non quote character (i.e. space in this case) found before first quote

FUN_UPPER

Syntax:
<<input_text,FUN_UPPER>>
This function returns upper case string.

Parameters:

NameDescription
input_text[String] Input string which you want to change to upper case.

Examples:

ExampleSample OutputDescription
<<AbCd,FUN_UPPER>>
ABCD

FUN_LOWER

Syntax:
<<input_text,FUN_LOWER>>
This function returns lower case string.

Parameters:

NameDescription
input_text[String] Input string which you want to change to lower case.

Examples:

ExampleSample OutputDescription
<<AbCd,FUN_LOWER>>
abcd

FUN_REPLACE

Syntax:
<<input_text|~|search_for|~|replace_with|~|is_case_sensitive,FUN_REPLACE>>
Search for sub string and returns a new string with replaced value

Parameters:

NameDescription
input_text[String] The string to be replaced.
search_for[String] Sub string to be search for.
replace_with[String] New string value you like to replace.
is_case_sensitive[String] Specifies whether search pattern is case sensitive or not. 1 or True=Case-Sensitive search, 0 or False=Case-insensitive (Default=0)

Examples:

ExampleSample OutputDescription
<<I like Cap|~|Cap|~|Hat,FUN_REPLACE>>
I like Hat
In this example word "Cap" is replaced by "Hat"

FUN_IF_NULL

Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_NULL>>
Returns custom string if input value is null else different string with value template (use $1 to reference input value in the return template)

Parameters:

NameDescription
input_text[String] Input string to check.
match_text[String] String you like to output if input is null.
not_match_text (Optional)[String] Custom string you like to return if input is not null. You can use $1 any where in the string to reference input in this custom string. If omitted then input value is returned.
encode_function (Optional)[String] Operation you like to perform on the input value before using in the custom_text. Possible functions are jsonenc, xmlenc, quote, base64enc (for string encoding) and jsondec, xmldec, base64dec for decoding. You can suffix "_w_quote" after operation name to quote around (i.e. jsonenc_w_quote)

Examples:

ExampleSample OutputDescription
<<I like M & M|~|--null--|~|You entered: $1,FUN_IF_NULL>>
You entered: I like M & M
In this example we used custom output if value is not null. Notice $1 is used to refer input string for custom_text
<<I like M & M|~|--null--|~|You entered: $1|~|xmlenc,FUN_IF_NULL>>
You entered: I like M &amp; M
In this example we used xmlenc operation (XML Encode function) for input string. It gets applied before custom_text is returned if value is not null.

FUN_IF_EMPTY

Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_EMPTY>>
Returns custom string if input value is empty (blank string) else different string with value template (use $1 to reference input value in the return template)

Parameters:

NameDescription
input_text[String] Input string to check.
match_text[String] String you like to output if input is empty string.
not_match_text (Optional)[String] Custom string you like to return if input is not empty. You can use $1 any where in the string to reference input in this custom string. If omitted then input value is returned.
encode_function (Optional)[String] Operation you like to perform on the input value before using in the custom_text. Possible functions are jsonenc, xmlenc, quote, base64enc (for string encoding) and jsondec, xmldec, base64dec for decoding. You can suffix "_w_quote" after operation name to quote around (i.e. jsonenc_w_quote)

Examples:

ExampleSample OutputDescription
<<I like M & M|~|--empty--|~|You entered: $1,FUN_IF_EMPTY>>
You entered: I like M & M
In this example we used custom output if value is not empty string. Notice $1 is used to refer input string for custom_text
<<|~|--empty--|~|You entered: $1,FUN_IF_EMPTY>>
--empty--
In this example our output is custom string set for null (i.e. --null--) because input is Blank string (i.e. empty) value
<<I like M & M|~|--empty--|~|You entered: $1|~|xmlenc,FUN_IF_EMPTY>>
You entered: I like M &amp; M
In this example we used xmlenc operation (XML Encode function) for input string. It gets applied before custom_text is returned if value is not empty string.

FUN_IF_NULL_OR_EMPTY

Syntax:
<<input_text|~|match_text[|~|not_match_text][|~|encode_function],FUN_IF_NULL_OR_EMPTY>>
Returns custom string if input value is null or empty else different string with value template (use $1 to reference input value in the return template)

Parameters:

NameDescription
input_text[String] Input string to check.
match_text[String] String you like to output if input is null or empty.
not_match_text (Optional)[String] Custom string you like to return if input is not null or empty. You can use $1 any where in the string to reference input in this custom string. If omitted then input value is returned.
encode_function (Optional)[String] Operation you like to perform on the input value before using in the custom_text. Possible functions are jsonenc, xmlenc, quote, base64enc (for string encoding) and jsondec, xmldec, base64dec for decoding. You can suffix "_w_quote" after operation name to quote around (i.e. jsonenc_w_quote)

Examples:

ExampleSample OutputDescription
<<I like M & M|~|--null-or-empty--|~|You entered: $1,FUN_IF_NULL_OR_EMPTY>>
You entered: I like M & M
In this example we used custom output if value is not null. Notice $1 is used to refer input string for custom_text
<<|~|--null-or-empty--|~|You entered: $1,FUN_IF_NULL_OR_EMPTY>>
--null-or-empty--
In this example our output is custom string set for null/empty (i.e. --null-or-empty--) because input is NULL value
<<<NULL>|~|--null-or-empty--|~|You entered: $1,FUN_IF_NULL_OR_EMPTY>>
--null-or-empty--
In this example our output is custom string set for null/empty (i.e. --null-or-empty--) because input is NULL value
<<I like M & M|~|--null-or-empty--|~|You entered: $1|~|xmlenc,FUN_IF_NULL_OR_EMPTY>>
You entered: I like M &amp; M
In this example we used xmlenc operation (XML Encode function) for input string. It gets applied before custom_text is returned if value is not null.

FUN_IF

Syntax:
<<value1|~|match_operator|~|value2|~|match_text|~|not_match_text[|~|is_case_sensitive][|~|encode_function],FUN_IF>>
Performs IF condition check on two values, returns match_text or not_match_text argument based on value1 compare with value2 on match_operator (match operation is not case-sensitive by default unless you supply is_case_sensitive argument). If no match found then not_match_text is returned if supplied else error is thrown. Condition match can be equal, contains, greater than, less than, in, between or regular expression.

Parameters:

NameDescription
value1[String] Left side input value.
match_operator[String] Operator function for match operator. Valid functions are Eq (Equal), NotEq (Not Equal), Gt, GtEq, Lt, LtEq, Between, Contains, NotContains, StartsWith, EndsWith, RegX, NotRegX, In, NotIn. Add --cs after Operator name to make string compare Case-Sensitive e.g. AbCd|~|Eq--cs|~|ABCD returns no match, and  AbCd|~|Eq|~|ABCD returns match (by default ignore-case ON). For In / NotIn operator use comma to define multiple values (e.g. some_color|~|In|~|red,blue,orange). For Between use # to separate 2 values (e.g. 100|~|Between|~|0#200)
value2[String] Right side input value.
match_text[String] String you like to output if match found. Use $1 to return left side value (i.e. value1). Use $2 to return right side value (i.e. value2). If match_text parameter is missing and value matches then Input value is returned by default.
not_match_text[String] String you like to output if match not found. Use $1 to return left side value (i.e. value1). Use $2 to return right side value (i.e. value2). If not_match_text parameter is missing and value does not match then blank value is returned by default.
is_case_sensitive (Optional)[Boolean] Specifies whether match is case sensitive or not. 1=Case-Sensitive search (Default=false i.e. operation is not case-sensitive by default)
encode_function (Optional)[String] Operation you like to perform on the input value before using in the custom_text. Possible functions are jsonenc, xmlenc, quote, base64enc (for string encoding) and jsondec, xmldec, base64dec for decoding. You can suffix "_w_quote" after operation name to quote around (i.e. jsonenc_w_quote)

Examples:

ExampleSample OutputDescription
<<Abc|~|Eq|~|Abc|~|same|~|not same,FUN_IF>>
same
Check if both input values are same (ignore case by default).
<<Abc|~|NotEq|~|Abc|~|not same|~|same,FUN_IF>>
same
Check if both input values are not same.
<<Abc|~|Eq|~|Abc|~|Both same $1 and $2|~|Not same,FUN_IF>>
Both same Abc and Abc
Check if both input values are same or not. Notice $1 is used to refer value1 and $2 for value2
<<This is fine|~|Contains|~|fine|~|YES|~|NO,FUN_IF>>
YES
Check if word [fine] found.
<<tHis Is FiNe|~|Contains|~|fine|~|YES|~|NO,FUN_IF>>
YES
Check if word [fine] found (By default it search for case-insensitive mode).
<<This is FINE|~|Contains|~|fine|~|YES|~|NO|~|true,FUN_IF>>
NO
Check if word [fine] found. Do case-sensitive search.
<<This is fine|~|Contains|~|fine|~|YES|~|NO|~|true|~|base64enc,FUN_IF>>
VGhpcyBpcyBmaW5l
Check if word [fine] found. If found return encoded value of value1 string.
<<This is fine|~|NotContains|~|fine|~|YES|~|NO,FUN_IF>>
NO
Check if word [fine] is not found.
<<10|~|Lt|~|20|~|YES|~|NO,FUN_IF>>
YES
Check if Left side value is less than right side value.
<<20|~|Gt|~|10|~|YES|~|NO,FUN_IF>>
YES
Check if Left side value is greater than right side value.
<<Abc123|~|StartsWith|~|Abc|~|YES|~|NO,FUN_IF>>
YES
Check if value starts with specific string.
<<Abc123|~|EndsWith|~|123|~|YES|~|NO,FUN_IF>>
YES
Check if value ends with specific string.
<<Some 123|~|Regx|~|\d+|~|YES|~|NO,FUN_IF>>
YES
Check regular expression \d+ (see if number found in the string).
<<Some 123|~|NotRegx|~|\d+|~|YES|~|NO,FUN_IF>>
NO
Check regular expression \d+ not found (see if number not found in the string).
<<5|~|In|~|1,2,3,4,5,6,7|~|YES|~|NO,FUN_IF>>
YES
Check if input found in the list of values (separated by comma).
<<10|~|NotIn|~|1,2,3,4,5,6,7|~|YES|~|NO,FUN_IF>>
YES
Check if input not found in the list of values (separated by comma).
<<5|~|Between|~|0#10|~|YES|~|NO,FUN_IF>>
YES
Check if input numeric value between two values (separated by #).
<<2012-06-01|~|Between|~|2012-01-01#2012-12-31|~|YES|~|NO,FUN_IF>>
YES
Check if input date value between two values (separated by #).

FUN_IF_REGEX_MATCH

Syntax:
<<input_text|~|search_pattern|~|match_string|~|not_match_string[|~|is_case_sensitive][|~|encode_function][|~|multi_match_separator],FUN_IF_REGEX_MATCH>>
Match for regular expression string pattern and return match condition if found else return non match condition

Parameters:

NameDescription
input_text[String] The string to be checked for pattern.
search_pattern[String] Regular expression pattern you like to search for.
match_string[String] Pattern or static string to return if matched. You can use $1 (input string) or use Regex extract string e.g. {{x,y}} or {{x}}  where x is occurrence number (starts at 0) and y is pattern group number or name. For x you can use * to include all occurrences. For more information check this link https://zappysys.com/links?id=10124
not_match_string[String] Static string for else part. You can use $1 anywhere in string to replace with input string
is_case_sensitive (Optional)[Boolean] Specifies whether search pattern is case sensitive or not. 1=Case-Sensitive search (Default=false)
encode_function (Optional)[String] Operation you like to perform on the input value before using in the custom_text. Possible functions are jsonenc, xmlenc, quote, base64enc (for string encoding) and jsondec, xmldec, base64dec for decoding. You can suffix "_w_quote" after operation name to quote around (i.e. jsonenc_w_quote)
multi_match_separator (Optional)[Boolean] Specifies whether search pattern is case sensitive or not. 1=Case-Sensitive search (Default=false)

Examples:

ExampleSample OutputDescription
<<Abc-123|~|\d+|~|Found|~|Not Found,FUN_IF_REGEX_MATCH>>
Found
Check for number in input string if match return [Found] static string else [Not Found]
<<Abc-123|~|\d+|~|Number Found in $1|~|Not Found,FUN_IF_REGEX_MATCH>>
Number Found in Abc-123
Check for number in input string if match then return [Number Found in [input_string]] else [Not Found]. $1 is replaced by input string in output
<<Abc-Xyz|~|\d+|~|Found|~|Number Not Found in $1,FUN_IF_REGEX_MATCH>>
Number Not Found in Abc-Xyz
Check for number in input string if not match then return [Number Not Found in [input_string]] static string else [Found]. $1 is replaced by input string in output
<<Abc-Xyz|~|\d+|~|Found|~|Number Not Found in $1,FUN_IF_REGEX_MATCH>>
Not Found
Check for number in input string if match return [Found] static string else [Not Found]
<<Abc-123|~|\d+|~||~|Not Found,FUN_IF_REGEX_MATCH>>
Abc-123
Check for number in input string if match return [Found] static string else [Not Found]
<<Abc-123|~|\d+|~|$1|~|Not Found,FUN_IF_REGEX_MATCH>>
Abc-123
Check for number in input string if match return [Found] static string else [Not Found]
<<a@GMAIL.com b@gmail.com|~|(\w+)+@(\w+\.com)|~|{{0,2}}|~|Not Found|~|true,FUN_IF_REGEX_MATCH>>
gmail.com
Check for @gmail domain (Search case-sensitive mode) in emails and return first match and 2nd group which is domain part (i.e. {{0,2}}), perform case-sensitive search (true).
<<a@GMAIL.com b@gmail.com|~|(\w+)+@(?<domain>\w+\.com)|~|{{0,domain}}|~|Not Found|~|true,FUN_IF_REGEX_MATCH>>
gmail.com
Check for @gmail domain (Search case-sensitive mode) in emails and return first match and named group [domain] and perform case-sensitive search (true).
<<a@msn.com b@gmail.com|~|(\w+)+@(\w+\.com)|~|{{*,2}}|~|Not Found|~|true|~||~|{space},FUN_IF_REGEX_MATCH>>
msn.com gmail.com
Check for emails in the input string, perforce case-sensitive search (true) if match return only domain part ({{*,2}}) from match, get all occurrences and join with space.
<<Abc-123|~|\d+|~|$1|~|Not Found,FUN_IF_REGEX_MATCH>>
Abc-123
Check for number in input string if match return [Found] static string else [Not Found]

FUN_CASE

Syntax:
<<input_value|~|condition_1[|~|condition_2][|~|condition_3][|~|...][|~|condition_N][|~|default_value],FUN_CASE>>
Returns custom string by matching one or more conditions (CASE statement). If no match found default_value (last argument) is returned if supplied else error is thrown. Condition match can be equal, contains, greater than, less than, in, between or regular expression.

Parameters:

NameDescription
input_value[String] input value to check with condition.
condition_1[String] 1st condition. Condition to check with input value. Condition contains two parts, operator function and value to check with. Syntax = match_operator[--cs]:value_to_match. Valid match_operator is Eq (i.e. Equal), NotEq (i.e. Not Equal), Gt, GtEq, Lt, LtEq, Between, Contains, NotContains, StartsWith, EndsWith, RegX, NotRegX, In, NotIn. Add --cs after Operator name to make string compare Case-Sensitive e.g. AbCd|~|Eq--cs|~|ABCD returns no match, and  AbCd|~|Eq|~|ABCD returns match (by default ignore-case ON). For In / NotIn operator use comma to define multiple values (e.g. some_color|~|In|~|red,blue,orange). For Between use # to separate 2 values (e.g. 100|~|Between|~|0#200)
condition_2 (Optional)[String] 2nd condition...
condition_3 (Optional)[String] 3rd condition...
... (Optional)[String] ...
condition_N (Optional)[String] Last condition
default_value (Optional)[String] Returns this default value if no match with any condition

Examples:

ExampleSample OutputDescription
<<red|~|IN:red,green,blue|~|primary color|~|other color,FUN_CASE>>
primary color
Check if input color is primary or not.
<<Red|~|IN--cs:RED,GREEN,BLUE|~|match found|~|no match,FUN_CASE>>
no match
Example of case-sensitive match (adding --cs suffix after operator).
<<2|~|EQ:1|~|Monday|~|EQ:2|~|Tuesday|~|EQ:3|~|Wednesday|~|not match,FUN_CASE>>
Tuesday
Check day number input_value (i.e. 2) with conditions and return matching value for the condition e.g. Tuesday in this case.
<<50|~|Between:0#100|~|in range|~|not in range,FUN_CASE>>
in range
Check if input value number or date within range e.g. check if 50 (input) is Between 0 and 100 in this case.
<<This is demo|~|EndsWith:demo|~|yes endswith demo|~|not match,FUN_CASE>>
yes endswith demo
Using EndWith operator.
<<This is demo|~|EndsWith:demo|~|yes endswith demo|~|not match,FUN_CASE>>
yes endswith demo
Using EndWith operator.
<<This is fine|~|EndsWith|~|fine|~|YES|~|NO,FUN_CASE>>
YES
Check if input ends with word [fine].
<<10|~|NotEq:20|~|YES|~|NO,FUN_CASE>>
YES
Check if Left side value is less than right side value.
<<10|~|Lt:20|~|YES|~|NO,FUN_CASE>>
YES
Check if Left side value is less than right side value.
<<20|~|Gt:10|~|YES|~|NO,FUN_CASE>>
YES
Check if Left side value is greater than right side value.
<<Abc123|~|StartsWith:Abc|~|YES|~|NO,FUN_CASE>>
YES
Check if value starts with specific string.
<<Abc123|~|EndsWith:123|~|YES|~|NO,FUN_CASE>>
YES
Check if value ends with specific string.
<<Some 123|~|Regx:\d+|~|YES|~|NO,FUN_CASE>>
YES
Check regular expression \d+ (see if number found in the string).
<<Some 123|~|NotRegx:\d+|~|YES|~|NO,FUN_CASE>>
NO
Check regular expression \d+ not found (see if number not found in the string).
<<5|~|In:1,2,3,4,5|~|First Row|~|In:6,7,8,9,10|~|Second Row|~|Bad value,FUN_CASE>>
Row#1
Check if input found in the list of values (separated by comma).
<<10|~|NotIn:1,2,3,4,5,6,7|~|YES|~|NO,FUN_CASE>>
YES
Check if input not found in the list of values (separated by comma).
<<2012-02-01|~|Between:2012-01-01#2012-3-31|~|Q1|~|Between:2012-04-01#2012-06-30|~|Q2|~|NOT MATCH,FUN_CASE>>
Q1
Check if input date value between two values (separated by #).
<<2012-02-01|~|NotBetween:2012-01-01#2012-3-31|~|Bad value|~|Good value,FUN_CASE>>
Good value
Check if input date value between two values (separated by #).

FUN_REGEX_REPLACE

Syntax:
<<input_text|~|search_pattern|~|replace_with[|~|is_case_sensitive],FUN_REGEX_REPLACE>>
Search for string pattern using Regular expression and returns a new string with replaced value

Parameters:

NameDescription
input_text[String] The string to be replaced.
search_pattern[String] Regular expression pattern you like to search for.
replace_with[String] New string value you like to replace.
is_case_sensitive (Optional)[Boolean] Specifies whether search pattern is case sensitive or not. 1=Case-Sensitive search (Default=false)

Examples:

ExampleSample OutputDescription
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+)|~|Hat$1-$2,FUN_REGEX_REPLACE>>
I like Hat0-red and Hat1-blue
You can use $1, $2...as Group indicator to extract sub values from pattern search. $1 represents first group (\d+) for cap number and $2 represents (\w+) for color
<<I like CAP0-red and cap1-blue|~|CaP(\d+)-(\w+)|~|Hat$1-$2|~|1,FUN_REGEX_REPLACE>>
I like Hat0-red and Hat1-blue
Example of Case-Insensitive search. See last parameter is 1 rather than default 0

FUN_REGEX_EXTRACT

Syntax:
<<input_text|~|search_pattern[|~|is_case_sensitive][|~|is_required],FUN_REGEX_EXTRACT>>
Returns string match using Regular expression

Parameters:

NameDescription
input_text[String] The string to be replaced.
search_pattern[String] Regular expression pattern you like to search for.
is_case_sensitive (Optional)[Boolean] Specifies whether search pattern is case sensitive or not. 1=Case-Sensitive search (Default=false)
is_required (Optional)[Boolean] Indicates whether it should throws error if search pattern not found. BY default it returns blank string if pattern not found.

Examples:

ExampleSample OutputDescription
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+),FUN_REGEX_EXTRACT>>
Cap0-red
Extracts first match from input text
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+){{*}},FUN_REGEX_EXTRACT>>
Cap0-red
Cap1-blue
Extracts all matches from input text (each match is separated by new line)
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+){{-0,2}},FUN_REGEX_EXTRACT>>
blue
Extracts 2nd part (i.e. color) of last match from input text
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+){{0,2}},FUN_REGEX_EXTRACT>>
red
Extracts 2nd part (i.e. color) of first match from input text
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(?<color>\w+){{0,color}},FUN_REGEX_EXTRACT>>
red
Extracts named group color of first match from input text
<<I like Cap0-red and Cap1-blue|~|Cap(\d+)-(\w+){{*,2}},FUN_REGEX_EXTRACT>>
red
blue
Extracts 2nd part (i.e. color) of all matches (i.e. color) from input text (each match is separated by new line)

FUN_RANDOM_STR

Syntax:
<<[max_length],FUN_RANDOM_STR>>
Generates a random string

Parameters:

NameDescription
max_length (Optional)[String] Maximum number of characters. Default=10

Examples:

ExampleSample OutputDescription
<<FUN_RANDOM_STR>>
Asdhs^&jhd
Generate a random string (upto 10 characters by default)
<<4,FUN_RANDOM_STR>>
As#1
Generate a random string upto 4 characters

MD5 Functions

FUN_MD5

Syntax:
<<input_string,FUN_MD5>>
Returns MD5 hash in Base64 format for specified input

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_MD5>>
u/LerTdGVMuzKpF6/SNmVg==
MD5 Hash of string containing upper case and numbers
<<abc123,FUN_MD5>>
6ZoYxCjLONXyYIU2eJIuAw==
MD5 Hash of string containing lower case and numbers
<<FUN_MD5>>
1B2M2Y8AsgTpgAmY7PhCfg==
MD5 Hash of blank string

FUN_MD5HEX

Syntax:
<<input_string,FUN_MD5HEX>>
Returns MD5 hash in Hex format (all Uppercase). To output Hash in base64 use FUN_MD5. To output Hash in lowercase format use FUN_HASH_MD5_HEX

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_MD5HEX>>
BBF2DEAD374654CBB32A917AFD236656
MD5 Hash (in Hex format) of string containing upper case and numbers
<<abc123,FUN_MD5HEX>>
E99A18C428CB38D5F260853678922E03
MD5 Hash (in Hex format) of string containing lower case and numbers
<<FUN_MD5HEX>>
D41D8CD98F00B204E9800998ECF8427E
MD5 Hash (in Hex format) of blank string

FUN_FILE_MD5

Syntax:
<<file_path,FUN_FILE_MD5>>
Returns File content MD5 hash in Base64 format for a specified file path. File content can be text or binary.

Parameters:

NameDescription
file_path[String] File path for which you like to calculate MD5 hash (path can be for text or binary data file - txt,  json, exe, png, zip)

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_FILE_MD5>>
u/LerTdGVMuzKpF6/SNmVg==
MD5 Hash of a ASCII file. Where file content is [ABC123].
<<c:\data.txt,FUN_FILE_MD5>>
RoU9p6cBAq/t5ApxY9ADMQ==
MD5 Hash of a UTF8 file (with BOM). Where file content is [ABC123].

FUN_FILE_MD5HEX

Syntax:
<<file_path,FUN_FILE_MD5HEX>>
Returns File content MD5 hash in Hex format (rather than Base64) for a specified file path. File content can be text or binary.

Parameters:

NameDescription
file_path[String] File path for which you like to calculate MD5 hash (path can be for text or binary data file - txt,  json, exe, png, zip)

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_FILE_MD5HEX>>
BBF2DEAD374654CBB32A917AFD236656
MD5 Hash of a ASCII file. Where file content is [ABC123].
<<c:\data.txt,FUN_FILE_MD5HEX>>
46853DA7A70102AFEDE40A7163D00331
MD5 Hash of a UTF8 file (with BOM). Where file content is [ABC123].

File Functions

FUN_FILE_NAME

Syntax:
<<file_path,FUN_FILE_NAME>>
Returns file name from the input file path.

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_NAME>>
file1.txt
Returns file name from full path
<<c:\somefolder\file1,FUN_FILE_NAME>>
file1
Returns file name from full path (extension less file name example)
<<c:\somefolder\,FUN_FILE_NAME>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_SIZE

Syntax:
<<file_path_or_pattern,FUN_FILE_SIZE>>
Returns file size (in bytes) for a single file or multiple files using wildcard pattern match.

Parameters:

NameDescription
file_path_or_pattern[String] Full file path or wildcard pattern to calculate file size.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_SIZE>>
1024
Returns file size for a single file (e.g. for a 1KB file it returns 1024)
<<c:\somefolder\file*.*,FUN_FILE_SIZE>>
2048
Returns file size for multiple files using wildcard pattern.
<<c:\somefolder\,FUN_FILE_SIZE>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_SIZE_RECURSIVE

Syntax:
<<file_path_or_pattern,FUN_FILE_SIZE_RECURSIVE>>
Returns file size (in bytes) for a single file or multiple files using wildcard pattern match. This function scans child folders too for wildcard pattern search.

Parameters:

NameDescription
file_path_or_pattern[String] Full file path or wildcard pattern to calculate file size.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_SIZE_RECURSIVE>>
1024
Returns file size for a single file (e.g. for a 1KB file it returns 1024)
<<c:\somefolder\file*.*,FUN_FILE_SIZE_RECURSIVE>>
2048
Returns file size for multiple files using wildcard pattern.
<<c:\somefolder\,FUN_FILE_SIZE_RECURSIVE>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_COUNT

Syntax:
<<file_path_pattern,FUN_FILE_COUNT>>
Returns total file count for a given wildcard pattern match.

Parameters:

NameDescription
file_path_pattern[String] Full file path with wildcard pattern to search for.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file*.*,FUN_FILE_COUNT>>
2
Returns file count for multiple files using wildcard pattern.
<<c:\somefolder\,FUN_FILE_COUNT>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_COUNT_RECURSIVE

Syntax:
<<file_path_pattern,FUN_FILE_COUNT_RECURSIVE>>
Returns total file count for a given wildcard pattern match. This function scans child folders too for wildcard pattern search.

Parameters:

NameDescription
file_path_pattern[String] Full file path with wildcard pattern to search for.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file*.*,FUN_FILE_COUNT_RECURSIVE>>
2
Returns file count for multiple files using wildcard pattern.
<<c:\somefolder\,FUN_FILE_COUNT_RECURSIVE>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_EXITS

Syntax:
<<file_path_or_pattern,FUN_FILE_EXITS>>
Returns file(s) exists status (True or False) for a single file or multiple files using wildcard pattern match.

Parameters:

NameDescription
file_path_or_pattern[String] Full file path or wildcard pattern to calculate file size.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_EXITS>>
True
Returns file exists status (True if file found else returns False)
<<c:\somefolder\file*.*,FUN_FILE_EXITS>>
True
Returns file exists status for multiple files using wildcard pattern search. Returns True if atleast one file found for a given pattern.
<<c:\somefolder\,FUN_FILE_EXITS>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_EXITS_RECURSIVE

Syntax:
<<file_path_or_pattern,FUN_FILE_EXITS_RECURSIVE>>
Returns file(s) exists status (True or False) for a single file or multiple files using wildcard pattern match. This function scans child folders too for wildcard pattern search.

Parameters:

NameDescription
file_path_or_pattern[String] Full file path or wildcard pattern to calculate file size.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_EXITS_RECURSIVE>>
True
Returns file exists status (True if file found else returns False)
<<c:\somefolder\file*.*,FUN_FILE_EXITS_RECURSIVE>>
True
Returns file exists status for multiple files using wildcard pattern search. Returns True if atleast one file found for a given pattern.
<<c:\somefolder\,FUN_FILE_EXITS_RECURSIVE>>
Error
Bad path example. Path must be a valid file path or pattern (cannot end with / or \)

FUN_FILE_EXTENSION

Syntax:
<<file_name_or_path,FUN_FILE_EXTENSION>>
Returns file extension for a given file path.

Parameters:

NameDescription
file_name_or_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<file1.txt,FUN_FILE_EXTENSION>>
.txt
Returns file extension from a file name
<<c:\somefolder\file1.txt,FUN_FILE_EXTENSION>>
.txt
Returns file extension from a full file path
<<c:\somefolder\,FUN_FILE_EXTENSION>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_ENCODING

Syntax:
<<file_path,FUN_FILE_ENCODING>>
Returns encoding type from the input file path. Possible return values are: ASCII, UTF8, UTF8WithoutBOM, UTF16, UTF16WithoutBOM, UTF32, UTF32WithoutBOM, UTF7, UTF7WithoutBOM, BigEndian, BigEndianWithoutBOM

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_ENCODING>>
UTF8
Returns encoding for UTF-8 file
<<c:\somefolder\file1.txt,FUN_FILE_ENCODING>>
UTF8WithoutBOM
Returns encoding for UTF-8 file without BOM (i.e. Byte-Order-Mark)
<<c:\somefolder\,FUN_FILE_ENCODING>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_ISLOCKED

Syntax:
<<file_path,FUN_FILE_ISLOCKED>>
Returns lock status (True or False) from the input file path. If Some Program is locking file then returns True else False.

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.xlsx,FUN_FILE_ISLOCKED>>
True
Returns true if file is being locked by some program.
<<c:\somefolder\,FUN_FILE_ISLOCKED>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_DIRECTORY

Syntax:
<<file_path,FUN_FILE_DIRECTORY>>
Returns directory name for a given file path.

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_DIRECTORY>>
somefolder
Returns folder name of a file path
<<c:\somefolder\file1_no_extension,FUN_FILE_DIRECTORY>>
somefolder
Returns folder name of a file path
<<c:\somefolder\,FUN_FILE_DIRECTORY>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_AGE_CREATE

Syntax:
<<file_path,FUN_FILE_AGE_CREATE>>
Returns file age in days based on CreationDate of the file. (e.g. If file was created 5 days ago then it returns 5).

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_AGE_CREATE>>
5
In this example file was created 5 days ago so returns 5
<<c:\somefolder\,FUN_FILE_AGE_CREATE>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_AGE_LASTEDIT

Syntax:
<<file_path,FUN_FILE_AGE_LASTEDIT>>
Returns file age in days based on LastModifiedDate of the file. (e.g. If file was edited 5 days ago then it returns 5).

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_AGE_LASTEDIT>>
5
In this example file was edited 5 days ago so returns 5
<<c:\somefolder\,FUN_FILE_AGE_LASTEDIT>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_CREATE_DATE

Syntax:
<<file_path,FUN_FILE_CREATE_DATE>>
Returns file creation date in ISO date format (i.e. 2021-12-31T23:59:59.123).

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_CREATE_DATE>>
2021-12-31T23:59:59.123
Returns file create date including time upto 3 digits milliseconds

FUN_FILE_LASTEDIT_DATE

Syntax:
<<file_path,FUN_FILE_LASTEDIT_DATE>>
Returns file last edit date in ISO date format (i.e. 2021-12-31T23:59:59.123).

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_LASTEDIT_DATE>>
2021-12-31T23:59:59.123
Returns file last edit date including time upto 3 digits milliseconds

FUN_FILE_BASE64ENC

Syntax:
<<file_path,FUN_FILE_BASE64ENC>>
Returns BASE64 encoded string of local file content (binary or text).

Parameters:

NameDescription
file_path[String] File path for which you like encode content as Base64.

Examples:

ExampleSample OutputDescription
<<c:\someimage.png,FUN_FILE_BASE64ENC>>
bXl1c2V..........Ac3NXb3Jk
This returns base64 encoded string of binary file (png)

FUN_FILE_NAME

Syntax:
<<file_path,FUN_FILE_NAME>>
Returns file name from the input file path.

Parameters:

NameDescription
file_path[String] Full path to a file.

Examples:

ExampleSample OutputDescription
<<c:\somefolder\file1.txt,FUN_FILE_NAME>>
file1.txt
Returns file name from full path
<<c:\somefolder\file1,FUN_FILE_NAME>>
file1
Returns file name from full path (extension less file name example)
<<c:\somefolder\,FUN_FILE_NAME>>
Error
Bad path example. Path must be a valid file path (cannot end with / or \)

FUN_FILE_READ

Syntax:
<<file_path,FUN_FILE_READ>>
Reads local file and returns content as string

Parameters:

NameDescription
file_path[String] Input file path from which you like to read content as text.

Examples:

ExampleSample OutputDescription
<<C:\file.txt,FUN_FILE_READ>>
Some data from file
<<\\mysharedfolder\file.txt,FUN_FILE_READ>>
Some data from file

FUN_FILE_WRITE

Syntax:
<<file_path|~|content|~|overwrite|~|append|~|create_target_folder_if_missing|~|encoding,FUN_FILE_WRITE>>
Write content to a file. Returns file size if successful. If its append mode then returns appended text length.

Parameters:

NameDescription
file_path[String] Target file path where you like to write text data.
content[String] Text you want to write to the file.
overwrite[String] Overwrite if file already exits If file exists? (Default=False i.e. Do not overwrite if file already found and throw error)
append[String] Append data to file (Default=false)
create_target_folder_if_missing[String] Create Target Folder if not found before creating a file. (Default=false)
encoding[String] Encoding for a new file to be created. Possible values are: ASCII, UTF8, UTF8WithoutBOM, UTF16, UTF16WithoutBOM, UTF32, UTF32WithoutBOM, UTF7, UTF7WithoutBOM, BigEndian, BigEndianWithoutBOM. Default=UTF8

Examples:

ExampleSample OutputDescription
<<C:\file.txt|~|Abcd1234,FUN_FILE_WRITE>>
11
Writes some data to file (Default - fail if file exists). Returns file size.
<<C:\file.txt|~|Abcd1234|~|True,FUN_FILE_WRITE>>
11
Overwrite if file exists.
<<C:\file.txt|~|Abcd1234|~|True|~|True,FUN_FILE_WRITE>>
11
Append data to file (along with Overwrite=True)
<<C:\file.txt|~|Abcd1234|~|True|~|True|~|True,FUN_FILE_WRITE>>
11
Create Target folder if not found  (along with Overwrite=True, Append=True).
<<C:\file.txt|~|Abcd1234|~|True|~|True|~|True|~|ASCII,FUN_FILE_WRITE>>
8
Set file encoding (along with Overwrite=True, Append=True, CreateTargetFolder=True).

FUN_FILE_WRITE_BINARY

Syntax:
<<file_path|~|content_base64|~|overwrite|~|append|~|create_target_folder_if_missing,FUN_FILE_WRITE_BINARY>>
Writes input base64 string to a file as decoded binary data. Returns file size if successful. If its append mode then returns appended byte array size.

Parameters:

NameDescription
file_path[String] Target file path where you like to write binary data.
content_base64[String] Data you want to write to the file (Data must be in base64 format. It can be text or byte array - convert to base64 and pass as content to write).
overwrite[String] Overwrite if file already exits If file exists? (Default=False i.e. Do not overwrite if file already found and throw error)
append[String] Append data to file (Default=false)
create_target_folder_if_missing[String] Create Target Folder if not found before creating a file. (Default=false)

Examples:

ExampleSample OutputDescription
<<C:\file.txt|~|VGVzdDEyMw==,FUN_FILE_WRITE_BINARY>>
8
Writes some data (i.e. Abcd1234 in this example) to a file. Lets say you like to write Abcd1234 to a file then convert data to Base64 which is VGVzdDEyMw== and pass as input. You can convert Byte array as base64 too. (Default - fail if file exists). Returns file size.
<<C:\file.txt|~|VGVzdDEyMw==|~|True,FUN_FILE_WRITE_BINARY>>
8
Overwrite if file exists.
<<C:\file.txt|~|VGVzdDEyMw==|~|True|~|True,FUN_FILE_WRITE_BINARY>>
8
Append data to a file (along with Overwrite=True)
<<C:\file.txt|~|VGVzdDEyMw==|~|True|~|True|~|True,FUN_FILE_WRITE_BINARY>>
8
Create Target folder if not found  (along with Overwrite=True, Append=True).

Folder Functions

FUN_FOLDER_NAME

Syntax:
<<folder_path,FUN_FOLDER_NAME>>
Returns folder name from the path.

Parameters:

NameDescription
folder_path[String] Full path to a folder.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_NAME>>
somefolder
Returns folder name from a full path
<<c:\somefolder\,FUN_FOLDER_NAME>>
somefolder
Returns folder name from a full path (ending with slash)

FUN_FOLDER_SIZE

Syntax:
<<folder_path,FUN_FOLDER_SIZE>>
Returns folder size in bytes (including files from sub folders).

Parameters:

NameDescription
folder_path[String] Full folder path to calculate size.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_SIZE>>
1024
Returns size for a folder including subfolders if any

FUN_FOLDER_EXITS

Syntax:
<<folder_path,FUN_FOLDER_EXITS>>
Returns folder exists status (True or False).

Parameters:

NameDescription
folder_path[String] Full path for a folder.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_EXITS>>
True
Returns folder exists status (True if found else returns False)

FUN_FOLDER_FILECOUNT

Syntax:
<<folder_path,FUN_FOLDER_FILECOUNT>>
Returns file count of a folder (including files from sub folders).

Parameters:

NameDescription
folder_path[String] Folder path to count files.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_FILECOUNT>>
3
Returns total file count for a folder (including subfolders files if any)

FUN_FOLDER_AGE_CREATE

Syntax:
<<folder_path,FUN_FOLDER_AGE_CREATE>>
Returns folder age in days based on CreationDate of the folder. (e.g. If folder was created 5 days ago then it returns 5).

Parameters:

NameDescription
folder_path[String] Full path to a folder.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_AGE_CREATE>>
5
In this example folder was created 5 days ago so returns 5

FUN_FOLDER_CREATE_DATE

Syntax:
<<folder_path,FUN_FOLDER_CREATE_DATE>>
Returns folder creation date in ISO date format (i.e. 2021-12-31T23:59:59.123).

Parameters:

NameDescription
folder_path[String] Full path to a folder.

Examples:

ExampleSample OutputDescription
<<c:\somefolder,FUN_FOLDER_CREATE_DATE>>
2021-12-31T23:59:59.123
Returns folder create date including time upto 3 digits milliseconds

HTTP / URL Functions

FUN_HTTP_READ

Syntax:
<<url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload],FUN_HTTP_READ>>
Calls HTTP request and returns response data (text or binary) as string from an URL (Supports GET, POST, PUT with Body/Headers...)

Parameters:

NameDescription
url[String] URL for which you like to read data.
method (Optional)[String] HTTP request method (e.g. GET, POST, PUT, DELETE etc. To send body for GET method use method as GET-WITH-BODY and supply Body parameter.
body[String] Body text.
headers (Optional)[String] Extra headers for HTTP request. Use double pipe (e.g ||) to supply multiple headers name/value pairs (e.g. {headername1:value||headername2:value...}.
ignore_certificate_errors (Optional)[Boolean] Ignore certificate related error(s). Set this to true if you like to trust self-sign certificate or ignore errors like expired certificate or certificate not trusted.
is_multipart_upload (Optional)[Boolean] Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value)

==== Raw Upload (Content-Type: application/octet-stream) =====  
To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g.  @c:\data\myfile.zip )

==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) =====  
To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored.
If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type.
See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored).

file1=@c:\data\Myfile1.txt
file2=@c:\data\Myfile2.json
file2.Content-Type=application/json
SomeField1=aaaaaaa
SomeField1.Content-Type=text/plain
SomeField2=12345
SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab
SomeFieldStartingWithAtSign=\@MyTwitterHandle

Examples:

ExampleSample OutputDescription
<<https://postman-echo.com/get?param1=aaaa&param2=bbb,FUN_HTTP_READ>>
{"args": {},..."url": ...}
This returns JSON data from a HTTP GET request
<<https://postman-echo.com/post|~|POST|~|{some-body-text},FUN_HTTP_READ>>
{"args": {}, "data": "some-body-text"..."url": ...}
This returns data from a HTTP request with Body (POST/PUT/PATCH etc)
<<https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb,FUN_HTTP_READ>>
{"args": {}, "data": "some-body-text"..."url": ...}
This returns data from a HTTP request with Body and Headers
<<https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb|~|true,FUN_HTTP_READ>>
{"args": {}, "data": "some-body-text"..."url": ...}
This returns data from a HTTP request where SSL certificate errors are ignored (e.g. Trust expired / self-signed certificate)
<<https://postman-echo.com/post|~|POST|~|@c:\temp\dump.png|~||~|false|~|true,FUN_HTTP_READ>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server (Binary upload mode)
<<https://postman-echo.com/post|~|POST|~|file1=@c:\temp\dump.png
file2=@c:\temp\dump.json
some-label1=abcd
some-label2=abcd|~||~|false|~|true,FUN_HTTP_READ>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server using multipart/form-data upload mode and read response data.

FUN_HTTP_READ_BINARY

Syntax:
<<url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload],FUN_HTTP_READ_BINARY>>
Calls HTTP request and returns response data (text or binary) as Base64 string from an URL (Supports GET, POST, PUT with Body/Headers...)

Parameters:

NameDescription
url[String] URL for which you like to read data (binary or text data).
method (Optional)[String] HTTP request method (e.g. GET, POST, PUT, DELETE etc. To send body for GET method use method as GET-WITH-BODY and supply Body parameter. Default=GET
body[String] Body text.
headers (Optional)[String] Extra headers for HTTP request. Use double pipe (e.g ||) to supply multiple headers name/value pairs (e.g. {headername1:value||headername2:value...}.
ignore_certificate_errors (Optional)[Boolean] Ignore certificate related error(s). Set this to true if you like to trust self-sign certificate or ignore errors like expired certificate or certificate not trusted. Default=false
is_multipart_upload (Optional)[Boolean] Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value)

==== Raw Upload (Content-Type: application/octet-stream) =====  
To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g.  @c:\data\myfile.zip )

==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) =====  
To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored.
If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type.
See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored).

file1=@c:\data\Myfile1.txt
file2=@c:\data\Myfile2.json
file2.Content-Type=application/json
SomeField1=aaaaaaa
SomeField1.Content-Type=text/plain
SomeField2=12345
SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab
SomeFieldStartingWithAtSign=\@MyTwitterHandle

Examples:

ExampleSample OutputDescription
<<http://httpbin.org/image/png,FUN_HTTP_READ_BINARY>>
iVBORw.....many more.....VORK5CYII=
This returns base64 encoded string of HTTP response data (in this example png file)
<<https://postman-echo.com/post|~|POST|~|{some-body-text},FUN_HTTP_READ_BINARY>>
e3NvbWUtYm9keS10ZXh0fQ==
This returns base64 encoded string of a HTTP request with Body (POST/PUT/PATCH etc)
<<https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb,FUN_HTTP_READ_BINARY>>
e3NvbWUtYm9keS10ZXh0fQ==
This returns base64 encoded string of a HTTP request with Body and Headers
<<https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb|~|true,FUN_HTTP_READ_BINARY>>
e3NvbWUtYm9keS10ZXh0fQ==
This returns base64 encoded string of a HTTP request where SSL certificate errors are ignored (e.g. Trust expired / self-signed certificate)
<<https://postman-echo.com/post|~|POST|~|@c:\temp\dump.png|~||~|false|~|true,FUN_HTTP_READ_BINARY>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server (Binary upload mode)
<<https://postman-echo.com/post|~|POST|~|file1=@c:\temp\dump.png
file2=@c:\temp\dump.json
some-label1=abcd
some-label2=abcd|~||~|false|~|true,FUN_HTTP_READ_BINARY>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server using multipart/form-data upload mode and read response data back.

FUN_HTTP_WRITE

Syntax:
<<file_path|~|url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload][|~|overwrite_target][|~|append][|~|create_folder_if_missing][|~|encoding],FUN_HTTP_WRITE>>
Calls HTTP request and saves response (text or binary) to a local disk file and returns file size in bytes (Supports GET, POST, PUT with Body/Headers...)

Parameters:

NameDescription
file_path[String] Local disk file path to where you like to save HTTP response data (binary or text data). Supply encoding if its text response (e.g. JSON / XML / CSV).
url[String] URL for which you like to read data (binary or text data).
method (Optional)[String] HTTP request method (e.g. GET, POST, PUT, DELETE etc. To send body for GET method use method as GET-WITH-BODY and supply Body parameter.
body[String] Body text.
headers (Optional)[String] Extra headers for HTTP request. Use double pipe (e.g ||) to supply multiple headers name/value pairs (e.g. {headername1:value||headername2:value...}.
ignore_certificate_errors (Optional)[Boolean] Ignore certificate related error(s). Set this to true if you like to trust self-sign certificate or ignore errors like expired certificate or certificate not trusted.
is_multipart_upload (Optional)[Boolean] Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value)

==== Raw Upload (Content-Type: application/octet-stream) =====  
To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g.  @c:\data\myfile.zip )

==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) =====  
To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored.
If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type.
See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored).

file1=@c:\data\Myfile1.txt
file2=@c:\data\Myfile2.json
file2.Content-Type=application/json
SomeField1=aaaaaaa
SomeField1.Content-Type=text/plain
SomeField2=12345
SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab
SomeFieldStartingWithAtSign=\@MyTwitterHandle
overwrite_target (Optional)[String] Specifies whether you like to overwrite target file where you like to save response data from HTTP call. Default=true.
append (Optional)[String] Specifies whether you like to append data to target file. Default=false.
create_folder_if_missing (Optional)[String] Specifies whether you like to create a folder for target path if missing. Default=true.
encoding (Optional)[String] Encoding for target file. Default=UTF8.

Examples:

ExampleSample OutputDescription
<<c:\temp\output.json|~|https://postman-echo.com/get?param1=aaaa&param2=bbb,FUN_HTTP_WRITE>>
{"args": {},..."url": ...}
This calls HTTP GET request and saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text},FUN_HTTP_WRITE>>
{"args": {}, "data": "some-body-text"..."url": ...}
This calls HTTP POST request (using Body) and saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb,FUN_HTTP_WRITE>>
{"args": {}, "data": "some-body-text"..."url": ...}
This calls HTTP POST request using Body and custom headers. It saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb|~|true,FUN_HTTP_WRITE>>
{"args": {}, "data": "some-body-text"..."url": ...}
This returns data from a HTTP request where SSL certificate errors are ignored (e.g. Trust expired / self-signed certificate)
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|@c:\temp\dump.png|~||~|false|~|true,FUN_HTTP_WRITE>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server (Binary upload mode).
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|file1=@c:\temp\dump.png
file2=@c:\temp\dump.json
some-label1=abcd
some-label2=abcd|~||~|false|~|true,FUN_HTTP_WRITE>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server using multipart/form-data upload mode and read response data back.

FUN_HTTP_WRITE_BINARY

Syntax:
<<file_path|~|url[|~|method]|~|body[|~|headers][|~|ignore_certificate_errors][|~|is_multipart_upload][|~|overwrite_target][|~|append][|~|create_folder_if_missing][|~|encoding],FUN_HTTP_WRITE_BINARY>>
Calls HTTP request and saves response (text or binary) to a local disk file and returns file size in bytes (Supports GET, POST, PUT with Body/Headers...)

Parameters:

NameDescription
file_path[String] Local disk file path to where you like to save HTTP response data (binary or text data). Supply encoding if its text response (e.g. JSON / XML / CSV).
url[String] URL for which you like to read data (binary or text data).
method (Optional)[String] HTTP request method (e.g. GET, POST, PUT, DELETE etc. To send body for GET method use method as GET-WITH-BODY and supply Body parameter.
body[String] Body text.
headers (Optional)[String] Extra headers for HTTP request. Use double pipe (e.g ||) to supply multiple headers name/value pairs (e.g. {headername1:value||headername2:value...}.
ignore_certificate_errors (Optional)[Boolean] Ignore certificate related error(s). Set this to true if you like to trust self-sign certificate or ignore errors like expired certificate or certificate not trusted.
is_multipart_upload (Optional)[Boolean] Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value)

==== Raw Upload (Content-Type: application/octet-stream) =====  
To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g.  @c:\data\myfile.zip )

==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) =====  
To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored.
If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type.
See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored).

file1=@c:\data\Myfile1.txt
file2=@c:\data\Myfile2.json
file2.Content-Type=application/json
SomeField1=aaaaaaa
SomeField1.Content-Type=text/plain
SomeField2=12345
SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab
SomeFieldStartingWithAtSign=\@MyTwitterHandle
overwrite_target (Optional)[String] Specifies whether you like to overwrite target file where you like to save response data from HTTP call. Default=true.
append (Optional)[String] Specifies whether you like to append data to target file. Default=false.
create_folder_if_missing (Optional)[String] Specifies whether you like to create a folder for target path if missing. Default=true.
encoding (Optional)[String] Encoding for target file. Default=No encoding (e.g. ANSI).

Examples:

ExampleSample OutputDescription
<<c:\temp\output.png|~|http://httpbin.org/image/png,FUN_HTTP_WRITE_BINARY>>
8090
This saves HTTP response (png file) to a local file and returns size of the file (e.g. 8090 bytes)
<<c:\temp\output.json|~|https://postman-echo.com/get?param1=aaaa&param2=bbb,FUN_HTTP_WRITE_BINARY>>
{"args": {},..."url": ...}
This calls HTTP GET request and saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text},FUN_HTTP_WRITE_BINARY>>
{"args": {}, "data": "some-body-text"..."url": ...}
This calls HTTP POST request (using Body) and saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb,FUN_HTTP_WRITE_BINARY>>
{"args": {}, "data": "some-body-text"..."url": ...}
This calls HTTP POST request using Body and custom headers. It saves response to output.json. It returns file size.
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|{some-body-text}|~|x-header1:aaa||x-header2:bbb|~|true,FUN_HTTP_WRITE_BINARY>>
{"args": {}, "data": "some-body-text"..."url": ...}
This returns data from a HTTP request where SSL certificate errors are ignored (e.g. Trust expired / self-signed certificate)
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|@c:\temp\dump.png|~||~|false|~|true,FUN_HTTP_WRITE_BINARY>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server (Binary upload mode).
<<c:\temp\output.json|~|https://postman-echo.com/post|~|POST|~|file1=@c:\temp\dump.png
file2=@c:\temp\dump.json
some-label1=abcd
some-label2=abcd|~||~|false|~|true,FUN_HTTP_WRITE_BINARY>>
{"args": {},..."files": {"": "data:application/octet-stream;base64,77u/ZHQs........MSINCg=="}...}
This example shows how to upload local file to remote server using multipart/form-data upload mode and read response data back.

Hash Functions

FUN_HASH_MD5

Syntax:
<<input_string,FUN_HASH_MD5>>
Returns MD5 hash in Base64 format for specified input string

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_MD5>>
???
MD5 Hash of string (text: ABC123) in Base64 format
<<abc123,FUN_HASH_MD5>>
???
MD5 Hash of string (text: abc123) in Base64 format
<<FUN_HASH_MD5>>
???
MD5 Hash of blank string in Base64 format

FUN_HASH_MD5_HEX

Syntax:
<<input_string,FUN_HASH_MD5_HEX>>
Returns MD5 hash in HEX format for specified input string. To output hash in Base64 use HASH_MD5 function.

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_MD5_HEX>>
???
MD5 Hash of string (text: ABC123) in HEX format
<<abc123,FUN_HASH_MD5_HEX>>
???
MD5 Hash of string (text: abc123) in HEX format
<<FUN_HASH_MD5_HEX>>
???
MD5 Hash of blank string in HEX format

FUN_HASH_FILE_MD5

Syntax:
<<input_file,FUN_HASH_FILE_MD5>>
Returns MD5 hash in Base64 format for specified input file

Parameters:

NameDescription
input_file[String] Input file you like to hash

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_HASH_FILE_MD5>>
???
MD5 Hash of file (text: ABC123) in Base64 format
<<c:\data.txt,FUN_HASH_FILE_MD5>>
???
MD5 Hash of file (text: abc123) in Base64 format
<<c:\data.txt,FUN_HASH_FILE_MD5>>
???
MD5 Hash of blank file in Base64 format

FUN_HASH_FILE_MD5_HEX

Syntax:
<<input_file,FUN_HASH_FILE_MD5_HEX>>
Returns MD5 hash in HEX format for specified input file. To output hash in Base64 use HASH_MD5 function.

Parameters:

NameDescription
input_file[String] Input file you like to hash

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_HASH_FILE_MD5_HEX>>
???
MD5 Hash of file (text: ABC123) in HEX format
<<c:\data.txt,FUN_HASH_FILE_MD5_HEX>>
???
MD5 Hash of file (text: abc123) in HEX format
<<c:\data.txt,FUN_HASH_FILE_MD5_HEX>>
???
MD5 Hash of blank file in HEX format

FUN_HASH_SHA1

Syntax:
<<input_string,FUN_HASH_SHA1>>
Returns SHA1 hash in Base64 format for specified input string

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA1>>
???
SHA1 Hash of string (text: ABC123) in Base64 format
<<abc123,FUN_HASH_SHA1>>
???
SHA1 Hash of string (text: abc123) in Base64 format
<<FUN_HASH_SHA1>>
???
SHA1 Hash of blank string in Base64 format

FUN_HASH_SHA1_HEX

Syntax:
<<input_string,FUN_HASH_SHA1_HEX>>
Returns SHA1 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA1 function.

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA1_HEX>>
???
SHA1 Hash of string (text: ABC123) in HEX format
<<abc123,FUN_HASH_SHA1_HEX>>
???
SHA1 Hash of string (text: abc123) in HEX format
<<FUN_HASH_SHA1_HEX>>
???
SHA1 Hash of blank string in HEX format

FUN_HASH_SHA256

Syntax:
<<input_string,FUN_HASH_SHA256>>
Returns SHA256 hash in Base64 format for specified input string

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA256>>
4L69IoGZk0JYFIZrYnAeKRnqJvE3BJnBA3tTudScLIo=
SHA256 Hash of string (text: ABC123) in Base64 format
<<abc123,FUN_HASH_SHA256>>
bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=
SHA256 Hash of string (text: abc123) in Base64 format
<<FUN_HASH_SHA256>>
47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
SHA256 Hash of blank string in Base64 format

FUN_HASH_SHA256_HEX

Syntax:
<<input_string,FUN_HASH_SHA256_HEX>>
Returns SHA256 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA256 function.

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA256_HEX>>
e0bebd22819993425814866b62701e2919ea26f1370499c1037b53b9d49c2c8a
SHA256 Hash of string (text: ABC123) in HEX format
<<abc123,FUN_HASH_SHA256_HEX>>
6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
SHA256 Hash of string (text: abc123) in HEX format
<<FUN_HASH_SHA256_HEX>>
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA256 Hash of blank string in HEX format

FUN_HASH_FILE_SHA256

Syntax:
<<input_file,FUN_HASH_FILE_SHA256>>
Returns SHA256 hash in Base64 format for specified input file

Parameters:

NameDescription
input_file[String] Input file you like to hash

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_HASH_FILE_SHA256>>
4L69IoGZk0JYFIZrYnAeKRnqJvE3BJnBA3tTudScLIo=
SHA256 Hash of file (text: ABC123) in Base64 format
<<c:\data.txt,FUN_HASH_FILE_SHA256>>
bKE9UspwyIPg8LsQHkJaiehiTeUdstI5JZOvaoQRgJA=
SHA256 Hash of file (text: abc123) in Base64 format
<<c:\data.txt,FUN_HASH_FILE_SHA256>>
47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
SHA256 Hash of blank file in Base64 format

FUN_HASH_FILE_SHA256_HEX

Syntax:
<<input_file,FUN_HASH_FILE_SHA256_HEX>>
Returns SHA256 hash in HEX format for specified input file. To output hash in Base64 use HASH_SHA256 function.

Parameters:

NameDescription
input_file[String] Input file you like to hash

Examples:

ExampleSample OutputDescription
<<c:\data.txt,FUN_HASH_FILE_SHA256_HEX>>
e0bebd22819993425814866b62701e2919ea26f1370499c1037b53b9d49c2c8a
SHA256 Hash of file (text: ABC123) in HEX format
<<c:\data.txt,FUN_HASH_FILE_SHA256_HEX>>
6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
SHA256 Hash of file (text: abc123) in HEX format
<<c:\data.txt,FUN_HASH_FILE_SHA256_HEX>>
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA256 Hash of blank file in HEX format

FUN_HASH_SHA512

Syntax:
<<input_string,FUN_HASH_SHA512>>
Returns SHA512 hash in Base64 format for specified input string

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA512>>
???
SHA512 Hash of string (text: ABC123) in Base64 format
<<abc123,FUN_HASH_SHA512>>
???
SHA512 Hash of string (text: abc123) in Base64 format
<<FUN_HASH_SHA512>>
???
SHA512 Hash of blank string in Base64 format

FUN_HASH_SHA512_HEX

Syntax:
<<input_string,FUN_HASH_SHA512_HEX>>
Returns SHA512 hash in HEX format for specified input string. To output hash in Base64 use HASH_SHA512 function.

Parameters:

NameDescription
input_string[String] Input string you like to hash

Examples:

ExampleSample OutputDescription
<<ABC123,FUN_HASH_SHA512_HEX>>
???
SHA512 Hash of string (text: ABC123) in HEX format
<<abc123,FUN_HASH_SHA512_HEX>>
???
SHA512 Hash of string (text: abc123) in HEX format
<<FUN_HASH_SHA512_HEX>>
???
SHA512 Hash of blank string in HEX format

HMAC - Hash + Encryption Functions

FUN_HMAC_MD5

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_MD5>>
Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the MD5 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5>>
EICjBYkqIW6HpU0VOkIABQ==
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string.
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5>>
KUcR9yrT/+sUwV/Rlclk4Q==
HMAC for non-base64 secret key (i.e. PassW0rd) and sample input string. Notice we appended --non-base64 after secret key
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5>>
NMWBHrLEeRDlIeSpY0I12A==
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string. Notice we used \n after POST and api-key:ABCD12345. Use of \n (line feed) and \r (carriage return) is allowed anywhere in input_string and it will be replaced automatically before calculating Hash.

FUN_HMAC_SHA1

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA1>>
Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA1 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1>>
AjySY1u3hiBuWLL7t5HfbwRL8Kk=
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string.
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1>>
jzWyMKjP9uzKkwsBsKUnSEk/uW4=
HMAC for non-base64 secret key (i.e. PassW0rd) and sample input string. Notice we appended --non-base64 after secret key
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1>>
TLN5p6HKFcIk/5vJbLG9IliO0+g=
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string. Notice we used \n after POST and api-key:ABCD12345. Use of \n (line feed) and \r (carriage return) is allowed anywhere in input_string and it will be replaced automatically before calculating Hash.

FUN_HMAC_SHA256

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA256>>
Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA256 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256>>
+yhBCew33Bbvh+Raumcj7Af3wuNT8pRepT0HfPt+6rg=
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string.
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256>>
C0QsJqJ1ds8vJx5IZIJEkgjA6C1Zx50FUWJzfPW3pOE=
HMAC for non-base64 secret key (i.e. PassW0rd) and sample input string. Notice we appended --non-base64 after secret key
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256>>
g4RYXElEKkk6M4uODazT0cSuygVcjuh8ycmYIOq5Joc=
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string. Notice we used \n after POST and api-key:ABCD12345. Use of \n (line feed) and \r (carriage return) is allowed anywhere in input_string and it will be replaced automatically before calculating Hash.

FUN_HMAC_SHA384

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384>>
Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA384 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384>>
//2hiViJ5fY4Mgwa5zUS6L+dEiwr6QcX/WoY6y1hJ8LwKpqABzn9NWD1l08eLdJi
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string.
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384>>
48bA65Om0rFndSa1P2w+2LFgrSTgVAXNCY3Z6Q3+/H9TnMv171zQawrx0n8xLlLp
HMAC for non-base64 secret key (i.e. PassW0rd) and sample input string. Notice we appended --non-base64 after secret key
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384>>
eICuBm1DbsFnk4Ai/qTmy+w5cp2hUZQ6MvNiwZfyS9m93oyaBTNQMI/orrVrpI8i
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string. Notice we used \n after POST and api-key:ABCD12345. Use of \n (line feed) and \r (carriage return) is allowed anywhere in input_string and it will be replaced automatically before calculating Hash.

FUN_HMAC_SHA384

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384>>
Returns a Base64 string of Hash-based Message Authentication Code (HMAC) by using the SHA512 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384>>
fdVQbHC5acN+UFoSeWNLEOGtn1Jc3aIEjY97aQ58/EhciNJLxTk+rlX04485OZKLysvbZVNPDLjGz20gvzOwXA==
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string.
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384>>
oEKZhescV/0ZHfudwj6PMglEaou3VkbFB2iNXinGmIznQWE552+HfYY3BnBEWy5HJGzndPZmp3hqDtIpQIypZA==
HMAC for non-base64 secret key (i.e. PassW0rd) and sample input string. Notice we appended --non-base64 after secret key
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384>>
smP9CmAo9v5C2oA2lmzLATdaKI06Yxl+LvSURhv/QOTqQ+vGh2wUnynNw5eZuy/S8Z3yGrprc18n/Zo0gP/y7w==
HMAC for base64 secret key (i.e. a2V5MTIz) and sample input string. Notice we used \n after POST and api-key:ABCD12345. Use of \n (line feed) and \r (carriage return) is allowed anywhere in input_string and it will be replaced automatically before calculating Hash.

FUN_HMAC_MD5_HEX

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_MD5_HEX>>
Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the MD5 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
--MD5 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5_HEX>>

--SHA1 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1_HEX>>

--SHA256 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256_HEX>>

--SHA384 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384_HEX>>

--SHA512 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA512_HEX>>
--MD5 Hex--
1080a305892a216e87a54d153a420005
294711f72ad3ffeb14c15fd195c964e1
34c5811eb2c47910e521e4a9634235d8

--SHA1 Hex--
023c92635bb786206e58b2fbb791df6f044bf0a9
8f35b230a8cff6ecca930b01b0a52748493fb96e
4cb379a7a1ca15c224ff9bc96cb1bd22588ed3e8

--SHA256 Hex--
fb284109ec37dc16ef87e45aba6723ec07f7c2e353f2945ea53d077cfb7eeab8
0b442c26a27576cf2f271e486482449208c0e82d59c79d055162737cf5b7a4e1
8384585c49442a493a338b8e0dacd3d1c4aeca055c8ee87cc9c99820eab92687

--SHA384 Hex--
fffda1895889e5f638320c1ae73512e8bf9d122c2be90717fd6a18eb2d6127c2f02a9a800739fd3560f5974f1e2dd262
e3c6c0eb93a6d2b1677526b53f6c3ed8b160ad24e05405cd098dd9e90dfefc7f539ccbf5ef5cd06b0af1d27f312e52e9
7880ae066d436ec167938022fea4e6cbec39729da151943a32f362c197f24bd9bdde8c9a053350308fe8aeb56ba48f22

--SHA512 Hex--
7dd5506c70b969c37e505a1279634b10e1ad9f525cdda2048d8f7b690e7cfc485c88d24bc5393eae55f4e38f3939928bcacbdb65534f0cb8c6cf6d20bf33b05c
a0429985eb1c57fd191dfb9dc23e8f3209446a8bb75646c507688d5e29c6988ce7416139e76f877d86370670445b2e47246ce774f666a7786a0ed229408ca964
b263fd0a6028f6fe42da8036966ccb01375a288d3a63197e2ef494461bff40e4ea43ebc6876c149f29cdc39799bb2fd2f19df21aba6b735f27fd9a3480fff2ef

FUN_HMAC_SHA1_HEX

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA1_HEX>>
Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA1 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
--MD5 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5_HEX>>

--SHA1 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1_HEX>>

--SHA256 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256_HEX>>

--SHA384 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384_HEX>>

--SHA512 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA512_HEX>>
--MD5 Hex--
1080a305892a216e87a54d153a420005
294711f72ad3ffeb14c15fd195c964e1
34c5811eb2c47910e521e4a9634235d8

--SHA1 Hex--
023c92635bb786206e58b2fbb791df6f044bf0a9
8f35b230a8cff6ecca930b01b0a52748493fb96e
4cb379a7a1ca15c224ff9bc96cb1bd22588ed3e8

--SHA256 Hex--
fb284109ec37dc16ef87e45aba6723ec07f7c2e353f2945ea53d077cfb7eeab8
0b442c26a27576cf2f271e486482449208c0e82d59c79d055162737cf5b7a4e1
8384585c49442a493a338b8e0dacd3d1c4aeca055c8ee87cc9c99820eab92687

--SHA384 Hex--
fffda1895889e5f638320c1ae73512e8bf9d122c2be90717fd6a18eb2d6127c2f02a9a800739fd3560f5974f1e2dd262
e3c6c0eb93a6d2b1677526b53f6c3ed8b160ad24e05405cd098dd9e90dfefc7f539ccbf5ef5cd06b0af1d27f312e52e9
7880ae066d436ec167938022fea4e6cbec39729da151943a32f362c197f24bd9bdde8c9a053350308fe8aeb56ba48f22

--SHA512 Hex--
7dd5506c70b969c37e505a1279634b10e1ad9f525cdda2048d8f7b690e7cfc485c88d24bc5393eae55f4e38f3939928bcacbdb65534f0cb8c6cf6d20bf33b05c
a0429985eb1c57fd191dfb9dc23e8f3209446a8bb75646c507688d5e29c6988ce7416139e76f877d86370670445b2e47246ce774f666a7786a0ed229408ca964
b263fd0a6028f6fe42da8036966ccb01375a288d3a63197e2ef494461bff40e4ea43ebc6876c149f29cdc39799bb2fd2f19df21aba6b735f27fd9a3480fff2ef

FUN_HMAC_SHA256_HEX

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA256_HEX>>
Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA256 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
--MD5 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5_HEX>>

--SHA1 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1_HEX>>

--SHA256 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256_HEX>>

--SHA384 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384_HEX>>

--SHA512 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA512_HEX>>
--MD5 Hex--
1080a305892a216e87a54d153a420005
294711f72ad3ffeb14c15fd195c964e1
34c5811eb2c47910e521e4a9634235d8

--SHA1 Hex--
023c92635bb786206e58b2fbb791df6f044bf0a9
8f35b230a8cff6ecca930b01b0a52748493fb96e
4cb379a7a1ca15c224ff9bc96cb1bd22588ed3e8

--SHA256 Hex--
fb284109ec37dc16ef87e45aba6723ec07f7c2e353f2945ea53d077cfb7eeab8
0b442c26a27576cf2f271e486482449208c0e82d59c79d055162737cf5b7a4e1
8384585c49442a493a338b8e0dacd3d1c4aeca055c8ee87cc9c99820eab92687

--SHA384 Hex--
fffda1895889e5f638320c1ae73512e8bf9d122c2be90717fd6a18eb2d6127c2f02a9a800739fd3560f5974f1e2dd262
e3c6c0eb93a6d2b1677526b53f6c3ed8b160ad24e05405cd098dd9e90dfefc7f539ccbf5ef5cd06b0af1d27f312e52e9
7880ae066d436ec167938022fea4e6cbec39729da151943a32f362c197f24bd9bdde8c9a053350308fe8aeb56ba48f22

--SHA512 Hex--
7dd5506c70b969c37e505a1279634b10e1ad9f525cdda2048d8f7b690e7cfc485c88d24bc5393eae55f4e38f3939928bcacbdb65534f0cb8c6cf6d20bf33b05c
a0429985eb1c57fd191dfb9dc23e8f3209446a8bb75646c507688d5e29c6988ce7416139e76f877d86370670445b2e47246ce774f666a7786a0ed229408ca964
b263fd0a6028f6fe42da8036966ccb01375a288d3a63197e2ef494461bff40e4ea43ebc6876c149f29cdc39799bb2fd2f19df21aba6b735f27fd9a3480fff2ef

FUN_HMAC_SHA384_HEX

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA384_HEX>>
Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA384 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
--MD5 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5_HEX>>

--SHA1 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1_HEX>>

--SHA256 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256_HEX>>

--SHA384 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384_HEX>>

--SHA512 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA512_HEX>>
--MD5 Hex--
1080a305892a216e87a54d153a420005
294711f72ad3ffeb14c15fd195c964e1
34c5811eb2c47910e521e4a9634235d8

--SHA1 Hex--
023c92635bb786206e58b2fbb791df6f044bf0a9
8f35b230a8cff6ecca930b01b0a52748493fb96e
4cb379a7a1ca15c224ff9bc96cb1bd22588ed3e8

--SHA256 Hex--
fb284109ec37dc16ef87e45aba6723ec07f7c2e353f2945ea53d077cfb7eeab8
0b442c26a27576cf2f271e486482449208c0e82d59c79d055162737cf5b7a4e1
8384585c49442a493a338b8e0dacd3d1c4aeca055c8ee87cc9c99820eab92687

--SHA384 Hex--
fffda1895889e5f638320c1ae73512e8bf9d122c2be90717fd6a18eb2d6127c2f02a9a800739fd3560f5974f1e2dd262
e3c6c0eb93a6d2b1677526b53f6c3ed8b160ad24e05405cd098dd9e90dfefc7f539ccbf5ef5cd06b0af1d27f312e52e9
7880ae066d436ec167938022fea4e6cbec39729da151943a32f362c197f24bd9bdde8c9a053350308fe8aeb56ba48f22

--SHA512 Hex--
7dd5506c70b969c37e505a1279634b10e1ad9f525cdda2048d8f7b690e7cfc485c88d24bc5393eae55f4e38f3939928bcacbdb65534f0cb8c6cf6d20bf33b05c
a0429985eb1c57fd191dfb9dc23e8f3209446a8bb75646c507688d5e29c6988ce7416139e76f877d86370670445b2e47246ce774f666a7786a0ed229408ca964
b263fd0a6028f6fe42da8036966ccb01375a288d3a63197e2ef494461bff40e4ea43ebc6876c149f29cdc39799bb2fd2f19df21aba6b735f27fd9a3480fff2ef

FUN_HMAC_SHA512_HEX

Syntax:
<<secret_key[--non-base64]|~|input_string,FUN_HMAC_SHA512_HEX>>
Returns a HEX string of Hash-based Message Authentication Code (HMAC) by using the SHA512 hash function (Hash input data using user defined secret key)

Parameters:

NameDescription
secret_key[--non-base64][String] Secret Key you like to use to produce hash. Append --non-base64 after secret key if Key is Non-Base64 (i.e. some password which is not Base64)
input_string[String] Input string for which you like to produce Hash

Examples:

ExampleSample OutputDescription
--MD5 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_MD5_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_MD5_HEX>>

--SHA1 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA1_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA1_HEX>>

--SHA256 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA256_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA256_HEX>>

--SHA384 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA384_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA384_HEX>>

--SHA512 Hex--
<<a2V5MTIz||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<PassW0rd--non-base64||Hi my name is A,FUN_HMAC_SHA512_HEX>>
<<a2V5MTIz||POST\napi-key:ABCD12345\n/my/api/url,FUN_HMAC_SHA512_HEX>>
--MD5 Hex--
1080a305892a216e87a54d153a420005
294711f72ad3ffeb14c15fd195c964e1
34c5811eb2c47910e521e4a9634235d8

--SHA1 Hex--
023c92635bb786206e58b2fbb791df6f044bf0a9
8f35b230a8cff6ecca930b01b0a52748493fb96e
4cb379a7a1ca15c224ff9bc96cb1bd22588ed3e8

--SHA256 Hex--
fb284109ec37dc16ef87e45aba6723ec07f7c2e353f2945ea53d077cfb7eeab8
0b442c26a27576cf2f271e486482449208c0e82d59c79d055162737cf5b7a4e1
8384585c49442a493a338b8e0dacd3d1c4aeca055c8ee87cc9c99820eab92687

--SHA384 Hex--
fffda1895889e5f638320c1ae73512e8bf9d122c2be90717fd6a18eb2d6127c2f02a9a800739fd3560f5974f1e2dd262
e3c6c0eb93a6d2b1677526b53f6c3ed8b160ad24e05405cd098dd9e90dfefc7f539ccbf5ef5cd06b0af1d27f312e52e9
7880ae066d436ec167938022fea4e6cbec39729da151943a32f362c197f24bd9bdde8c9a053350308fe8aeb56ba48f22

--SHA512 Hex--
7dd5506c70b969c37e505a1279634b10e1ad9f525cdda2048d8f7b690e7cfc485c88d24bc5393eae55f4e38f3939928bcacbdb65534f0cb8c6cf6d20bf33b05c
a0429985eb1c57fd191dfb9dc23e8f3209446a8bb75646c507688d5e29c6988ce7416139e76f877d86370670445b2e47246ce774f666a7786a0ed229408ca964
b263fd0a6028f6fe42da8036966ccb01375a288d3a63197e2ef494461bff40e4ea43ebc6876c149f29cdc39799bb2fd2f19df21aba6b735f27fd9a3480fff2ef

JSON Functions

FUN_JSONENC

Syntax:
<<input_string,FUN_JSONENC>>
Encodes string for JSON value (e.g. {NEWLINE} is replaced to \r\n, double quote to \", {TAB} to \\t )

Parameters:

NameDescription
input_string[String] Input string which you like to encode

Examples:

ExampleSample OutputDescription
<<AAA{NEWLINE}BBB{NEWLINE}CCC,FUN_JSONENC>>
AAA\r\nBBB\r\nCCC
{NEWLINE} is replaced with encoded string \r\n
<<This is "double quoted" string,FUN_JSONENC>>
This is \"double quoted\" string
Double quote is replaced with encoded string \"
<<Col1{TAB}Col2,FUN_JSONENC>>
{TAB} character is replaced by \t

FUN_JSONDEC

Syntax:
<<input_string,FUN_JSONDEC>>
Decodes JSON string (e.g. \r\n is replaced to {NEWLINE}, \" to double quote, \\t to {TAB})

Parameters:

NameDescription
input_string[String] Input string which you like to decode

Examples:

ExampleSample OutputDescription
<<AAA\r\nBBB\r\nCCC,FUN_JSONDEC>>
AAA{NEWLINE}BBB{NEWLINE}CCC
\r\n is replaced by {NEWLINE}
<<This is \"double quoted\" string,FUN_JSONDEC>>
This is "double quoted" string
\" is replaced with Double quote
<<Col1\tCol2,FUN_JSONDEC>>
Col1{TAB}Col2
\t is replaced by {TAB}

FUN_JSON_TO_TEXT

Syntax:
<<input_json|~|json_path[|~|separator][|~|throw_error_if_nomatch],FUN_JSON_TO_TEXT>>
Extracts Text from JSON array using JSON Path expression. You can specify expression like $.data[*] or $.data[*].email. If document is Array (i.e. starts with [ ) then root is referred as $.data[*]

Parameters:

NameDescription
input_json[String] JSON document from which you like to extract text.
json_path[String] JSONPath Filter expression you like to extract
separator (Optional)[String] String to use as separator to join multiple matches. You may use \r (carriage return),\n (linefeed),\r\n (newline),\t (tab) Default={space}
throw_error_if_nomatch (Optional)[Boolean] Throw error if match not found for supplied JSON Path expression. Default=false

Examples:

ExampleSample OutputDescription
<<['A','B','C']|~|$.data[*],FUN_JSON_TO_TEXT>>
A B C
<<['A','B','C']|~|$.data[*]|~|;,FUN_JSON_TO_TEXT>>
A;B;C
<<['A','B','C']|~|$.data[*]|~|\n,FUN_JSON_TO_TEXT>>
A
B
C
<<[{id:'A'},{id:'B'},{id:'C'}]|~|$.data[*].id|~|\n,FUN_JSON_TO_TEXT>>
A
B
C
<<{id:'A'}|~|$.id,FUN_JSON_TO_TEXT>>
A
<<{id:'A'}|~|$.fake|~||~|true,FUN_JSON_TO_TEXT>>
A
Throws error ($.fake not found)

XML / HTML Functions

FUN_XMLENC

Syntax:
<<input_string,FUN_XMLENC>>
Encodes plain text to XML encoded value (e.g. > is replaced to &gt; and < is replaced to &lt; )

Parameters:

NameDescription
input_string[String] Input string which you like to encode

Examples:

ExampleSample OutputDescription
<<1<2<3,FUN_XMLENC>>
&quot;1&lt;2&lt;3&quot;

FUN_XMLDEC

Syntax:
<<input_string,FUN_XMLDEC>>
Decodes XML value to plain text (e.g. &gt; is replaced to > and &lt; is replaced to < )

Parameters:

NameDescription
input_string[String] Input string which you like to decode

Examples:

ExampleSample OutputDescription
<<&quot;1&lt;2&lt;3&quot;,FUN_XMLDEC>>
1<2<3

FUN_XML_TO_TEXT

Syntax:
<<input_xml|~|xml_path[|~|separator]|~|indent,FUN_XML_TO_TEXT>>
Extracts Text from XML using XPath expression. You can specify expression like /data/rows/row[0]/@name

Parameters:

NameDescription
input_xml[String] XML document from which you like to extract text.
xml_path[String] XPath Filter expression you like to extract
separator (Optional)[String] String to use as separator to join multiple matches. You may use \r (carriage return),\n (linefeed),\r\n (newline),\t (tab) Default={space}
indent[String] Indent selected nodes

Examples:

ExampleSample OutputDescription
<<<ns1:x xmlns:ns1="http://abc.com"><token>ABCD</token></ns1:x>|~|//*[local-name()='token'],FUN_XML_TO_TEXT>>
ABCD
This example shows how to extract data from element text when namespace prefixes used. See use of local-name() function.
<<<ns1:x xmlns:ns1="http://abc.com"><ns1:data sessionid="12345">abcdefg</ns1:data></ns1:x>|~|//*[local-name()='data']/@*[local-name()='sessionid'],FUN_XML_TO_TEXT>>
12345
This example shows how to extract data from attribute when namespace prefixes used. See use of local-name() function.
<<<x><row><id>A</id></row><row><id>B</id></row></x>|~|/x/row[*]/id,FUN_XML_TO_TEXT>>
A B
Extract id from all row elements and join values by space (default separator)
<<<x><row><id>A</id></row><row><id>B</id></row></x>|~|/x/row[*]/id|~|;,FUN_XML_TO_TEXT>>
A;B
Extract id from all row elements and join values by ; (separator)
<<<x><row><id>A</id></row><row><id>B</id></row></x>|~|/x/row[1]/id,FUN_XML_TO_TEXT>>
A
Extract id from first row elements
<<<x><row id="A" /><row id="B" /></x>|~|/x/row[1]/@id,FUN_XML_TO_TEXT>>
A
Extract id attribute from first row elements
<<<x><row id="A" /><row id="B" /></x>|~|/x/row[*]/@id,FUN_XML_TO_TEXT>>
A B
Extract id attribute from all row elements

FUN_NEW_GUID

Syntax:
<<[format],FUN_NEW_GUID>>
Creates a new unique GUID

Parameters:

NameDescription
format (Optional)[String] Output format of new GUID. Possible formats are d,n,p,b

Examples:

ExampleSample OutputDescription
<<FUN_NEW_GUID>>
12f4a35e-6d52-45f1-9788-8e3801d85704
<<d,FUN_NEW_GUID>>
b86abe10-a6ea-49c3-a5e8-383c8d565ec2
<<n,FUN_NEW_GUID>>
ec7bcd8842324379adfe2e7e31b8da24
<<p,FUN_NEW_GUID>>
(6711cee1-aaf7-41bb-a4b6-502409ae6ae6)
<<b,FUN_NEW_GUID>>
{6c8d8306-9449-440e-89be-8ee7549cc271}

Encoding Functions

FUN_URLENC

Syntax:
<<input_string,FUN_URLENC>>
Encodes input string to percentage encoding format for URL (e.g. A&B is encoded to A%26B)

Parameters:

NameDescription
input_string[String] Input string which you like to encode.

Examples:

ExampleSample OutputDescription
<<A&B,FUN_URLENC>>
A%26B
& is encoded as %26
<<*_*,FUN_URLENC>>
%2A_%2A
* is encoded as %2A
<<A B,FUN_URLENC>>
A+B
By default space is encoded as + rather than %20. If you want to encode space using percent encoding like other special characters then use FUN_URLENCDATA function so you get %20 rather than +. This is only needed in special case (i.e. Passing data via Body rather than URL)

FUN_URLDEC

Syntax:
<<input_string,FUN_URLDEC>>
Decodes url encoded value to plain text

Parameters:

NameDescription
input_string[String] URL encoded string which you like to decode.

Examples:

ExampleSample OutputDescription
<<A%26B,FUN_URLDEC>>
A&B
%26 is decoded as &
<<%2A_%2A,FUN_URLDEC>>
*_*
%2A is decoded as *
<<A+B%20C,FUN_URLDEC>>
A B C
+ or %20 is decoded as space

FUN_URLENCDATA

Syntax:
<<input_string,FUN_URLENCDATA>>
Encodes input string to percentage encoding format for URL using exact same rules as FUN_URLENCDATA except space is encoded as %20 rather than +

Parameters:

NameDescription
input_string[String] Input string which you like to encode.

Examples:

ExampleSample OutputDescription
<<A&B,FUN_URLENCDATA>>
A%26B
& is encoded as %26
<<*_*,FUN_URLENCDATA>>
%2A_%2A
* is encoded as %2A
<<A B,FUN_URLENCDATA>>
A%20B
space is encoded as %20 (use FUN_URLENC function if you like to encode space as + rather than %20)

FUN_BASE64ENC

Syntax:
<<input_text,FUN_BASE64ENC>>
Encodes input string to BASE64 format

Parameters:

NameDescription
input_text[String] Input string which you like to encode as Base64 text.

Examples:

ExampleSample OutputDescription
<<ABCDEF123##,FUN_BASE64ENC>>
QUJDREVGMTIzIyM=
<<myuser1:MyP@ssWord,FUN_BASE64ENC>>
bXl1c2VyMTpNeVBAc3NXb3Jk

FUN_BASE64DEC

Syntax:
<<input_text,FUN_BASE64DEC>>
Decodes base64 encoded string to plain text

Parameters:

NameDescription
input_text[String] Input string which you like to decode from Base64 text to plain text.

Examples:

ExampleSample OutputDescription
<<QUJDREVGMTIzIyM=,FUN_BASE64DEC>>
ABCDEF123##
<<bXl1c2VyMTpNeVBAc3NXb3Jk,FUN_BASE64DEC>>
myuser1:MyP@ssWord

Number Functions

FUN_SEQUENCE

Syntax:
<<[seed_number],FUN_SEQUENCE>>
Returns a number in a sequence (adds +1 in last number)

Parameters:

NameDescription
seed_number (Optional)[String] Start number for sequence

Examples:

ExampleSample OutputDescription
<<FUN_SEQUENCE>>
1
Call same function again returns 2.. 3.. 4.. so on
<<1000,FUN_SEQUENCE>>
1000
Call same function again returns 1001.. 1002.. 1003.. so on

FUN_RANDOM_INT

Syntax:
<<[max_number],FUN_RANDOM_INT>>
Generates a random integer from 1 to given max range

Parameters:

NameDescription
max_number (Optional)[String] Maximum integer for boundary. Default=2147483647

Examples:

ExampleSample OutputDescription
<<FUN_RANDOM_INT>>
112345667
Generate random number between 1 and 2147483647
<<1000,FUN_RANDOM_INT>>
1234
Generate random number between 1 and 1000