「オブジェクトの照会」アクティビティーの構成
「オブジェクト内の検索」アクティビティーを構成するには、SForce Object Search Language (SOSL) 照会を作成する必要があります。 以下のセクションでは、「オブジェクト内の検索」アクティビティーの構成、SOSL 照会の作成、 および IBM® Cast Iron® の SOSL 構文ルールの指定を行う手順について説明します。
手順
SOSL 照会の作成
SOQL 照会の作成時に、SOQL ステートメントの WHERE 文節で動的パラメーターを使用できます。 その場合、Studio は、このパラメーターをアクティビティーの入力パラメーターとして動的にマップできます。 これにより、オーケストレーションへの入力に基づいて照会を動的に制御できます。
このタスクについて
SForce Object Query Language では、パラメーター化された照会に対して構文は定義されません。ただし、Cast Iron では、いくつかの独自の SOQL 構文ルールが適用されます。 パラメーターは、単純式でもセット式でも使用できます。
- ($) ドル記号でパラメーターを示します。 ($) ドル記号の後に、英数字のストリングを指定します。 先頭文字は、文字 [a から z および A から Z] でなければなりません。
その後は、1 つ以上の文字 [a から z および A から Z]、数字 [0 から 9]、または ( _ ) 下線を任意に指定します。 注: パラメーター名では大/小文字の区別があるため、 パラメーター $a とパラメーター $A は、異なるパラメーターであるとみなされます。以下の表に、有効なパラメーター宣言と無効なパラメーター宣言の例を示します。
パラメーター 有効または無効 $AnAccount 有効 $a123_456 有効 $123a 無効 $_id 無効 - WHERE 文節では式の右側にパラメーターを宣言する必要があります。
- パラメーターは、指定の SOQL ステートメントで複数回使用できます。
ただし、パラメーターが SOQL ステートメントで複数回使用される場合でも、入力パラメーター・マップでのパラメーターの使用は 1 回のみです。 このアクティビティーによって、当該パラメーターが実行時に使用されるすべてのロケーションに対して同じ値が代入されます。注: 同じパラメーター名を使用する場合に、 型が一致しないと、エラーが発生します。 例えば、以下の SOQL では、$param がストリング型と日付型の両方の型として使用されているためエラーが発生します。
SELECT Name from Account where Name like $param and createdDate > $param
- パラメーターが比較されているフィールドのタイプによって、
パラメーターのタイプが決定され、さらには、パラメーターが単純式で使用されているのか、
セット式で使用されているのか、セット式の一部で使用されているのかが決まります。
式のタイプ 説明 単純式 例: Select ID from Account where Name = $NameParam 式の左側にあるフィールドの SoapType によって、パラメーター・タイプが決定されます。 フィールド・タイプがヌル可能であり、演算子が ( = ) または ( != ) である場合は、パラメーターはヌル可能です。 このパラメーターで xsi:nil=true と設定すると、このパラメーター値は代入時にヌルに設定されます。 このパラメーターのタイプではパラメーターを (‘) 単一引用符で囲まなければならない場合は、 このパラメーターの値は代入時に単一引用符で囲まれ、その内容は自動的にエスケープされます。
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 であり、反復エレメントではありません。 このパラメーターはヌル可能ではありません。