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

# PostgreSQL Lookup 配置

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

export const DbasaLookupTestLookup = ({datasource = "the data source"}) => <p>
    使用 <strong>測試 Lookup</strong> 按鈕檢查配置並檢視結果，而無需手動處理檔案。使用 <strong>儲存範例資料</strong> 按鈕將輸出儲存為範例，以便稍後在流程中進行對映。
  </p>;

export const DbasaLookupAdvanced = ({datasource = "the data source"}) => <>
    <img src="/public/images/dbsa_lookup_advanced.png" alt="Lookup advanced settings" width="600" />
    <ol>
      <li>使用 <strong>未找到匹配記錄操作</strong> 來指定如果未找到與查詢匹配的記錄時應執行的操作。</li>
      <li>
        {datasource} 端口可以針對本地快取執行 Lookup 查詢，而不是直接為每個 Lookup 查詢 {datasource}。這可以提高查詢效能，尤其是對於較大的資料庫。要啟用此功能，請選中 <strong>啟用快取</strong> 並配置其餘欄位。
        <ul>
          <li><strong>快取容錯</strong>：控制端口向資料來源發出查詢以重新整理快取的頻率。</li>
          <li><strong>快取容錯單元</strong>：<strong>快取容錯</strong> 單元。選擇分鐘、小時或天。</li>
          <li><strong>快取提供器</strong>：選擇使用哪個驅動程式以方便連線到快取資料庫。</li>
          <li><strong>連接字串</strong>：設定後，端口將使用此處指定的資料庫進行快取。</li>
        </ul>
      </li>
    </ol>
    <Note>
      <ul>
        <li>如果查詢未從快取傳回結果，端口將直接查詢 {datasource}。</li>
        <li>如果查詢語句包含 <code>limit</code>、<code>offset</code> 或 <code>groupby</code> 參數，則快取功能不起作用。這些查詢直接轉到 {datasource}。</li>
      </ul>
    </Note>
  </>;

export const DbasaLookupQueryMode = ({datasource = "the data source"}) => <>
    <p>按照以下步驟使用查詢模式為 {datasource} 端口配置查詢操作。</p>

    <img src="/public/images/dbsa_lookup_query.png" alt="Lookup query mode" width="600" />

    <ol>
      <li>
        <strong>輸出目標</strong>：選擇 <strong>XPath</strong> 將查詢回應值插入到 XML 檔案中，或選擇 <strong>Header</strong> 將查詢回應值插入到訊息頭中。
        <ul>
          <li>XPath：當選擇 XPath 時，目標分為兩部分。<strong>父級 XPath</strong> 應已存在於 XML 文件中。<strong>新節點名稱</strong> 是注入到 XML 文件中以儲存查詢結果的節點的名稱。查詢中的每一列在此處提供的 XML 元素中都有自己的 XML 元素（葉級別）。</li>
          <li>Header：當選擇 Header 時，端口會向查詢中每一列的輸出訊息新增一個訊息頭。從資料庫傳回的每條記錄的值均以逗號分隔。</li>
        </ul>
      </li>
      <li>在 <strong>查詢</strong> 中，輸入 SQL 查詢以從 {datasource} 表檢索資料。
        <ul>
          <li>XPath：將路徑格式設定為 <code>{'${XPATH:/path/to/element}'}</code>。例如，<code>{'SELECT CustomerID FROM Customers WHERE CustomerName = ${XPATH:/Items/Invoices/Customer}'}</code>。</li>
          <li>Header：將路徑格式設定為 <code>{'${HEADER:HeaderName}'}</code>。</li>
        </ul>
      </li>
      <li>這兩個核取方塊可讓您配置當查詢傳回多個結果時應發生的情況。
        <ul>
          <li>選中 <strong>使用第一個結果</strong> 以始終使用第一個結果。</li>
          <li>選中 <strong>如果多個結果時出錯</strong> 以在傳回多個結果時傳回錯誤。</li>
        </ul>
      </li>
    </ol>
  </>;

