Loading
支援的資料對應器與整合程序資料類型

支援的資料對應器與整合程序資料類型

瞭解資料類型以決定您可以與運算子搭配使用及傳送至函數的值類型。資料類型也會定義函數可傳回的值類型。與資料類型相關的主題包括具有特殊意義的常數,以及您可能會遇到的錯誤個案。

備註
備註 這些資料類型、常數和錯誤個案適用於 Omnistudio 資料對應器和整合程序的公式。如需 Omniscript 公式和彙總的資料類型相關資訊,請參閱在 Omniscript 中建立公式或彙總
  • Omnistudio 資料類型
    Omnistudio 資料類型用於表示要由「資料對應器」和「整合程序」公式評估或操作的值類型。資料類型適用於數字、字串、日期和時間、清單和陣列,以及 JSON 物件。
  • Omnistudio 常數
    Omnistudio 常數是具有特定值的關鍵字。這些是保留的字詞,您只能用來表示它們在「資料對應器」和「整合程序」公式中代表的值。
  • Omnistudio 錯誤個案
    當 Omnistudio 函數和運算子無法在「資料對應器」或「整合程序」公式中執行要求的作業時,會傳回錯誤。錯誤個案可能會發生在遺失或無效的參數,或無法在使用參數的內容中評估的值或運算式。無效的運算子或函數也可能發生錯誤個案。

Omnistudio 資料類型

Omnistudio 資料類型用於表示要由「資料對應器」和「整合程序」公式評估或操作的值類型。資料類型適用於數字、字串、日期和時間、清單和陣列,以及 JSON 物件。

Omnistudio 引擎的輸入寬鬆。當產生的資料類型為清除時,引擎會執行類型強制執行。例如,如果您串連字串與數字,則引擎會將數字轉換為字串。這些公式會傳回 "abc 123"

  • CONCAT("abc", ' ', 123)

  • "abc" + ' ' + 123

不過,您無法將其他數學運算子與字母和數字運算元組合在一起使用。這些公式會傳回錯誤回應的 {}

  • "abc" - 123

  • "abc" * 123

  • "abc" / 123

某些資料類型會壓縮子類型。此文件參照子類型,以便在描述參數和傳回值時更清楚。

資料類型

範例

描述

布林值

true

false

用於邏輯運算式的 True 和 False 值。如需布林值的詳細資訊,請參閱 支援的資料對應器和整合程序資料類型

數字

1

1.50

-1

-1.50

用於數學運算的數值。某些值屬於特定子類型。

  • 整數代表整數,例如 110000

  • 浮動值代表小數值,大小與精確度有限,例如 12345.673.141592

  • 雙位數代表小數值,其大小和精確率是浮動值的兩倍,例如 1234567890.12343.14159265358979

日期時間

"2002-02-15 16:35:30"

"02/15/2002 16:35:30"

"2002-02-15T16:35:30-0500"

"2/15/2002T16:35:30-0500"

"2002-02-15T16:00:00 -0800"

"02/15/2002T16:00:00 -0800"

"2002-02-15T00:00:00.000Z"

"2/15/2002T00:00:00.000Z"

用於時間作業的日期和時間值。某些值有特定子類型。

  • 日期僅包含日期時間中的日期值,例如 2002-02-01 (YYYY-MM-DD 格式) 和 02/01/2000 (MM/DD/YYYY 格式)。

  • 時間僅包含來自日期時間的時間值,例如 16:35:3016:35:30:500T16:35:00T16:35:00:500

在所有情況下,您都可以將輸入指定為符合 Day.js 格式的完整日期和時間。函數只會從格式中提取所需的資料。日期和時間值 (如字串) 必須以單引號或雙引號括住。

字串

"abc、DEF:123."

'abc、DEF:123.'

代表字元、文字、數字或日期的文字值。透過比較其個別字元的值,以詞彙圖形順序排序字串。您必須以單引號或雙引號括住字串。您可以嵌套單引號和雙引號,只要巢狀引號配對符合,例如「a 'b' c」。

與運算子和大多數函數的比較不區分大小寫。與字串函數的比較區分大小寫。

List

1, 2, 3

"a", "b", "c"

(1, 2, 3)

("a", "b", "c")

