配置“查询对象”活动
您必须创建 Sforce 对象搜索语言 (SOSL) 查询来配置搜索对象活动。下列部分讨论配置搜索对象活动、创建 SOSL 查询和为 IBM® Cast Iron® 提供 SOSL 语法规则的规则。
过程
创建 SOSL 查询
创建 SOQL 查询时,您可以在 SOQL 语句的 WHERE 子句中使用动态参数。之后,Studio 可以将这些参数动态映射为活动的输入参数。这样就能动态控制基于针对编排的输入的查询。
关于此任务
SForce 对象查询语言不会为参数化的查询定义语法;不过 Cast Iron 确实会强制实施一些专用 SOQL 语法规则。您可以在简单表达式或集合表达式中使用参数。
- 使用 ($) 美元符号表示参数。请在 ($) 美元符号后面指定由字母数字字符构成的字符串。第一个字符必须为字母 [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,并且不是重复元素。该参数不能为空。