配置“查询对象”活动

您必须创建 Sforce 对象搜索语言 (SOSL) 查询来配置搜索对象活动。下列部分讨论配置搜索对象活动、创建 SOSL 查询和为 IBM® Cast Iron® 提供 SOSL 语法规则的规则。

过程

  1. 核对表中,选择配置

    此时会打开指定查询窗口。

  2. 指定查询窗口中创建 SOSL 查询。
  3. 可选: 可以在 SOSL 语句的搜索子句中指定动态参数。然后,可以将这些参数动态映射为活动的输入参数,这样活动就能动态控制基于针对编排的输入的查询。请使用 ($) 美元符号来表示参数并后跟参数名称。
  4. 单击“验证”图标 以验证查询。
    如果查询无效,那么在指定查询窗口的左下角会显示验证反馈图标 。 对于无效查询:
    1. 单击指定查询窗口左下角的验证反馈图标以获取验证错误列表。
    2. 使用刷新图标 以刷新元数据并重新验证 SOSL 语句。
  5. 核对表中,选择查询以配置特定查询选项。

    此时会打开查询选项窗格。

  6. 选择在查询中包含已删除项(执行 queryAll 操作),以查询除现有记录外的已删除记录。如果不选择此选项,那么 Integration Appliance 只会查询现有记录。
  7. 指定介于 200 到 2000 条查询之间的查询批处理大小,以帮助调整 Integration Appliance 的性能。

    该选项可确定要在所有查询调用的 QueryOptions SOAP 头中使用的批处理大小,并且不会影响活动所返回的结果数。 缺省情况下,会将此选项设置为 500 个查询。

创建 SOSL 查询

创建 SOQL 查询时,您可以在 SOQL 语句的 WHERE 子句中使用动态参数。之后,Studio 可以将这些参数动态映射为活动的输入参数。这样就能动态控制基于针对编排的输入的查询。

关于此任务

SForce 对象查询语言不会为参数化的查询定义语法;不过 Cast Iron 确实会强制实施一些专用 SOQL 语法规则。您可以在简单表达式或集合表达式中使用参数。

针对 Cast Iron 的 SOSL 语法规则
  • 使用 ($) 美元符号表示参数。请在 ($) 美元符号后面指定由字母数字字符构成的字符串。第一个字符必须为字母 [a-zA-Z],可以后跟一个或多个字母 [a-zA-Z]、数字 [0-9] 或 (_) 下划线。
    注: 参数名称区分大小写;因此,参数 $a 和 $A 被视为不同参数。
    下表包含有效和无效参数声明的示例:
    参数 有效或无效
    $AnAccount 有效
    $a123_456 有效
    $123a 无效
    $_id 无效
  • 您必须在 WHERE 子句中的表达式右侧声明参数。
  • 参数可在给定 SOQL 语句中出现多次。但是,即使参数在 SQOL 语句中出现多次,它在输入参数映射中也只会出现一次。 活动会将在运行时使用了参数的所有位置替换为同一个值。
    注: 使用同一参数名称并且存在类型不匹配时,将会发生错误。例如,以下 SOQL 会生成错误,因为 $param 被同时用作字符串和日期类型:

    SELECT Name from Account where Name like $param and createdDate > $param

  • 正在进行参数比较的字段所属的类型可确定参数的类型以及参数是正用于简单表达式、集合表达式还是集合表达式的某个部分。
    表达式类型 描述
    简单表达式 例如:Select ID from Account where Name = $NameParam

    表达式左侧字段的 SOAP 类型可确定参数类型。如果字段类型可为空,而且运算符为 (=) 或 (!=),那么参数可为空。 如果在参数中设置 xsi:nil=true,那么参数值会在被替换时设置为 NULL。如果参数的类型要求用 (‘) 单引号将其引起来,那么在替换期间参数值会用单引号引起来,并且其内容自动转义。

    对于 SOQL,(\) 反斜杠和 (‘) 单引号将进行转义。

    集合表达式 例如:Select ID From Account where ID in $idList

    参数类型是表达式左侧字段的 SoapType 的重复序列。参数不能为空,而且元素中包含 minOccurs=1, maxOccurs=unbounded。

    该序列会在运行时扩展为适当的集合值,例如:

    Select Id From Account where Id in (‘value1',‘value2')

    集合表达式的某个部分 集合列表内的参数被视为简单表达式参数类型,例如:SELECT Name from Account where BillingState IN (‘California', $state2)

    在此示例中,$state2 参数类型是 Account BillingState 字段的 SoapType,并且不是重复元素。该参数不能为空。