以逗號分隔的一系列值,通常以 () 括住 (括弧)。清單的值可以有任何資料類型,且可包含巢狀清單。清單為匿名 (未命名)。

  • 整數清單:1, 2, 3(1, 2, 3)

  • 字串清單:"a", "b", "c"("a", "b", "c")

陣列

[ 1, 2, 3 ]

[ "a", "b", "c" ]

[
  { "Item": 1 },
  { "Item": 2 }
]
{
  "ItemList": [
    { "Item": 1 },
    { "Item": 2 }
  ]
}

以逗號分隔的一系列值,以 [] 括住 (方括號)。陣列的值可以有任何資料類型,且可包含巢狀陣列。陣列可以是具名或匿名 (未命名)。匿名陣列稱為 JSON 清單。

  • 字串的匿名陣列 (JSON 清單):[ "a", "b", "c" ]

  • 具名整數陣列:"IntegerList": [ 1, 2, 3 ]

  • JSON 物件的匿名陣列 (JSON 清單):

    [ 
      { "Item": 1 },
      { "Item": 2 }
    ]
  • JSON 物件的具名陣列:

    {
      "ItemList": [ 
        { "Item": 1 },
        { "Item": 2 }
      ]
    }

JSON 物件

{ "Name": "Mike Smith" }

"Contact": {
  "FirstName": "Mike",
  "LastName": "Smith"
}
"Cases": [
  {
    "Case1": {
      "CreatedDate": "...",
      "LastUpdate": "..."
    }
  },
  {
    "Case2": {
      ...
    }
  }
]

將資訊壓縮成一或多個金鑰值配對的邏輯結構。物件可以嵌套,也可以分組成陣列。物件和金鑰值配對可以稱為 JSON 節點。JSON 字串是 JSON 物件的序列化形式。

  • 簡單的 JSON 物件,其中包含兩個金鑰值配對,兩者皆包含字串。

    "Contact": {
      "FirstName": "Mike",
      "LastName": "Smith" 
    }
  • 具名 JSON 陣列,其中包含本身包含物件陣列的物件。巢狀陣列中的每個物件皆具名,且包含兩個金鑰值配對,兩者皆代表日期時間字串。

    "Account": [
      {
        "Cases": [
          {
            "Case1": {
              "CreatedDate": "2/1/2024T16:35:30 GMT -0500 (EDT)",
              "LastUpdate": "2/8/2024T09:15:00 GMT -0500 (EDT)"
            }
          },
          {
            "Case2": {
              "CreatedDate": "2/2/2024T11:05:05 GMT -0500 (EDT)",
              "LastUpdate": "2/3/2024T15:50:57 GMT -0500 (EDT)"
            }
          }
        ]
      }
    ]

您可以依名稱或物件和金鑰的路徑來參照 JSON 物件。在這兩種情況下,您可以使用合併欄位來參照物件。這些值參照 Contact 物件及其 FirstName 欄位。

  • Contact%Contact% 是指整個物件。

  • Contact:FirstName%Contact:FirstName% 是指物件的 FirstName 金鑰值。

這些值參照 Account 物件及其欄位。

  • Account:Cases%Account:Cases% 是指 Cases 陣列。

  • Account:Cases:Case1%Account:Cases:Case1% 是指 Cases 陣列的第一個物件。

  • Account:Cases:Case1:CreatedDate%Account:Cases:Case1:CreatedDate% 是指 Cases 陣列第一個物件的 CreatedDate 索引鍵值。

Omnistudio 常數

Omnistudio 常數是具有特定值的關鍵字。這些是保留的字詞,您只能用來表示它們在「資料對應器」和「整合程序」公式中代表的值。

常數

範例

描述

TRUE

True

true

1 = 1

2 > 1

"abc" == "abc"

表示為 true 的值或運算式布林值常數。所有範例運算式皆為 true。

其他值等同於 true。每個 IF 函數都會傳回 "trueResult"

  • IF((1), "trueResult", "falseResult")

  • IF((1.5), "trueResult", "falseResult")

  • IF(("abc"), "trueResult", "falseResult")

  • IF(('abc'), "trueResult", "falseResult")

FALSE

False

false

2 = 1

2 < 1

"abc" == "def"

表示為 false 的值或運算式布林值常數。所有範例運算式皆為 false。

NULL

Null

null

IF((NULL), "trueResult", "falseResult")

IF((Null), "trueResult", "falseResult")

IF((null), "trueResult", "falseResult")

