# その他の formula

ここでは、多数のデータ型に使用する formula について説明します。

# null

null または nil 値を与えます。これを入力項目に渡しても、値が null に更新されるわけではないことに注意してください。項目の値を null に更新するには、clear formula を使用します。入力項目は必ず formula モードに切り替えてください。

入力項目の null formula


# clear

ターゲットアプリの項目の値をクリアして null または nil にします。入力項目は必ず formula モードに切り替えてください。

入力項目の clear formula ターゲットアプリの項目をクリアするには、null formula ではなく clear formula を使用する


# skip

ターゲットアプリのこの項目には何も渡しません。すでに項目に値がある場合は、そのまま変更されません。

#

以下の例では、更新された Salesforce レコードを使って Marketo のリードを更新します。Salesforce の Company が存在するかどうかをチェックし、存在する場合は Salesforce の Company を Marketo に出力します。存在しない場合、Marketo レコードを変更しません。

入力項目の skip formula skip formula のサンプルユースケース

更新されたデータピルが空の場合、この項目はスキップされます

skip formula は、Update アクションで既存の値を変更したくない場合に使用します。


# uuid

UUID を生成します。

#

結果
uuid "c52d735a-aee4-4d44-ba1e-bcfa3734f553"

# encrypt

入力文字列を AES-256-CBC アルゴリズムを使って共通鍵で暗号化します。暗号化された出力文字列は RNCryptor V3 (opens new window) 形式でパックされ、base64 にエンコードされます。

注 : 暗号鍵をレシピにハードコードしないでください。暗号鍵の格納には、アカウントプロパティ (名前の key または password) を使用してください。

#

encrypt([ssn], [encryption_key])


# decrypt

暗号化された入力文字列を AES-256-CBC アルゴリズムを使って共通鍵で復号します。暗号化された入力文字列は RNCryptor V3 (opens new window) 形式でパックされ、base64 にエンコードされている必要があります。

注 : 暗号鍵をレシピにハードコードしないでください。暗号鍵の格納には、アカウントプロパティ (名前の key または password) を使用してください。

#

decrypt([encrypted_ssn], [encryption_key])


# encode_sha256

文字列またはバイナリの配列を SHA256 アルゴリズムを使ってエンコードします。

#

"hello".encode_sha256


# encode_hex

バイナリ文字列を16進表現に変換します。

#

結果
"0101010101011010".encode_hex "30313031303130313031303131303130"

# decode_hex

16進数をバイナリ文字列にデコードします。

#

結果
"30313031303130313031303131303130".decode_hex "0101010101011010"

# decode_url

文字列を URL デコードします。この formula では CGI.unescape を使用して URL デコードを行います。

#

結果
'https%3A%2F%2Fworkato.com%2Ffoo%3Fbar%3Dat%23anchor'.decode_url "https://workato.com/foo?bar=at#anchor (opens new window)"
'%27Stop%21%27+said+Fred"'.decode_url "'Stop!' said Fred"

# encode_base64

Base64 アルゴリズムを使用してエンコードします。

#

結果
"Hello World!".encode_base64 "aGVsbG8gd29ybGQh"

# decode_base64

Base64 アルゴリズムを使用してデコードします。

#

結果
"aGVsbG8gd29ybGQh".decode_base64 "Hello World!"

# encode_url

文字列を URL エンコードします。

#

結果
"Hello World".encode_url "Hello%20World"

# encode_urlsafe_base64

URL セーフの修正が盛り込まれた Base64 アルゴリズムを使用してエンコードします。

#

結果
"Hello World".encode_urlsafe_base64 "SGVsbG8gV29ybGQ="

# decode_urlsafe_base64

URL セーフの修正が盛り込まれた Base64 アルゴリズムを使用してデコードします。

#

結果
"SGVsbG8gV29ybGQ".decode_urlsafe_base64 "Hello World"

# as_string

バイトシーケンスを指定されたエンコーディングの文字列としてデコードします。

#

結果
"SGVsbG8gV29ybGQ=".decode_base64.as_string('utf-8') "Hello World"

# as_utf8

バイトシーケンスを UTF-8 文字列としてデコードします。

#

結果
"SGVsbG8gV29ybGQ=".decode_base64.as_utf8 "Hello World"

# to_hex

バイナリ文字列を16進表現に変換します。

#

結果
"SGVsbG8gV29ybGQ=".decode_base64.to_hex "48656c6c6f20576f726c64"

# SHA1

