이제 변수값 설정 노드에서 변수값으로 계산식을 지정할 수 있습니다. 간단한 수식 뿐 아니라 다양한 함수들도 사용할 수 있어 큰 의미가 있는 업데이트입니다.

이 기능을 사용하려면 우선 변수값 설정 노드를 생성하고 '변수 추가' 를 클릭한 다음, 대상 변수를 지정하고 '수식' 형식을 선택하면 됩니다. '지정될 수식' 필드에 계산식을 입력합니다.

위 예시에서 알 수 있듯이 계산식에는 변수도 포함시킬 수 있습니다. 사용할 수 있는 연산과 함수는 아래와 같습니다.

기본 연산

  • +, -, *, /, ( )
  • % (나머지)
    예시: 100%2 = 0, 100%8 = 4.
  • ** (거듭제곱)
    예시: 100**2 = 10,000.

함수

모든 함수는 함수명( ) 형식으로 사용합니다. 예를 들면 abs(-5) 등입니다.

  • to_number: 값을 숫자 형식으로 변환합니다.
    예시: to_number('4') = 4
  • to_string: 값을 문자열 형식으로 변환합니다.
    예시: to_string(7) = '7'
  • to_boolean: 값을 불리언(참/거짓) 형식으로 변환합니다.
    예시: to_boolean(1) = True
  • length = 값의 길이를 리턴합니다.
    예시: length('abcde') = 5
  • abs = 절대값을 리턴합니다.
    예시: abs(-5) = 5
  • sin, cos, tan = sin, cos, tan 값을 리턴합니다.
    예시: tan(90) = 1
  • ceil, floor, round = 올림, 버림, 반올림 값을 리턴합니다.
    예시: floor(2.1) = 2
  • random, random_int = random() 은 0과 1 사이의 랜덤한 수를 리턴합니다. random_int(min, max) 는 min 과 max 값 사이의 랜덤한 정수를 리턴합니다.
    예시: random_int(-1, 2) = -1, 0, 1, or 2
  • unix_timestamp:  Unix timestamp 값을 리턴합니다.
    예시: unix_timestamp() = 1601672447

고급 함수

고급 함수들은 주로 JSON 이나 문자열 목록 형식 변수값을 다루는 데 사용됩니다. 함수에 사용하는 값들은 모두 같은 형식의 변수로 치환 가능합니다. 문자열을 값으로 사용하는 경우 반드시 따옴표를 사용해 주세요 (예시: 'Allganize').

dict

  • 사용 형식: dict(키1, 값1, 키2, 값2, ...)
  • 주어진 키와 값 쌍을 이용해 JSON 형식 변수를 생성합니다. 대상 JSON 에 키가 이미 존재한다면 값을 덮어씁니다.
  • 결과를 저장할 변수 타입: JSON
  • 예시: @NAME 변수가 'Allganize' 를 값으로 가지는 경우, dict('Name',@NAME,'Email','test@allganize.ai') = {'Name':'Allganize', 'Email':'test@allganize.ai'}

dict_set

  • 사용 형식: dict_set(@JSON_변수, 키1, 값1, 키2, 값2,...)
  • JSON 변수에 주어진 키와 값을 추가합니다. 대상 JSON 에 키가 이미 존재한다면 값을 덮어씁니다.
  • 결과를 저장할 변수 타입: JSON
  • 예시: @JSON_VAR 변수가 {'Name':'Allganize'} 를 값으로 가지는 경우, dict_set(@JSON_VAR,'Email','test@allganize.ai') = {'Name':'Allganize', 'Email':'test@allganize.ai'}

dict_del

  • 사용 형식: dict_del(@JSON_변수, 키)
  • 지정된 키를 JSON 변수에서 제거합니다.
  • 결과를 저장할 변수 타입: JSON
  • 예시: @JSON_VAR 변수가 {'Name':'Allganize', 'Email':'test@allganize.ai'} 를 값으로 가지는 경우, dict_del(@JSON_VAR,'Email') = {'Name':'Allganize'}

dict_update

  • 사용 형식: dict_update(@JSON_변수1, @JSON_변수2)
  • 두 JSON 형식을 합칩니다. 동일한 키가 존재하는 경우 뒤의 변수에서 값을 가져옵니다.
  • 결과를 저장할 변수 타입: JSON
  • 예시: @JSON_VAR 변수가 {'Name':'Allganize', 'Email':'test@allganize.ai'}, @JSON_VAR2 변수가 {'Name':'Alli', 'Type':'AnswerBot'} 를 값으로 가지는 경우, dict_update(@JSON_VAR, @JSON_VAR2) = {'Name':'Alli', 'Email':'test@allganize.ai', 'Type':'AnswerBot'}

