> ## 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.

# CData Select 配置

> 從 CData 檢索資料並將其帶入知行之橋。

export const DbasaSelectExampleFlow = ({datasource = "the data source", selectXmlFlow = "dbsa_select_flow.png", siteNameShort = "知行之桥"}) => <>
    <p>為 Select 配置的 {datasource} 端口選擇表和列後，將端口放置在 {siteNameShort} 工作流程的開頭。下面的螢幕截圖描述了一個範例流程，其中包含一個 {datasource} Select 端口、一個 XML Map 端口、一個 CSV 端口和一個 File 端口：</p>

    <img src={`/public/images/${selectXmlFlow}`} width="900" />

    <p>此範例工作流程中的資料透過以下步驟：</p>

    <ol>
      <li><strong>{datasource}_Select</strong> 端口從 {datasource} 連線中提取資料。</li>
      <li>此資料作為 <strong>來源檔案</strong> 傳遞給 <strong>XML_Map</strong> 端口，後者對映到 <strong>源</strong> 的樹狀結構中。</li>
      <li>來自 <strong>CSV1</strong> 端口的資料作為 <strong>目的檔案</strong> 傳遞給 <strong>XML_Map</strong> 端口，後者對映到 <strong>目標</strong> 的樹狀結構。
        <img src="/public/images/dbsa_xmlmap_select.png" width="800" />
      </li>
      <li><strong>XML_Map</strong> 端口嘗試自動將 <strong>源</strong> 元素對映到具有相同名稱的 <strong>目標</strong> 元素。你可以手動更改這些並透過將元素從 <strong>源</strong> 拖到 <strong>目標</strong> 來填充空白對映。
        <img src="/public/images/dbsa_xmlmap_elements.png" width="800" />
      </li>
      <li>來自 <strong>CSV1</strong> 的檔案已經用來自 <strong>{datasource}_Select</strong> 的資料進行了修改，然後向下傳遞來自 <strong>CSV1</strong> 的工作流程。</li>
    </ol>
  </>;

export const DbasaSelectIntro = ({datasource = "the data source", siteName = "知行之桥"}) => <p>Select 操作從 {datasource} 檢索資料並將其帶入 {siteName}。</p>;

<DbasaSelectIntro datasource="CData" />

## 表和列

如果為 CData 端口選擇 Select，則必須從 CData 中選擇一個（或多個）目標表。點選**表**面板上方的**新增**按鈕。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/dbsa_select_tableadd.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=0cbde8c212a588cbb583ce655c28131b" alt="表面板上方的新增按鈕" width="250" data-path="public/images/dbsa_select_tableadd.png" />

隨後會顯示一個列出所有可用表的對話方塊。選擇所需的表，然後點選**新增**。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/dbsa_tablelist.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=bc164256a3edf409fe344342405efe19" alt="列出可選表的對話方塊" width="500" data-path="public/images/dbsa_tablelist.png" />

所選表會顯示在**表**面板中，表中的列則顯示在**列**面板中。端口會自動檢測具有特殊意義的值（例如主索引鍵和外部索引鍵）並新增相應標記。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/dbsa_select_columns.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=f2a18a0b15fa77c37433f35e1975a071" alt="表面板和列面板" width="800" data-path="public/images/dbsa_select_columns.png" />

預設選中所有列，以便將它們包含在 CData 端口的操作中。取消選中某列可將其排除。

<Note>點選**新增**並重覆上述過程，可以選擇更多表。有關更多資訊，請參閱[子表](/26.3/self-hosted/zh/connectors/cdata/cdata-ac#child-tables)。</Note>

### 從多個表中選擇

CData 端口支援透過一個操作選擇多個表。可以透過以下兩種方式實現：

* 將其他表指定為父表的子表。有關更多資訊，請參閱[子表](/26.3/self-hosted/zh/connectors/cdata/cdata-ac#child-tables)。
* 建立多個配置為 Select 的 CData 端口，為每個端口分配不同的表，然後將它們連線到工作流程中的同一端口。

可以根據需要為每個子表或各個 CData 端口分配單獨的查詢。有關更多資訊，請參閱[過濾器](#過濾器)。

## 過濾器

選擇表後，可以選擇使用**過濾器**面板篩選端口選擇的資料。端口會將過濾規則轉換為查詢語法，並在端口配置頁面底部的**查詢**面板中顯示。

<Note>如果用例不需要，則無需對資料應用過濾器。</Note>

### 建立過濾規則

按照以下步驟建立過濾規則：

1. 點選**新增規則**。
2. 在新規則的下拉式清單中選擇要過濾的列。
3. 隨後會顯示兩個新欄位。在新的下拉式清單中選擇過濾條件。
   * 可用過濾條件取決於所選列的資料型別。例如，`long` 資料型別支援 **Greater Than** 條件，而 `string` 資料型別不支援。
4. 如果過濾條件需要值，請在值欄位中輸入該值。如果條件不需要值（例如 **Is Null**），則不會顯示值欄位。
5. 過濾規則完成後，其背景會從紅色變為白色。

下圖展示了對 <strong>Author</strong> 列設定過濾規則的範例。應用此規則後，端口僅選擇 <strong>Author</strong> 列包含 <strong>Smith</strong> 的值。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/dbsa_filter_single.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=076e359489ff897b3a9a05aa9bf3d736" alt="Author 列配置為包含 Smith 的過濾規則" width="600" data-path="public/images/dbsa_filter_single.png" />

### 過濾器組

點選**新增規則**可建立多個過濾規則。過濾規則按組劃分，預設情況下所有過濾器屬於同一組。點選**新增組**可建立多個組，以使用不同邏輯分隔過濾規則。

組內過濾規則之間的關係由組頂部的選項決定：

* 選中 **NOT** 可反轉過濾條件。例如，在上述 Author 過濾器中選中 **NOT**，會讓端口選擇 Author 值中\_不\_包含 **Smith** 的記錄。
* 選擇 **AND** 或 **OR** 確定多個過濾規則的組邏輯。
  * 選擇 **AND** 時，組中的每條規則都必須為真。
  * 選擇 **OR** 時，組中至少有一條規則必須為真。

過濾器組採用簡單的父子關係。下圖展示了多個過濾器組。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/dbsa_filter_multiple.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=89c2340576d4c4b9650b25e4f58b63c2" alt="使用 OR 邏輯的多個過濾器組" width="600" data-path="public/images/dbsa_filter_multiple.png" />

在此範例中，父組使用 **OR** 邏輯。只要滿足以下任一條件，整個過濾條件即成立：

* **Author** 列包含 **Smith**
* **Id** 列等於 **1** 或 **2**
* **Title** 列包含 **Kitchen**，且 **UpdatedAt** 列大於 **400**

滿足過濾條件後，端口會選擇匹配的資料，並將其傳遞到工作流程下游。

## 進階設定

在**高階**部分，可以配置使用特定列處理記錄，以及在成功處理行後以指定值更新列的設定。這些設定有助於維護和跟蹤工作流程中的更改。

## 知行之橋工作流程範例

<DbasaSelectExampleFlow datasource="CData" selectXmlFlow="cdata_xmlflow_select.png" />
