フィルタ式の構文
「イベント・フィルタ選択」ページで無効なフィルタ式が指定されている場合は、統合をアクティブ化しようとするとエラー・メッセージが表示されます。 統合をアクティブ化するには、フィルタ式を修正する必要があります。
イベント・フィルタ式の構文ガイドラインに注意してください:
- フィルタ式は、単一の文字列として指定する必要があります。
- フィルタ式はブール式として評価される必要があります。
- フィルタ式には1つ以上の比較文が含まれている必要があります。
- 比較文は、次の順序で指定する必要があります:
field operator valueたとえば:
activityDetails.activityType == 'Install'別の順序の指定は許可されていません。
- フィールドとフィールドの比較(
A == B)または値の比較(1 == 1)は無効です。 - フィールドは、空白または特殊文字(アンダースコアを除く)のない英数字の識別子である必要があります。 サブフィールドはドット(
.)で区切られます。 たとえば:activityDetails.activityTypeactivityDetails.X_MYPROP_10field.subField
- サポートされる比較演算子は、次のとおりです:
<><=>===!=in
- 値には、文字列リテラル、整数リテラル、文字列リテラルおよび整数の配列リテラルを指定できます。
- 文字列リテラルは、エスケープ文字(
~)で一重引用符で区切られます。 たとえば:str == 'My String'str == 'My string with ~' a quote inside'
- 整数リテラルは引用符なしで指定し、ドットを含めることはできず、先行するゼロを含めることはできません。
num == 0num == 12345num == -67/li>
- 配列リテラルは文字列または整数のみを含み、大カッコで囲まれている必要があります。 空の配列は許可されていません。 配列は
in演算子の後でのみ使用できます。enum in [1,2,3]enum in ['Abc','Def','Ghi']
- 文字列リテラルは、エスケープ文字(
- 文字列比較は有効です:
date > '2015-06-02'
- 文字列比較は、すべて大文字と小文字を区別しません:
name == 'john.smith'name == 'JOHN.SMITH'
- 文字列-整数の組合せが発生します:
num == -123num == '-123'
- フィールドとフィールドの比較(
- 複数の比較文を、論理
and/or演算子で区切る必要があります。A == 1 and B == 2 or C == 3A == 'xx' or A == 'yy'
- 演算子の優先順位は次のとおりです:
- 比較演算子:
==, !=, <, >, <=, >=, in 'not''and','or'
- 比較演算子:
- 論理演算子(
and/or)の優先順位は同じです。 そのため、カッコを使用して優先順位を達成します:A == 1 and (B == 2 or C == 3)
- 演算子では、大/小文字も区別されません:
(num IN [1,2,3]) OR (num < 0)
- 任意の文には、それを否定するために
not演算子を付けることができます。not (activityType in ['IN','TC','BR'])A == 1 and not ( B == 2 or B == 3 )
- 文字列の外部にある空白は無視されます。
- 比較対象のフィールドがイベントに存在しないかnullの場合は、空の文字列として評価されます。 たとえば、式
(non_existent_field == '')と(null_field == '')はどちらもtrueです。
アクティビティ・イベント・フィールド
アクティビティ・イベントには次のフィールドが含まれています:
eventType: イベントのタイプ(activityCreated、activityUpdatedなど)。applicationId: イベントを生成した操作を実行したアプリケーションのID。 これは、アプリケーションによって操作が実行された場合にのみ存在します。time: UTC時間標準(文字列)におけるイベントの時間。 時間書式はYYYY-MM-DD HH:MM:SSです。user: このイベントを実行したユーザー(文字列)。activityDetails: 次のアクティビティ関連のキー・フィールドを含むレコードです:-
activityId: アクティビティ(整数)の識別子。 これは必須フィールドです。 resourceId: アクティビティが割り当てられるリソースの識別子(文字列)。 これは必須フィールドです。 このフィールドは、external_idフィールドにマップします。date: アクティビティがスケジュールされた日付(書式:YYYY-MM-DD)。 アクティビティがスケジュールされていない場合、値はNULLになります。apptNumber: このフィールドは、アクティビティの外部IDを保持するために統合によって使用されます。 外部IDは、元システムのアクティビティの識別子です。 これはオプションのフィールドです。customerNumber: このフィールドは、アカウントの外部IDを保持するために統合によって使用されます。 外部IDは、元システムのアカウントの識別子です。 これはオプションのフィールドです。
-
activityChanges: イベントで変更されたリソース・フィールドのリスト。 フィールドには、いくつかの例外を除いてGET、POSTおよびPATCH操作で使用されるものと同じタイプと値があります。 時間フィールドはUTCです。
アクティビティ・イベント・フィルタ式の例
(activityDetails.activityType in ['IN','TC','BR']) AND (user != 'my_integ')
AND (activityDetails.customerName != '')イベント・フィールド
インベントリ・イベントには次のフィールドが含まれます:
eventType: イベントのタイプ。たとえば、customerInventoryUpdated、customerInventoryDeleted、resourceInventoryCreatedなど。applicationId: イベントを生成した操作を実行したアプリケーションのID。 これは、アプリケーションによって操作が実行された場合にのみ存在します。time: UTC時間標準(文字列)におけるイベントの時間。 時間書式はYYYY-MM-DD HH:MM:SSです。-
user: このイベントを実行したユーザー(文字列)。 activityDetails: 次のアクティビティ関連のキー・フィールドを含むレコードです:-
activityId: アクティビティ(整数)の識別子。 これは必須フィールドです。 resourceId: アクティビティが割り当てられるリソースの識別子(文字列)。 これは必須フィールドです。 このフィールドは、external_idフィールドにマップします。date: アクティビティがスケジュールされた日付(書式:YYYY-MM-DD)。 アクティビティがスケジュールされていない場合、値はNULLになります。apptNumber: このフィールドは、アクティビティの外部IDを保持するために統合によって使用されます。 外部IDは、元システムのアクティビティの識別子です。 これはオプションのフィールドです。customerNumber: このフィールドは、アカウントの外部IDを保持するために統合によって使用されます。 外部IDは、元システムのアカウントの識別子です。 これはオプションのフィールドです。
-
inventoryDetails: 次の在庫関連キー・フィールドを含むレコードです:-
inventoryId: 在庫(整数)の識別子。 これは必須フィールドです。 inventoryType: フィールド・サービス管理インタフェースの構成→ インベントリタイプ・ページで定義された在庫タイプの1つ。status: 顧客、リソース、取付け済、取外し済などのステータス。
-
inventoryChanges: 次の在庫変更済フィールドを含むレコードです:-
inventoryId status-
inventoryType serialNumberquantityexchangedInventoryIdresourceIdactivityId- ファイル・プロパティを除く、インベントリのすべてのカスタム・プロパティ。
-
exchanged: この値は、在庫が交換工程の一部として作成されるときのtrueです。eventTypeは、inventoryInstalledまたはinventoryDeinstalledです。 値がfalseの場合、フィールドは空です。
インベントリ・イベント・フィルタ式の例
(activityDetails.activityType in ['IN','TC','BR']) AND (user != 'my_integ') AND (activityDetails.customerName != '')
AND (inventoryDetails.inventoryId == 1000)