変数の値を設定ノードで変数の値に計算式を指定することができます。簡単な数式だけでなく、様々な関数も利用することができます。

この機能を使用するには、まず、変数の値を設定ノードを作成します。「変数を追加」をクリックし、対象の変数を指定して「数式」の形式を選択します。「割り当てられる数式」フィールドに計算式を入力します。

上記の例の様に、数式に変数を含めることもできます。
使用できる演算と関数は以下の通りです。

基本的な計算

  • +, -, *, /, ( )
  • % (係数)
    例: 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: raandom()は、0から1までの乱数値を返します。random_int(min、max)は、最小値と最大値の間のランダムな整数値を返します。
    例: random_int(-1, 2) = -1, 0, 1, 2の中から1つ
  • unix_timestamp: unix時間を返します。
    例: unix_timestamp() = 1601672447

アドバンスド関数

以下の関数は、JSONまたは文字列リスト型の変数を編集するために使用されます。
関数で文字列値を使用する場合は、引用符を使用することを忘れないでください。(例:'Allganize')

dict

  • 形式: dict(key1, value1, key2, value2, ...)
  • キーと値のペアを使用して、JSON型変数の構造を作成します。キーが存在する場合、関数は値を上書きします。
  • 変数のタイプ: JSON
  • 例: @NAMEが 'Allganize' という値を持ち、JSON型の変数を作成したい場合、下記となります。
    dict('Name',@NAME,'Email','test@allganize.ai') = {'Name':'Allganize','Email':'test@allganize.ai'}

dict_set

  • 形式: dict_set(@JSON_variable, key1, value1, key2, value2...)
  • キーと値をJSON変数に追加します。 キーが存在する場合、関数は値を上書きします。
  • 変数のタイプ: JSON
  • 例: @JSON_VAR が {'Name':'Allganize'} を値として持ち、@JSON_VARに'Email'をキー、'test@allganize.ai'を値として追加したい場合、下記となります。
    dict_set(@JSON_VAR,'Email','test@allganize.ai') = {'Name':'Allganize', 'Email':'test@allganize.ai'}

dict_del

  • 形式: dict_del(@JSON_variable, key)
  • JSON変数からキーを削除します。
  • 変数のタイプ: JSON
  • 例: @JSON_VAR が{'Name':'Allganize', 'Email':'test@allganize.ai'} を値として持ち、Emailのキーを削除する場合、下記となります。
    dict_del(@JSON_VAR,'Email') = {'Name':'Allganize'}

dict_update

  • 形式: dict_update(JSON_variable_1, JSON_variable_2)
  • 2つのJSON変数をマージします。 2つのJSON変数に同じキーがある場合、後者の値が優先されます。
  • 変数のタイプ: JSON
  • 例: @JSON_VAR が {'Name':'Allganize', 'Email':'test@allganize.ai'}を値として持ち、@JSON_VAR2 が {'Name':'Alli', 'Type':'AnswerBot'}を値として持ち、この2つのJSON変数をマージする場合、下記となります。
    dict_update(@JSON_VAR, @JSON_VAR2) = {'Name':'Alli', 'Email':'test@allganize.ai', 'Type':'AnswerBot'}

json_loads

  • 形式: json_loads(@JSON_variable, 'JSON_form')
  • JSON形式をJSON変数として保存します。
  • 変数のタイプ: JSON
  • Example: json_loads(@JSON_VAR, '{'Name':'Alli', 'Email':'test@allganize.ai'}')

json_dumps

  • 形式: json_dumps(@JSON_variable)
  • JSON変数の値を文字列に変換します。
  • 変数のタイプ: String
  • 例: json_dumps(@JSON_VAR)

list

  • 形式: list(string1, string2, ...)
  • 文字列を使用して文字列リスト型の変数を作成します。
  • 変数のタイプ:文字列のリスト
  • 例: list('Allganize', 'Test') = ['Allganize', 'Test']

list_append

  • 形式: list_append(@string_list_variable, string1, string2, ...)
  • 文字列リストに任意の文字列に追加します。
  • 変数のタイプ: 文字列リスト
  • 例: @STR_LIST が 値として['Allganize', 'Test']を持ち、'Alli'という文字列を追加する場合、下記となります。
    list_append(@STR_LIST,'Alli') = ['Allganize', 'Test', 'Alli']

list_reverse

  • 形式: list_reverse(@string_list_variable)
  • リストの要素の並び順を逆にします。
  • 変数のタイプ: 文字列リスト
  • 例: @STR_LIST が値として ['Allganize', 'Test'] を持ち、要素を逆に並べたい場合、下記となります。
    list_reverse(@STR_LIST) = ['Test', 'Allganize']

get_by_json_path

  • 形式: get_by_json_path(@JSON_variable, JSON_path)
  • JSON変数からJSONパスを指定することで指定した値を返します。
  • 変数のタイプ: 文字列
  • 例: @JSON_VAR が 値として {'Name':'Allganize', 'Email':'test@allganize.ai'} を持ち、Emailの値を返す場合は下記となります。
    get_by_json_path(@JSON_VAR, '$.Email') = 'test@allganize.ai'

storage_set / storage_get

  • 形式: storage_set('key', @variable) / storage_get('key')
  • storage_setは、変数値をプロジェクトレベルのキーに保存します。キーは任意のテキストにすることができます。保存された値は、storge_getを使用して取得できます。値を割り当てる変数は、保存された変数と同じタイプである限り、任意のタイプにすることができます。
  • 変数のタイプ:保存された変数と同じタイプ
  • 例: 文字列の変数の値がstorage_set( 'string',@string_variable)を使用して保存されている場合、storage_get( 'string')を使用してプロジェクト内のスキルまたは顧客の値を取得し、それを文字列変数に割り当てることができます。