SHA1 暗号化アルゴリズムを使用して、指定された文字列を暗号化します。詳しくは、こちら (opens new window)を参照してください。

#

結果
"abcdef".sha1.encode_base64 "H4rBDyPFtbwRZ72oS4M+XAV6d9I="

# HMAC formula

さまざまなアルゴリズムを使って HMAC 署名を生成します。

#

署名アルゴリズム
SHA-256 "username:password:nonce".hmac_sha256("key")
SHA-1 "username:password:nonce".hmac_sha1("key")
SHA-512 "username:password:nonce".hmac_sha512("key")
MD5 "username:password:nonce".hmac_md5("key")

# md5_hexdigest

文字列を受け取り、MD5 メッセージダイジェストアルゴリズムを使ってメッセージダイジェストを生成します。

#

結果
"hello".md5_hexdigest "5d41402abc4b2a76b9719d911017c592"

# jwt_encode

RS256、RS384、RS512、HS256 のいずれかのアルゴリズムを使用して、JWT を作成します。追加の名前付きパラメータがヘッダーに追加されます (次の例の kid)。

#

結果
workato.jwt_encode({ name: "John Doe" }, "PEM key", 'RS256') "eyJhbGciO..."
workato.jwt_encode({ name: "John Doe" }, "PEM key", 'RS512', kid: "24668") "eyJ0eXAiO..."
workato.jwt_encode({ name: "John Doe" }, "my$ecretK3y", 'HS256', kid: "24668") "eyJ0eXAiO..."
workato.jwt_encode({ name: "John Doe" }, "my$ecretK3y", 'HS256') "eyJ0eXAiO..."

# parse_yaml

YAML 文字列を解析します。true、false、nil、数値、文字列、配列、ハッシュをサポートしています。

#

結果
workato.parse_yaml("---\nfoo: bar") "{ "foo" => "bar" }"
workato.parse_yaml("---\n- 1\n- 2\n- 3\n") "[1, 2, 3]"

# render_yaml

オブジェクトを YAML 文字列に変換します。

#

結果
workato.render_yaml({ "foo" => "bar" }) "---\nfoo: bar\n"
workato.render_yaml([1,2,3]) "---\n- 1\n- 2\n- 3\n"

# lookup

この formula を使用すると、Workato の Lookup table からキーを使って値を検索することができます。大文字と小文字が区別され、データ型も区別されます。

lookup formula でデータピルを使う場合、データを適切な形式に変換することをお勧めします。たとえば、整数と文字列の両方を含んだカラムと比較する場合、整数型のデータピルは .to_s formula で文字列に変換する必要があります。

#

例として、名前が Department Codes で ID が6の次の Lookup table を使用します。

サンプルの部門コード Lookup table サンプルの部門コード Lookup table

結果
lookup('Department Lookup table', 'Department code': 'ACC')['Department'] "Accounting"
lookup('Department Lookup table', 'Department code': 'SLS')['Department'] "Sales"
lookup('Department Lookup table', 'Department': 'Marketing')['Department code'] "MKT"
lookup('Department Lookup table', 'Department': 'marketing')['Department code'] nil
一致では大文字と小文字が区別されるため、値「Marketing」を見つけることができない
lookup('Department Lookup table', 'Department': 'Marketing')['Department Code'] nil
一致では大文字と小文字が区別されるため、カラム「Department Code」を見つけることができない
lookup('6', 'Department code': 'ACC')['Department'] "Accounting"
注 : Lookup table の ID は必ず引用符 "" で囲んでください。

Lookup table の ID の使用

Lookup table の ID と名前はどちらを使用しても構いません。Lookup table の ID は URL で確認できます。

例:

https://app.workato.com/lookup_tables/<lookup_table_id>

# lookup_table

この formula を使用すると、静的な Lookup table を作成してキーと値を定義できます。大文字と小文字が区別され、データ型も区別されます。

#

結果
{"key1" => "value1", "key2" => "value2", "key3" => "value3"}["key2"] "value2"
{"High" => "urgent", "Medium" => "mid", "Low" => "normal"}["Low"] "normal"
{"High" => "urgent", "Medium" => "mid", "Low" => "normal"}["low"] nil
{"High" => "urgent", "Medium" => "mid", "Low" => "normal"}["normal"] nil
{1 => "1", 2 => "2", 3 => "3"}[2] "2"
{1 => "1", 2 => "2", 3 => "3"}[2.0] nil
{1 => "1", 2 => "2", 3 => "3"}["2"] nil


Last updated: 2023/8/31 1:07:14