RecordActionHistory
サポートされているコール
describeSObjects()、query()、retrieve()
API バージョン 42.0 以降では delete() を有効にすることもできます。「項目履歴および項目履歴アーカイブの削除の有効化」を参照してください。
特別なアクセスルール
このオブジェクトは常に参照のみです。
項目
| 項目 | 詳細 |
|---|---|
| ActionDefinitionApiName |
|
| ActionDefinitionLabel |
|
| ActionType |
|
| IsMandatory |
|
| LoggedTime |
|
| ParentRecordId |
|
| Pinned |
|
| RecordActionId |
|
| State |
|
| UserId |
|
使用方法
RecordActionHistory オブジェクトは、レコードでさまざまな状態を遷移する、アクションのライフサイクルを表します。
RecordActionHistory オブジェクトは Big Object です。このため、同期 SOQL、SOAP API、REST API、Bulk API、または Apex API を使用してこのオブジェクトを読み取る場合、クエリは特定のパターンに従う必要があり、従わない場合は失敗します。クエリは、次のいずれかのパターンと一致する必要があり、複数の項目を使用する場合は、この順序どおりに使用します。
- ParentRecordId
- ParentRecordId、LoggedTime (DESC)
- ParentRecordId、LoggedTime (DESC)、RecordActionId
たとえば、次の SOQL クエリは ParentRecordId、LoggedTime (DESC) のパターンに従っています。
1SELECT ActionDefinitionApiName, User, State FROM RecordActionHistory WHERE
2 ParentRecordId = {CaseId} ORDER BY ParentRecordId, LoggedTime DESC同期 SOQL クエリは、パターンに従う必要がなく、任意の項目を照会できます。
Apex トリガは Big Object レコードを参照できません。Apex で RecordActionHistory レコードを照会する場合は、SOQL クエリを使用してください。
Java の例
次に、Java での RecordActionHistory の照会方法の例を示します。
1public void queryHBPOs(String parentRecordId) {
2 try {
3 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
4
5 // query for the RecordActionHistory associated with ParentRecord
6 QueryResult queryResults = connection.query("SELECT ActionDefinitionApiName, LoggedTime, State " +
7 "FROM RecordActionHistory WHERE ParentRecordId = '" + parentRecordId + "' LIMIT 50");
8 if (queryResults.getSize() > 0) {
9 for (int i=0;i<queryResults.getRecords().length;i++) {
10 // cast the SObject to a strongly-typed RecordActionHistory
11 RecordActionHistory raa = (RecordActionHistory)queryResults.getRecords()[i];
12 System.out.println("ActionDefinitionApiName: " + raa.getActionDefinitionApiName() + " - LoggedTime: "+ format.format(raa.getLoggedTime().getTime()) + " - State: " +
13 raa.getState());
14 }
15 }
16 } catch (Exception e) {
17 e.printStackTrace();
18 }
19 }