export const DbasaLookupFilters = () => <>
    <p>
      可以透過定義單個過濾器和/或過濾器組來構建複雜的過濾器。為了便於閱讀，請單擊欄右側的擴充套件器圖示 <img src="/public/images/validate_expander.png" alt="expander" noZoom style={{
  display: "inline-block",
  verticalAlign: "middle",
  height: "0.9em",
  margin: 0
}} /> 展開 <strong>Filters</strong> 部分。
    </p>
    <p>要新增過濾器，請單擊 <strong>新增過濾器</strong> 或 <strong>新增組</strong>。</p>
    <p>
      當構建過濾器時，請使用下拉功能表進行選擇並選擇運算子。然後指定要過濾的值。可以從以下選項中進行選擇：
    </p>
    <ul>
      <li>訊息頭</li>
      <li>輸入 XML</li>
      <li>靜態值</li>
    </ul>
    <p>
      當為過濾器選擇輸入 XML 時，如果已上傳範例檔案，編輯器將顯示文件的樹形表示形式，以便可以輕鬆找到所需的 XPath，如下圖所示。
    </p>
    <img src="/public/images/dbsa_lookup_filter.png" alt="Lookup filter configuration" width="800" />
    <p>可以重新排序過濾器和組。單擊手柄 <img src="/public/images/xmlmap_condition_handle.png" alt="handle" noZoom style={{
  display: "inline-block",
  verticalAlign: "middle",
  height: "0.9em",
  margin: 0
}} /> 並將物件拖動到新位置。</p>
  </>;

export const DbasaLookupDesignerMode = ({datasource = "the data source"}) => <>
    <p>按照以下步驟使用設計器為 {datasource} 端口配置查詢操作。</p>

    <img src="/public/images/dbsa_lookup_designer.png" alt="Lookup designer" width="600" />

    <ol>
      <li>使用 <strong>表格</strong> 下拉式清單選擇要包含的表格。</li>
      <li>選擇要從表中包含的 <strong>列</strong>。</li>
      <li>
        <strong>輸出目標</strong>：選擇 <strong>XPath</strong> 將查詢回應值插入到 XML 檔案中，或選擇 <strong>Header</strong> 將查詢回應值插入到訊息頭中。
        <ul>
          <li>XPath：當選擇 XPath 時，目標分為兩部分。<strong>父級 XPath</strong> 應已存在於 XML 文件中。<strong>新節點名稱</strong> 是注入到 XML 文件中以儲存查詢結果的節點的名稱。查詢中的每一列在此處提供的 XML 元素中都有自己的 XML 元素（葉級別）。</li>
          <li>Header：當選擇 Header 時，端口會向查詢中每一列的輸出訊息新增一個訊息頭。從資料庫傳回的每條記錄的值均以逗號分隔。</li>
        </ul>
      </li>
      <li>使用 <strong>Record Limit</strong> 指定查詢傳回多個結果時應該發生的情況。
        <ul>
          <li>如果從下拉式清單中選擇 <strong>使用第一個結果</strong>，則可以使用 <strong>如果多個結果時出錯</strong> 在傳回多個結果時檢視錯誤。</li>
          <li>如果選擇 <strong>自定義限制</strong>，則必須在顯示的欄位中指定限制。</li>
        </ul>
      </li>
      <li>使用 <strong>排序</strong> 選擇按哪一列對結果進行排序。</li>
      <li><a href="#filters">過濾器</a> 部分允許建立過濾器來構建查詢 WHERE 子句，包括對輸入檔案中的訊息頭或 XML 的引用。</li>
    </ol>
  </>;

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

export const DbasaLookupIntro = ({datasource = "the data source", siteName = "知行之桥", siteNameShort = "知行之桥"}) => <>
    <p>
      Lookup 操作從 {datasource} 檢索值並將這些值插入到流中的現有知行之橋訊息中。
    </p>
    <ol>
      <li>在 {siteName} 的工作流程中，從將為 {datasource} 端口提供輸入的端口拖動一個箭頭。</li>
      <li>（可選）選擇 <strong>範例檔案</strong>。建議使用範例檔案，因為它允許端口提供有關檔案結構的更多上下文並幫助構建 <a href="#filters">過濾器</a> 條件。</li>
      <li>完成以下配置步驟後，在 {siteNameShort} 的工作流程中，將箭頭從 {datasource} 端口拖動到希望生成的 XML 或訊息頭資料所在的端口。</li>
    </ol>
  </>;

<DbasaLookupIntro datasource="PostgreSQL" />

## Lookup 配置

<DbasaLookupConfiguration />

### 設計器模式

<DbasaLookupDesignerMode datasource="PostgreSQL" />

### 過濾器

<DbasaLookupFilters />

### 查詢模式

<DbasaLookupQueryMode datasource="PostgreSQL" />

## 進階設定

<DbasaLookupAdvanced datasource="PostgreSQL" />

## 測試 Lookup

<DbasaLookupTestLookup datasource="PostgreSQL" />
