その他の 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 形式でパックされ、base64 にエンコードされます。
注 : 暗号鍵をレシピにハードコードしないでください。暗号鍵の格納には、アカウントプロパティ (名前の key または password) を使用してください。
例
encrypt([ssn], [encryption_key])
decrypt
暗号化された入力文字列を AES-256-CBC アルゴリズムを使って共通鍵で復号します。暗号化された入力文字列は RNCryptor V3 形式でパックされ、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" |
'%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 暗号化アルゴリズムを使用して、指定された文字列を暗号化します。詳しくは、こちらを参照してください。
例
| 例 | 結果 |
|---|---|
"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: