ApiEvent
サポートされているコール
describeSObjects()、query()
特別なアクセスルール
このオブジェクトにアクセスするには、Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションと、「リアルタイムイベント監視データを表示」ユーザ権限が必要です。
項目
| 項目 | 詳細 |
|---|---|
| AdditionalInfo |
|
| ApiType |
|
| ApiVersion |
|
| Application |
|
| Client |
|
| ConnectedAppId |
|
| ElapsedTime |
|
| EvaluationTime |
|
| EventDate |
|
| EventIdentifier |
|
| LoginHistoryId |
|
| LoginKey |
|
| Operation |
|
| Platform |
|
| PolicyId |
|
| PolicyOutcome |
|
| QueriedEntities |
|
| Query |
|
| Records |
|
| RelatedEventIdentifier |
|
| RowsProcessed |
|
| RowsReturned |
|
| SessionKey |
|
| SessionLevel |
|
| SourceIp |
|
| UserAgent |
|
| UserId |
|
| Username |
|
AdditionalInfo の使用
AdditionalInfo を使用すると、API イベントを拡張してカスタムデータを含めることができます。このデータは後で照会できます。たとえば、一意の相関 ID を共有する外部システムからユーザが SOQL クエリを実行したときに、その ID を取得できます。このプロセスにより、システム間で API コールを追跡できます。ApiEvent を使用してデータを保存するには、すべての AdditionalInfo 項目名の先頭を x-sfdc-addinfo-{field name} にします。たとえば、有効な項目割り当ては、x-sfdc-addinfo-correlation_id = ABC123 です。ここで、x-sfdc-addinfo-correlation_id は項目名、ABC123 は項目値です。
- x-sfdc-addinfo- では大文字と小文字が区別されません。x-sfdc-addinfo-{field name} と X-SFDC-ADDINFO-{field name} および x-SfDc-AdDiNfO-{field name} は等価です。
- 項目には、英数字と「_」 (アンダースコア) ��字のみを使用できます。
- 項目名は、x-sfdc-addinfo-{field name} を含めずに 2 ~ 29 文字にする必要があります。
- 先頭が x-sfdc-addinfo- でない項目名は無視されます。
- x-sfdc-addinfo- より後に無効な文字が含まれる名前は無視され、何も保存されません。たとえば、x-sfdc-addinfo-correlation_id は有効な項目名ですが、x-sfdc-addinfo-correlation->id は有効ではありません。
- 最初の有効な 30 個の項目名のみが AdditionalInfo に保存されます。たとえば x-sfdc-addinfo-correlation_id と x-sfdc-addinfo-correlation_number など、有効な 2 つの項目名を保存している場合、他に 28 個の項目名を保存できます。項目名は、認証に渡されたのと同じ順序で保存されるとは限りません。
- 既存の API 項目名は HTTP ヘッダー内の AdditionalInfo 名に使用できません。AdditionalInfo 名がオブジェクトの API 参照名と競合した場合、項目値は保存されません。たとえば、X-SFDC-ADDINFO-UserId='abc123' という HTTP ヘッダーは AdditionalInfo に保存されません。
- 追加項目値には、英数字、「_」、「-」文字のみを使用できます。
- 項目値は 255 文字以下にする必要があります。項目値が 255 文字を超えた場合、最初の 255 文字のみが保存され、残りは切り捨てられます。
- 無効な文字を含む項目値は保存されますが、項目ヘッダーが空の文字列 ("") になります。
- 最初の有効な 30 個の項目名のみが AdditionalInfo 項目に保存されます。項目名は、認証に渡されたのと同じ順序で保存されるとは限りません。
- AggregationFieldName または PlatformEventMetrics が SourceIp の場合、値が Salesforce.com IP だと AggregationFieldValue で絞り込めません。
HTTP と cURL を使用して追加情報を渡す方法
1curl https://yourInstance.salesforce.com/services/data/v34.0/query?q=SELECT+Name+From+Account -H "X-PrettyPrint:1" -H "x-sfdc-addinfo-correlationid:
2d18c5a3f-4fba-47bd-bbf8-6bb9a1786624"Java の使用例
1//adding additional info headers ..
2Map<String, String> httpHeaders = new HashMap<String,String>();
3httpHeaders.put("x-sfdc-addinfo-fieldname1" /* additional info field*/ , "d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
4httpHeaders.put("x-sfdc-addinfo-fieldname2" /* additional info field*/ , "d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
5
6ConnectorConfig config = new ConnectorConfig();
7config.setUsername(userId);
8config.setPassword(passwd);
9config.setAuthEndpoint(authEndPoint);
10config.setProxy(proxyHost, proxyPort);
11
12//setting additional info headers
13for (Map.Entry<String, String> entry : httpHeaders.entrySet()) {
14 config.setRequestHeader(entry.getKey(), entry.getValue());
15}
16// Set the username and password if your proxy must be authenticated
17 config.setProxyUsername(proxyUsername);
18 config.setProxyPassword(proxyPassword);
19 try {
20 QueryResult queryResult = connection.query("SELECT Id, Name FROM Account");
21 // etc.
22 } catch (ConnectionException ce) {
23 ce.printStackTrace();
24 }標準 SOQL 使用状況
-
絞り込みなし
-
有効 — WHERE 句が含まれないため、特殊なルールは適用されません。
1SELECT ApiType, Client, ElapsedTime, QueriedEntities, Username 2FROM ApiEvent
-
有効 — WHERE 句が含まれないため、特殊なルールは適用されません。
-
EventDate で絞り込み — EventDate のみで絞り込みできますが、他の項目で絞り込むと失敗します。このクエリ種別では比較演算子も使用できます。
-
有効 — EventDate のみで絞り込みできますが、他の項目で絞り込むと失敗します。このクエリ種別では比較演算子も使用できます。
1SELECT ApiType, Client, ElapsedTime, QueriedEntities, Username 2FROM ApiEvent 3WHERE EventDate>=2014-11-27T14:54:16.000Z
-
有効 — EventDate のみで絞り込みできますが、他の項目で絞り込むと失敗します。このクエリ種別では比較演算子も使用できます。
非同期 SOQL 使用状況
非同期 SOQL の場合は、ApiEvent の項目を絞り込み、クエリに任意の比較演算子を使用できます。
例: ユーザが Patent__c に対して実行したすべてのクエリを検索する
SELECT EventDate, EventIdentifier, PolicyOutcome, EvaluationTime, Query FROM ApiEvent WHERE QueriedEntities='Patent__c'