表示未定義值的常數。空值解析為 false。所有範例 IF 函數都會傳回 "falseResult"。許多運算子與函數不接受空值。

其他值等同於空值。每個 IF 函數都會傳回 "falseResult"。最後一個範例顯示,不代表物件的未加引號字串會解析為 null 或 false。

  • IF((), "trueResult", "falseResult")

  • IF((0), "trueResult", "falseResult")

  • IF(([]), "trueResult", "falseResult")

  • IF((string), "trueResult", "falseResult")

某些函數會定義其使用特定的常數。例如,ROUND 函數接受指示結果捨入方向的選擇性常數:CEILINGDOWNFLOORHALF_DOWNHALF_EVENHALF_UPUP

Omnistudio 錯誤個案

當 Omnistudio 函數和運算子無法在「資料對應器」或「整合程序」公式中執行要求的作業時,會傳回錯誤。錯誤個案可能會發生在遺失或無效的參數,或無法在使用參數的內容中評估的值或運算式。無效的運算子或函數也可能發生錯誤個案。

  • 當其預期的值或參數遺失或不屬於正確類型時,函數和運算子會傳回 {} (空白的大括弧)。當他們無法評估值或運算式,或無法執行要求的作業時,也可以傳回 {}

    錯誤個案

    描述

    IF(([""]), "trueResult", "falseResult")

    IF(([%emptyField%]), "trueResult", "falseResult")

    第一個範例:IF 函數無法評估包含空白字串的陣列。

    第二個範例:%emptyField% 的值為 ""

    SQRT(-4)

    3 / 0

    IF((3 \ 3 == 1), "trueResult", "falseResult")

    第一個範例:SQRT 函數無法計算負數的平方根。

    第二個範例:分部運算子無法除以零。

    第三個範例:輸入的分部運算子錯誤。

    AGE("01 Jan 2025")

    HOUR("21:00:56 +0900")

    第一個範例:AGE 函數不接受顯示格式的日期。

    第二個範例:HOUR 函數不接受時區以空格分隔的時間。

    1.2 ~= 1.2

    ~= 運算子僅接受字串,不接受數字。

    BASE64ENCODE(null)

    CONCAT("")

    TOSTRING(null)

    TOSTRING("")

    這些字串函數不接受空值或空白值。

    JOIN("The string.")

    SPLIT("The string.")

    SPLIT("numerator/denominator" "/)

    第一個和第二個範例:JOINSPLIT 函數需要額外的 token 參數,用來指定要分割字串或要聯結字串的字元。

    第三個範例:token 參數存在但格式錯誤:缺少結束雙引號。

    QUERY("SELECT Name FROM Account WHERE BillingState ='PA'")

    QUERY 函數的 SELECT 子句找不到其帳單狀態為 PA 的任何帳戶。

  • 函數和運算子會傳回其遇到重要問題的 error 訊息。最常見的錯誤個案是針對不存在或錯誤的函數或運算子名稱。

    錯誤個案

    描述

    Sqrt(4)

    "error": "Formula expression is invalid: Sqrt is not a Function or Operator"

    找不到 Sqrt 函數。必須以所有加寫字母輸入函數名稱。

    IF(NO(true), "trueResult", "falseResult")

    "error": "Formula expression is invalid: NO is not a Function or Operator"

    找不到 No 運算子。預期的運算子名稱為 NOT

    DAYOFWEEK("2025-01-01")

    "error": "Formula expression is invalid: DAYOFWEEK is not a Function or Operator"

    DAYOFWEEK 函數是 Omniscript 函數,不適用於「資料對應器」和「整合程序」公式。

    IF(%Amount% > 0, "Positive", "Zero")
    IF(%Result% == "Positive", "Pass", "Fail")

    "error": "Formula expression is invalid: \nIF is not a Function or Operator"

    公式只能包含單一作業。它可以包含巢狀函數和運算子,每個函數都可以顯示在單獨的行上,也可以顯示參數和引數。但公式不能包含兩個獨立作業。公式編輯器不支援獨立作業之間的行續字元 (例如 \) 或終止字元 (例如 ;)。

    這些公式有效,因為它們在單一作業中包含分行符號。

    IF(%Amount% > 0,
      "Positive",
      "Zero")
    ("abc"
    ==
    "ABC")
 
正在載入
Salesforce Help | Article