list

  • 사용 형식: list(문자열1, 문자열2, ...)
  • 주어진 문자열로 문자열 목록 형식의 변수를 생성합니다.
  • 결과를 저장할 변수 타입: 문자열 목록
  • 예시: list('Allganize', 'Test') = ['Allganize', 'Test']

list_append

  • 사용 형식: list_append(@문자열_목록_변수, 문자열1, 문자열2, ...)
  • 문자열 목록 변수에 주어진 문자열을 추가합니다.
  • 결과를 저장할 변수 타입: 문자열 목록
  • 예시: @STR_LIST 변수가 ['Allganize', 'Test'] 를 값으로 가지는 경우, list_append(@STR_LIST,"Alli") = ['Allganize', 'Test', 'Alli']

list_reverse

  • 사용 형식: list_reverse(@문자열_목록_변수)
  • 문자열 목록 변수에 포함된 값의 순서를 역순으로 바꿉니다.
  • 결과를 저장할 변수 타입: 문자열 목록
  • 예시: @STR_LIST 변수가 ['Allganize', 'Test'] 를 값으로 가지는 경우, list_reverse(@STR_LIST) = ['Test', 'Allganize']

get_by_json_path

  • 사용 형식: get_by_json_path(@JSON_변수, JSON_경로)
  • JSON 변수에서 JSON 경로에 있는 값을 리턴합니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @JSON_VAR 변수가 {'Name':'Allganize', 'Email':'test@allganize.ai'} 를 값으로 가지는 경우, get_by_json_path(@JSON_VAR, '$.Email') = 'test@allganize.ai'

contains

  • 사용 형식: contains(@문자열_목록_변수, 문자열)
  • 문자열이 문자열 목록에 포함되었는지 여부에 따라 불리언 (True 혹은 False) 값을 리턴합니다.
  • 결과를 저장할 변수 타입: Boolean 혹은 문자열
  • 예시: @STR_LIST 변수가 ['Allganize', 'Test'] 를 값으로 가지는 경우, contains(@STR_LIST, 'Allganize') = 'True'

append

  • 사용 형식: append(@문자열_목록_변수, 문자열)
  • 문자열을 문자열 목록에 추가합니다.
  • 결과를 저장할 변수 타입: 문자열 목록
  • 예시: @STR_LIST 변수가 ['Allganize', 'Test'] 를 값으로 가지는 경우, contains(@STR_LIST, 'Variable') = ['Allganize', 'Test', 'Variable']

unique

  • 사용 형식: unique(@문자열_목록_변수)
  • 문자열 목록에서 중복된 값을 제거합니다.
  • 결과를 저장할 변수 타입: 문자열 목록
  • 예시: @STR_LIST 변수가 ['Allganize', 'Test', 'Test'] 를 값으로 가지는 경우, unique(@STR_LIST) = ['Allganize', 'Test']

urlencode

  • 사용 형식: urlencode(@JSON_변수)
  • JSON 형식을 URL 인코딩 형식으로 변환합니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @JSON_VAR 변수가 {'key':'hello world!'} 를 값으로 가지는 경우, urlencode(@JSON_VAR) = 'key=hello+world%21'

regex_sub, regex_isub

  • 사용 형식: regex_sub(정규표현식_패턴, 문자열1, 문자열2) 혹은 regex_isub(정규표현식_패턴, 문자열1, 문자열2)
  • 문자열 2에서 주어진 정규표현식 패턴을 찾아 문자열 1로 대체합니다. regex_sub 는 대소문자를 구별하며 regex_isub 는 하지 않습니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @STR 변수가 'ooAoO' 를 값으로 가지는 경우, regex_isub(r'o{2}', 'A', @STR) = 'AAA'

date_format

  • 사용 형식: date_format(정규표현식_날짜형식, 날짜)
  • 날짜를 주어진 정규표현식 형태로 변환합니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @DATE (날짜 혹은 문자열 타입) 변수가 '2020-01-11' 를 값으로 가지는 경우, date_format(r'%Y-%m', @DATE) = '2020-01'

find_all, find_iall

  • 사용 형식: find_all(정규표현식_패턴, 문자열) 혹은 find_iall(정규표현식_패턴, 문자열)
  • 문자열에서 주어진 정규표현식 패턴을 찾아 첫번째 결과를 리턴합니다. find_all 은 대소문자를 구별하며 find_iall 은 하지 않습니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @STR 변수가 'Type of the OS: Windows' 를 값으로 가지는 경우, find_iall(r'(windows|mac|linux)', @STR) = 'Windows'

substr

  • 사용 형식: substr(문자열, 숫자)
  • 문자열에서 첫 [숫자] 개의 문자만 리턴합니다.
  • 결과를 저장할 변수 타입: 문자열
  • 예시: @STR 변수가 '3months' 를 값으로 가지는 경우, substr(@STR, 2) = '3m'