Adobe Workfront Planning API の基本
Adobe Workfront Planning APIの目標は、HTTP経由で動作するREST フルなアーキテクチャを導入することで、Planningとの統合を構築することを簡素化することです。 このドキュメントでは、RESTおよびJSON応答に精通していることを前提としており、Planning APIで実行されるアプローチについて説明します。
Workfront計画スキーマを理解すると、統合のためにWorkfront計画からデータを取り出すために使用できるデータベースの関係を理解するのに役立ちます。
Workfront カスタムフォームの外部参照フィールドから計画APIを呼び出すことができます。
外部参照フィールドについて詳しくは、 カスタムフォームの外部参照フィールドの例を参照してください。
Workfront計画API URL
操作
オブジェクトは、一意の URI に HTTP リクエストを送信して操作します。実行する操作は、HTTP メソッドで指定します。
標準の HTTP メソッドは、次の操作に対応しています。
- GET - IDでオブジェクトを取得し、クエリですべてのオブジェクトを検索します
- POST - 新しいオブジェクトを挿入
- PUT - 既存のオブジェクトを編集
- DELETE - オブジェクトを削除
各操作の詳細と例については、Workfront Planning API開発者ドキュメント を参照してください。
フィールドタイプとそれらに使用される検索修飾子
フィールドで修飾子とフィルターを使用して、結果で返されるデータを制御できます。
検索修飾子の使用
Workfront Planningでは、次の検索修飾子がサポートされています。
フィールドタイプ
次に、サポートされるフィールドタイプのリストと、それらのフィールドタイプごとに使用できる検索修飾子のリストを示します
「And」ステートメントと「Or」ステートメントの使用
API呼び出しでは、$and文と"$or"文を組み合わせた複数の条件に基づくフィルターを使用できます
{
"recordTypeId": "recordTypeId",
"offset": "integer",
"limit": "integer",
"filters": [
{
"$or": [
{
"launch_date": {
"$isBetween": [
"2024-03-31T20:00:00.000Z",
"2024-04-01T20:00:00.000Z"
]
}
},
{
"$and": [
{
"launch_date": {
"$isBetween": [
"2024-03-31T20:00:00.000Z",
"2024-04-01T20:00:00.000Z"
]
}
},
{
"status": "active"
}
]
},
{
"$and": [
{
"launch_date": {
"$isBetween": [
"2024-04-15T00:00:00.000Z",
"2024-04-16T00:00:00.000Z"
]
}
},
{
"status": "planned"
}
]
}
]
}
]
}
fields リクエストパラメーターの使用
fields リクエストパラメーターを使用して、返す特定のフィールドのコンマ区切りリストを指定できます。 これらのフィールド名では、大文字と小文字が区別されます。
例えば、次のリクエスト:
/v1/records/search?attributes=data,createdBy
{
"records": [
{
"id": "Rc6527ecb35df57c441d92ba00",
"createdBy": "61a9cc0500002f9fdaa7a6f824f557e1",
"createdAt": null,
"updatedBy": null,
"updatedAt": null,
"customerId": null,
"imsOrgId": null,
"recordTypeId": null,
"data": {
"F666c0b58b6fee61a2ea6ea81": [
{
"externalId": null,
"id": "Rc665728ff95730b58bc757b13",
"value": null
},
..
は、次のような応答を返します。
{
"priority": 2,
"name": "first task",
"ID": "4c7c08fa0000002ff924e298ee148df4",
"plannedStartDate": "2010-08-30T09:00:00:000-0600"
}
API でのクエリ結果の並べ替え
API 呼び出しに以下を追加すると、任意のフィールド別に結果を並べ替えることができます。
/v1/records/search
リクエスト本文:
{
"recordTypeId": "Rt6527ecb25df57c441d92b9fa",
"filters": [],
"sorting": [
{
"fieldId": "F6527ecb25df57c441d92b9fc",
"direction": "asc"
},
{
"fieldId": "F658afcbd4a0273c67c346fd5",
"direction": "desc"
}
],
"limit": 500,
"offset": 0,
"rowOrderViewId": "V6527ecb75df57c441d92ba03",
"groupingFieldIds": []
}
クエリ制限とページ分割された応答
デフォルトでは、Planning API リクエストは、リストの先頭から500件の結果を返します。 結果数のデフォルト制限を上書きするには、リクエストでlimit パラメーターを使用し、2000件まで別の数値に設定します。
リクエストにoffset パラメーターを追加して、大規模なデータセットに対してページ分割された応答を使用することをお勧めします。 ページ分割された応答を使用すると、返す必要がある最初の結果の場所を指定できます。
例えば、2001-4000の結果を返す場合は、次のリクエストを使用できます。 次の例では、2001番目の結果から開始して、アクティブなステータスにある2000件のレコードを返します。
POST /v1/records/search
リクエスト本文:
{
"recordTypeId": "recordTypeId",
"offset": "2001",
"limit": "2000",
"filters": [
{ "status": "active" }
]
}
結果が正しくページ分割されるようにするには、並べ替えパラメーターを使用します。これにより、結果を同じ順序で返すことができるため、ページネーションが結果を繰り返したりスキップしたりすることはありません。
並べ替えについて詳しくは、この記事の「APIでのクエリ結果の並べ替え」を参照してください。