Task
サポートされているコール
create()、delete()、describeLayout()、describeSObjects()、getDeleted()、getUpdated()、query()、retrieve()、search()、undelete()、update()、upsert()
項目
| 項目 | データ型 |
|---|---|
| AccountId |
|
| ActivityDate | |
| CallDisposition | |
| CallDurationInSeconds |
|
| CallObject |
|
| CallType |
|
| ConnectionReceivedId |
|
| ConnectionSentId |
|
| Description |
|
| IsArchived |
|
| IsClosed |
|
| IsHighPriority |
|
| IsRecurrence |
|
| IsReminderSet |
|
| IsVisibleInSelfService |
|
| OwnerId |
|
| Priority |
|
| RecurrenceActivityId |
|
| RecurrenceDayOfMonth |
|
| RecurrenceDayOfWeekMask |
|
| RecurrenceEndDateOnly |
|
| RecurrenceInstance |
|
| RecurrenceInterval |
|
| RecurrenceMonthOfYear |
|
| RecurrenceRegeneratedType |
|
| RecurrenceStartDateOnly |
|
| RecurrenceTimeZoneSidKey |
|
| RecurrenceType |
|
| ReminderDateTime |
|
| Status |
|
| Subject |
|
| TaskSubtype | |
| TaskWhoIds | |
| Type |
|
| WhatCount |
|
| WhatId |
|
| WhoCount |
|
| WhoId |
|
使用方法
- 定期的な ToDo は API バージョン 16.0 以降で使用できます。
- ToDo を作成した後、定期的な ToDo から定期的でない ToDo に変更することはできません。その逆も同様です。
- API を使用して定期的な ToDo を削除すると、未完了の ToDo も完了した ToDo もすべて削除されます。一方、ユーザインターフェースで定期的な繰り返し ToDo を削除すると、未完了の ToDo (IsClosed が false) のみが削除されます。
- IsRecurrence が true である場合、RecurrenceStartDateOnly、RecurrenceEndDateOnly、RecurrenceType、および指定された定期的なタイプに関連付けられたプロパティ (次の表を参照) を入力する必要があります。
- RecurrenceStartDateOnly 項目または繰り返しのパターンを変更すると、すべての未完了 ToDo が削除され、新しい繰り返しパターンに基づいて新しい未完了の ToDo が作成されます。繰り返しのパターンは、RecurrenceType、RecurrenceTimeZoneSidKey、RecurrenceInterval、RecurrenceDayOfWeekMask、RecurrenceDayOfMonth、RecurrenceInstance、および RecurrenceMonthOfYear によって決まります。
- RecurrenceEndDateOnly の値を前の日付に変更 (例: 1 月 20 日から 1 月 10 日に変更) すると、ActivityDate の値が変更後の完了日より大きい未完了 ToDo はすべて削除されます。その他の未完了 ToDo および完了した ToDo には影響ありません。
- RecurrenceEndDateOnly の値を後の日付に変更 (例: 1 月 10 日から 1 月 20 日に変更) すると、新しい ToDo が変更後の完了日までに作成されます。既存の未完了 ToDo および完了した ToDo には影響ありません。
次の表には、定期的な ToDo で使用される項目が示されています。それぞれの繰り返しのタイプでは、すべてのプロパティが指定されている必要があります。未使用のプロパティはすべて null に設定する必要があります。
| RecurrenceType の値 | プロパティ | パターンの例 |
|---|---|---|
| RecursDaily | RecurrenceInterval | 1 日おき |
| RecursEveryWeekday | RecurrenceDayOfWeekMask | 土曜、日曜以外のすべての平日 |
| RecursMonthly | RecurrenceDayOfMonth RecurrenceInterval | 1 か月おき、月の 3 日目 |
| RecursMonthlyNth | RecurrenceInterval RecurrenceInstance RecurrenceDayOfWeekMask | 1 か月おき、月の最終金曜日 |
| RecursWeekly | RecurrenceInterval RecurrenceDayOfWeekMask | 2 週間おきの水曜日と金曜日 |
| RecursYearly | RecurrenceDayOfMonth RecurrenceMonthOfYear | 毎年 3 月の 26 日 |
| RecursYearlyNth | RecurrenceDayOfWeekMask RecurrenceInstanceRecurrenceMonthOfYear | 毎年 10 月の第 1 土曜日 |
- JunctionIdList
-
JunctionIdList 項目が行動および ToDo オブジェクトに実装されるようになりました。1 回の API コールで、行動または ToDo オブジェクトの取引先責任者、リード、またはユーザとの多対多リレーションを簡単に作成できます。
JunctionIdList を使用せずに関連する取引先責任者がある ToDo を作成するには、まず ToDo を作成してから、返された ToDo ID を使用して TaskRelation レコードを作成する必要があります。TaskRelation でコールの保存に失敗した場合、ToDo はデータベースにコミット済みであるため、エラー処理は自分で行う必要があります。1public void createTasksOld(Contact[] contacts) { 2 Task task = new Task(); 3 task.setSubject("New Task"); 4 SaveResult[] results = null; 5 try { 6 results = connection.create(new Task[] { 7 task 8 }); 9 if (results[0].isSuccess()) { 10 TaskRelation[] relations = new TaskRelation[contacts.size()]; 11 for (int i = 0; i < contacts.length; i++) { 12 relations[i] = new TaskRelation(); 13 relations[i].setTaskId(results[0].getID()); 14 relations[i].setRelationId(contacts[i].getID()); 15 } 16 results = connection.create(relations); 17 } 18 } catch (ConnectionException ce) { 19 ce.printStackTrace(); 20 } 21} -
JuncionIdList を使用して ToDo を作成する場合は、関連する取引先責任者から ID が取得され、ToDo および TaskRelation レコードの両方が 1 回の API コールで作成されます。すべての処理が 1 回の API コールで行われるため、TaskRelation に失敗すると、ToDo がロールバックされます。
1public void createTaskNew(Contact[] contacts) { 2 String[] contactIds = new String[contacts.size()]; 3 for (int i = 0; i < contacts.size(); i++) { 4 contactIds[i] = contacts[i].getID(); 5 } 6 Task task = new Task(); 7 task.setSubject("New Task"); 8 task.setTaskWhoIds(contactIds); 9 SaveResult[] results = null; 10 try { 11 results = connection.create(new Task[] { 12 task 13 }); 14 } catch (ConnectionException ce) { 15 ce.printStackTrace(); 16 } 17}