> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce Lookup 設定

> 從 Salesforce 檢索值，並將其插入工作流程中的知行之橋訊息。

Lookup 操作從 Salesforce 檢索值並將這些值插入到流中的現有知行之橋訊息中。

<ol><li>在 知行之桥 的工作流程中，從將為 Salesforce 端口提供輸入的端口拖動一個箭頭。</li>
<li>（可選）選擇 **範例檔案**。建議使用範例檔案，因為它允許端口提供有關檔案結構的更多上下文並幫助構建 [過濾器](#filters) 條件。</li>
<li>完成以下配置步驟後，在 知行之桥 的工作流程中，將箭頭從 Salesforce 端口拖動到希望生成的 XML 或訊息頭資料所在的端口。</li></ol>

## Lookup 配置

使用此部分定義要包含在查詢中的表和列。[設計器模式](#designer-mode) 可幫助選擇要作為查詢目標的表和列，而不是要求構建自由形式的查詢。但是，如果希望從頭開始編寫查詢，則可以使用 [查詢模式](#query-mode)。

### 設計器模式

按照以下步驟使用設計器為 Salesforce 端口配置查詢操作。

![Lookup designer](https://docs.kasoftware.com/26.4/images/dbsa_lookup_designer.png)

<ol><li>使用 **表格** 下拉式清單選擇要包含的表格。</li>
<li>選擇要從表中包含的 **列**。</li>
<li>**輸出目標**：選擇 **XPath** 將查詢回應值插入到 XML 檔案中，或選擇 **Header** 將查詢回應值插入到訊息頭中。
<ul><li>XPath：當選擇 XPath 時，目標分為兩部分。**父級 XPath** 應已存在於 XML 文件中。**新節點名稱** 是注入到 XML 文件中以儲存查詢結果的節點的名稱。查詢中的每一列在此處提供的 XML 元素中都有自己的 XML 元素（葉級別）。父級 XPath 可以包含[前瞻語法](https://docs.kasoftware.com/26.4/self-hosted/zh/mapping/mapping-node-value-editor.md#前瞻)，以根據同級條件定位元素；上傳範例檔案可以更輕鬆地構建前瞻路徑。</li>
<li>Header：當選擇 Header 時，端口會向查詢中每一列的輸出訊息新增一個訊息頭。從資料庫傳回的每條記錄的值均以逗號分隔。</li></ul></li>
<li>使用 **Record Limit** 指定查詢傳回多個結果時應該發生的情況。
<ul><li>如果從下拉式清單中選擇 **使用第一個結果**，則可以使用 **如果多個結果時出錯** 在傳回多個結果時檢視錯誤。</li>
<li>如果選擇 **自定義限制**，則必須在顯示的欄位中指定限制。</li></ul></li>
<li>使用 **排序** 選擇按哪一列對結果進行排序。</li>
<li>[過濾器](#filters) 部分允許建立過濾器來構建查詢 WHERE 子句，包括對輸入檔案中的訊息頭或 XML 的引用。</li></ol>

### 過濾器

可以透過定義單個過濾器和/或過濾器組來構建複雜的過濾器。為了便於閱讀，請單擊欄右側的擴充套件器圖示 ![expander](https://docs.kasoftware.com/26.4/images/validate_expander.png) 展開 **Filters** 部分。

要新增過濾器，請單擊 **新增過濾器** 或 **新增組**。

當構建過濾器時，請使用下拉功能表進行選擇並選擇運算子。然後指定要過濾的值。可以從以下選項中進行選擇：

<ul><li>訊息頭</li>
<li>輸入 XML</li>
<li>靜態值</li></ul>

當為過濾器選擇 **輸入 XML** 時，如果已上傳範例檔案，編輯器將顯示文件的樹形表示形式，以便可以輕鬆找到所需的 XPath，如下圖所示。

![Lookup filter configuration](https://docs.kasoftware.com/26.4/images/dbsa_lookup_filter.png)

XPath 還可以包含[前瞻語法](https://docs.kasoftware.com/26.4/self-hosted/zh/mapping/mapping-node-value-editor.md#前瞻)，以根據同級條件定位元素。這對於 EDI 限定符-值對非常有用。例如：`/Interchange/.../REF[REF01='IA']/REF02` 僅在其同級元素 REF01 等於 `IA` 時定位 REF02 的值。在此處輸入方括號時無需跳脫，這與 *xpath()* 格式化器中使用的反斜線跳脫形式不同。

> [!NOTE]
>
> <ul><li>\*\*支援的形式：\*\*存在性檢查、相等性檢查（與子路徑、屬性、目前文字或帶引號的常值進行比較），以及使用 AND 組合的多個條件。還支援單獨使用的 `[last()]` 位置選擇器。</li>
> <li>**不支援的形式會被拒絕**，而不會被靜默地重新解譯，因此如果 Lookup 拒絕了某個 XPath，請簡化該 XPath。不支援的形式包括：任意 XPath 函式和運算子；在同一節點上將 `[last()]` 與其他條件組合使用；在一個路徑中使用多個 `[last()]` 選擇器；在同一節點上將數字選擇器與其他條件組合使用；以及直接附加到末端屬性上的條件（應改寫為父級過濾器，例如 `/actor[@type='lead']/@type`）。</li>
> <li>\*\*效能：\*\*前瞻語法會使 Lookup 將文件載入到記憶體中，而不是以串流方式處理，因此會佔用更多記憶體。對於非常大的 XML 輸入，建議使用不含前瞻或使用數字位置的 XPath，或者在上游預先處理輸入，以使 Lookup 保持串流處理模式。</li></ul>

可以重新排序過濾器和組。單擊手柄 ![handle](https://docs.kasoftware.com/26.4/images/xmlmap_condition_handle.png) 並將物件拖動到新位置。

### 查詢模式

按照以下步驟使用查詢模式為 Salesforce 端口配置查詢操作。

![Lookup query mode](https://docs.kasoftware.com/26.4/images/dbsa_lookup_query.png)

<ol><li>**輸出目標**：選擇 **XPath** 將查詢回應值插入到 XML 檔案中，或選擇 **Header** 將查詢回應值插入到訊息頭中。
<ul><li>XPath：當選擇 XPath 時，目標分為兩部分。**父級 XPath** 應已存在於 XML 文件中。**新節點名稱** 是注入到 XML 文件中以儲存查詢結果的節點的名稱。查詢中的每一列在此處提供的 XML 元素中都有自己的 XML 元素（葉級別）。父級 XPath 可以包含[前瞻語法](https://docs.kasoftware.com/26.4/self-hosted/zh/mapping/mapping-node-value-editor.md#前瞻)，以根據同級條件定位元素；上傳範例檔案可以更輕鬆地構建前瞻路徑。</li>
<li>Header：當選擇 Header 時，端口會向查詢中每一列的輸出訊息新增一個訊息頭。從資料庫傳回的每條記錄的值均以逗號分隔。</li></ul></li>
<li>在 **查詢** 中，輸入 SQL 查詢以從 Salesforce 表檢索資料。
<ul><li>XPath：將路徑格式設定為 `${XPATH:/path/to/element}`。例如，`SELECT CustomerID FROM Customers WHERE CustomerName = ${XPATH:/Items/Invoices/Customer}`。XPath 還可以包含[前瞻語法](https://docs.kasoftware.com/26.4/self-hosted/zh/mapping/mapping-node-value-editor.md#前瞻)，以根據同級條件定位元素。例如，`${XPATH:/Interchange/.../REF[REF01='IA']/REF02}` 僅在其同級元素 REF01 等於 `IA` 時定位 REF02 的值。有關支援的前瞻形式和效能注意事項，請參閱[過濾器](#filters)。</li>
<li>Header：將路徑格式設定為 `${HEADER:HeaderName}`。</li></ul></li>
<li>這兩個核取方塊可讓您配置當查詢傳回多個結果時應發生的情況。
<ul><li>選中 **使用第一個結果** 以始終使用第一個結果。</li>
<li>選中 **如果多個結果時出錯** 以在傳回多個結果時傳回錯誤。</li></ul></li></ol>

## 進階設定

![Lookup advanced settings](https://docs.kasoftware.com/26.4/images/dbsa_lookup_advanced.png)
<ol><li>使用 **未找到匹配記錄操作** 來指定如果未找到與查詢匹配的記錄時應執行的操作。</li>
<li>Salesforce 端口可以針對本地快取執行 Lookup 查詢，而不是直接為每個 Lookup 查詢 Salesforce。這可以提高查詢效能，尤其是對於較大的資料庫。要啟用此功能，請在 **查找快取** 下選擇 **啟用** 並配置其餘欄位。
<ul><li>**查找快取提供程式**：選擇使用哪個驅動程式以方便連線到快取資料庫。</li>
<li>**查找快取連線字串**：設定後，端口將使用此處指定的資料庫進行快取。</li>
<li>**查找快取容差**：控制端口向資料來源發出查詢以重新整理快取的頻率。</li>
<li>**查找快取容差單位**：**查找快取容差** 的單位。選擇分鐘、小時或天。</li>
<li>**重設快取**：清除所有快取資料，並強制端口在下一次 Lookup 時重新查詢 Salesforce。</li></ul></li></ol>

> [!NOTE]
>
> <ul><li>如果查詢未從快取傳回結果，端口將直接查詢 Salesforce。</li>
> <li>如果查詢語句包含 `limit`、`offset` 或 `groupby` 參數，則快取功能不起作用。這些查詢直接轉到 Salesforce。</li></ul>

## 測試 Lookup

使用 **測試 Lookup** 按鈕檢查配置並檢視結果，而無需手動處理檔案。使用 **儲存範例資料** 按鈕將輸出儲存為範例，以便稍後在流程中進行對映。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.