# その他の formula
ここでは、多数のデータ型に使用する formula について説明します。
# null
null または nil 値を与えます。これを入力項目に渡しても、値が null に更新されるわけではないことに注意してください。項目の値を null に更新するには、clear formula を使用します。入力項目は必ず formula モードに切り替えてください。
# clear
ターゲットアプリの項目の値をクリアして null または nil にします。入力項目は必ず formula モードに切り替えてください。
ターゲットアプリの項目をクリアするには、null formula ではなく clear formula を使用する
# skip
ターゲットアプリのこの項目には何も渡しません。すでに項目に値がある場合は、そのまま変更されません。
# 例
以下の例では、更新された Salesforce レコードを使って Marketo のリードを更新します。Salesforce の Company が存在するかどうかをチェックし、存在する場合は Salesforce の Company を Marketo に出力します。存在しない場合、Marketo レコードを変更しません。
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('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