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

# SQLite Lookup 设置

> 从 SQLite 检索值，并将其插入到工作流中的知行之桥消息中。

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="SQLite" />

## Lookup 配置

<DbasaLookupConfiguration />

### 设计器模式

<DbasaLookupDesignerMode datasource="SQLite" />

### 过滤器

<DbasaLookupFilters />

### 查询模式

<DbasaLookupQueryMode datasource="SQLite" />

## 高级设置

<DbasaLookupAdvanced datasource="SQLite" />

## 测试 Lookup

<DbasaLookupTestLookup datasource="SQLite" />