contains

  • 形式: contains(@string_list_variable, string)
  • 文字列リストにある文字列が含まれているがどうかを確認し、含まれているかをTrue/Falseで返します。
  • 変数のタイプ: True/False
  • 例: @STR_LIST が ['Allganize', 'Test'] を値として持ち、Allganizeという文字列がリストに含まれているかを確認する場合、下記となります。 contains(@STR_LIST, 'Allganize') = 'True'

append

  • 形式: append(@string_list_variable, string)
  • 文字列リストに文字列の要素を追加します。
  • 変数のタイプ: 文字列リスト
  • 例: @STR_LIST が ['Allganize', 'Test']を要素として持ち、リストにVariableという値を追加したい場合、下記となります。
    append(@STR_LIST, 'Variable') = ['Allganize', 'Test', 'Variable']

unique

  • 形式: unique(@string_list_variable)
  • 文字列リストから重複する値を削除します。
  • 変数のタイプ:文字列リスト
  • 例: @STR_LIST が ['Allganize', 'Test', 'Test'] を要素として持ち、重複する値を削除したい場合、下記となります。
    unique(@STR_LIST) = ['Allganize', 'Test']

urlencode

  • 形式: urlencode(@JSON_variable)
  • JSONの変数をURLにエンコードされた形式に変換します。
  • 変数のタイプ: 文字列
  • 例: @JSON_VARの中身が {'key':'hello world!'}であり、URLにエンコードしたい場合、下記となります。
    urlencode(@JSON_VAR) = 'key=hello+world%21'

urldecode

  • 形式: urldecode(string)
  • urlにエンコードされたstring型の変数をJSON形式に変換します。
  • 変数のタイプ: 文字列とJSON
  • 例: @STRの中身が 'key=hello+world%21' であり、JSON形式にエンコードしたい場合、下記となります。
    urldecode(@STR) = {'key':'hello world!'}

regex_sub, regex_isub

  • 形式: regex_sub(regex_pattern, string1, string2) or regex_isub(regex_pattern, string1, string2)
  • ある文字列にある正規表現パターンを別の文字列に置き換えます。regex_subでは大文字と小文字が区別されますが、regex_isubでは区別されません。
  • 変数のタイプ: 文字列
  • 例: @STRの文字列の値が 'ooAoO'であり、'o'を大文字・小文字関係なく、Aに置き換えたい場合、下記となります。
    regex_isub(r'o{2}', 'A', @STR) = 'AAA'

date_format

  • 形式: date_format(regex_date_format, date)
  • 日付を正規表現の日付形式に変換します。
  • 変数のタイプ: 文字列
  • 例: Data型かString型の@DATE が'2020-01-11'を値として持ち、正規表現を用いて特定の日付形式(年-月)に変換したい場合、下記となります。
    date_format(r'%Y-%m', @DATE) = '2020-01'

to_date

  • 形式: to_date(date_format, YMD_form(optional))
  • 日付を日付形式に変換します。
  • 変換元の日付のフォーマットは下記となります。
    YYYYMMDD, YYYY/MM/DD, YYYY-MM-DD, YYYY MM DD, YYYY M D YYYY-M-D, YYYY/M/D, YYMMDD, YY/M/D, YY-M-DD, YY M DD
  • オプションのYMDフォームにMDYを入力して、入力した日付形式で年/月/日の順序を変更できます。たとえば、MMDDYY、MM / DD / YYYYなどを使用できます。下記の例2を参照してください。
  • 変数のタイプ:文字列または日付形式
  • 例1: String型か数値である@DATEが'20210602'を値として持っており、日付のフォーマットを揃えたい場合、下記となります。
    to_date(@DATE) = '2021-06-02'
  • 例2: String型か数値である@DATEが'060221'を値として持っており、日付のフォーマットを揃えたい場合、下記となります。
    to_date(@DATE,"MDY") = '2021-06-02'

date_add

  • 形式: date_add(date, number)
  • 日付に日数を追加します。
  • 変数のタイプ: 日付
  • 例: Data型かString型の@DATE が'2020-01-11'を値として持ち、2日分日付を進めたい場合、下記となります。
    date_add(@DATE, 2) = '2020-01-13'

today

  • 形式: today()
  • 本日の日付を返します。
  • 変数のタイプ: 日付、または、文字列
  • 例: 本日の日付が2021年4月15日の場合、下記となります。
    today() = '2021-04-15'

first_day_of_month

  • 形式: first_day_of_month()
  • 今月の最初の日付を返します。
  • 変数のタイプ: 日付、または、文字列
  • 例: 本日の日付が2021年4月15日の場合、下記となります
    first_day_of_month() = '2021-04-01'

last_day_of_month

  • 形式: last_day_of_month()
  • 今月の最後の日付を返します。
  • 変数のタイプ: 日付、または、文字列
  • 例: 本日の日付が2021年4月15日の場合、下記となります。
    last_day_of_month() = '2021-04-30'

find_all, find_iall

  • 形式: find_all(regex_pattern, string) or find_iall(regex_pattern, string)
  • 文字列から正規表現パターンと一致する最初の結果を見つけて結果を返します。 find_allでは大文字と小文字が区別されますが、find_iallでは区別されません。
  • 変数のタイプ: 文字列
  • 例: @STR が 'Type of the OS: Windows' を値として持ち、OS名のみを抽出したい場合、下記となります。
    find_iall(r'(windows|mac|linux)', @STR) = 'Windows'

substr

  • 形式: substr(string, number)
  • 文字列の最初の[数値]文字を返します。
  • 変数のタイプ: 文字列
  • 例: @STR が '3months' を値として持ち、2文字抽出したい場合、下記となります。
    substr(@STR, 2) = '3m'

AllganizeのAIソリューション