Adobe Workfront Planning API の基本

IMPORTANT
この記事の情報は、Adobe Workfront の追加機能である Adobe Workfront Planning に関するものです。
Workfront Planning へのアクセス要件のリストについて詳しくは、Adobe Workfront Planning へのアクセスの概要を参照してください。
Workfront計画の一般的な詳細については、Adobe Workfront計画の基本を学ぶを参照してください。

Adobe Workfront Planning APIの目標は、HTTP経由で動作するREST フルなアーキテクチャを導入することで、Planningとの統合を構築することを簡素化することです。 このドキュメントでは、RESTおよびJSON応答に精通していることを前提としており、Planning APIで実行されるアプローチについて説明します。

Workfront計画スキーマを理解すると、統合のためにWorkfront計画からデータを取り出すために使用できるデータベースの関係を理解するのに役立ちます。

Workfront カスタムフォームの外部参照フィールドから計画APIを呼び出すことができます。

外部参照フィールドについて詳しくは、​ カスタムフォームの外部参照フィールドの例を参照してください。

NOTE
Planning APIを使用する場合、Workfront ユーザーIDではなく、Adobe Identity Management System (IMS)ユーザーIDを使用してすべてのユーザー関連情報が返されます。
詳しくは、Adobe Admin Consoleでのユーザーの管理を参照してください。

Workfront計画API URL

操作

オブジェクトは、一意の URI に HTTP リクエストを送信して操作します。実行する操作は、HTTP メソッドで指定します。

標準の HTTP メソッドは、次の操作に対応しています。

  • GET - IDでオブジェクトを取得し、クエリですべてのオブジェクトを検索します
  • POST - 新しいオブジェクトを挿入
  • PUT - 既存のオブジェクトを編集
  • DELETE - オブジェクトを削除

各操作の詳細と例については、Workfront Planning API開発者ドキュメント ​を参照してください。

フィールドタイプとそれらに使用される検索修飾子

フィールドで修飾子とフィルターを使用して、結果で返されるデータを制御できます。

検索修飾子の使用

Workfront Planningでは、次の検索修飾子がサポートされています。

修飾子
説明
可能な値
$contains
"fieldId": { "$contains": "product" }
フィールド値にフィルターが含まれているレコードを返します
"新製品のローンチ"
$doesNotContain
"fieldId": { "$doesNotContain": "product" }
フィールド値にフィルターが含まれていないレコードを返します
「新しいローンチ」
$is
  • "fieldId" : { "$is": "new product launch" }
  • "fieldId" : { "new product launch" }
フィールド値がフィルターと完全に一致するレコードを返します
"新製品のローンチ"
$isNot
"fieldId": { "$isNot": "product" }
フィールド値がフィルターと正確に一致しないレコードを返します
"新製品のローンチ"
$isEmpty
  • "fieldId": "$isEmpty"
  • "fieldId": { "$isEmpty": null }
フィールド値が空のレコードを返します
  • ""
  • null
$isNotEmpty
  • "fieldId": "$isNotEmpty"
  • "fieldId": { "$isNotEmpty": null }
フィールド値が空でないレコードを返します
"新製品のローンチ"
$greaterThan
"fieldId": { "$greaterThan": 10 }
フィールド値がフィルターより大きいレコードを返します
  • 20
  • 25
$greaterThanOrEqual
"fieldId": { "$greaterThanOrEqual": 10 }
フィールド値がフィルター以上のレコードを返します
  • 10
  • 20
  • 25
$lessThan
"fieldId": { "$lessThan": 10 }
フィールド値がフィルターより小さいレコードを返します
  • 5
  • 9
$lessThanOrEqual
"fieldId": { "$lessThanOrEqual": 10 }
フィールド値がフィルター以下のレコードを返します
  • 5
  • 9
    • 10
$isAfter
"fieldId": { "$isAfter": "2024-05-14T20:00:00.000Z" }
フィールド値がフィルターの後にあるレコードを返します
「2024-05-15T20:00:00.000Z」
$isBefore
"fieldId": { "$isBefore": "2024-05-14T20:00:00.000Z" }
フィールド値がフィルターの前にあるレコードを返します
「2024-05-12T20:00:00.000Z」
$isBetween
"fieldId": { "$isBetween": ["2024-05-10T20:00:00.000Z", "2024-05-15T20:00:00.000Z"] }
フィールド値がフィルター間にあるレコードを返します
  • 「2024-05-12T20:00:00.000Z」
  • 「2024-05-14T20:00:00.000Z」
$isNotBetween
"fieldId": { "$isNotBetween": ["2024-05-10T20:00:00.000Z", "2024-05-15T20:00:00.000Z"] }
フィールド値がフィルター間にないレコードを返します
  • 「2024-05-09T20:00:00.000Z」
  • 「2024-05-17T20:00:00.000Z」
$isAnyOf
"fieldId": { "$isAnyOf": ["active", "completed"] }
フィールド値がフィルターのいずれかであるレコードを返します
  • 「アクティブ」
  • 「完了」
$isNoneOf
"fieldId": { "$isNoneOf": ["active", "completed"] }
フィールド値がフィルターのどれでもないレコードを返します
  • 「完了」
  • 「固定」
$hasAnyOf
"fieldId": { "$hasAnyOf": ["active", "completed"] }
フィールド値にフィルターのいずれかを持つレコードを返します
  • ["active", "fixed"]
  • ["fixed", "completed", "finished"]
$hasAllOf
"fieldId": { "$hasAllOf": ["active", "completed"] }
フィールド値にすべてのフィルターが含まれているレコードを返します
  • ["active", "completed"]
  • ["active", "completed", "finished"]
$hasNoneOf
"fieldId": { "$hasNoneOf": ["active", "completed"] }
フィールド値にフィルターが含まれていないレコードを返します
["fixed", "finished"]
$isExactly
"fieldId": { "$isExactly": ["active", "completed"] }
フィールド値が正確にフィルターであるレコードを返します
["active", "completed"]

フィールドタイプ

次に、サポートされるフィールドタイプのリストと、それらのフィールドタイプごとに使用できる検索修飾子のリストを示します

フィールドタイプ
サポートされている検索修飾子
テキスト
$contains, $doesNotContain, $is, $isNot, $isEmpty, $isNotEmpty
ロングテキスト
$contains, $doesNotContain, $is, $isNot, $isEmpty, $isNotEmpty
数値
$is, $isNot, $greaterThan, $greaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
割合
$is, $isNot, $greaterThan, $greaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
通貨
$is, $isNot, $greaterThan, $greaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
日付
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween, $isEmpty, $isNotEmpty
単一選択
$is, $isNot, $isAnyOf, $isNoneOf, $isEmpty, $isNotEmpty
複数選択
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
ブール値
$is
ユーザー
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
数式
$contains, $doesNotContain, $is, $isNot, $isEmpty, $isNotEmpty
url
$contains, $doesNotContain, $is, $isNot, $isEmpty, $isNotEmpty
created-by
$is, $isNot, $isAnyOf, $isNoneOf
created-at
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween
updated-by
$is, $isNot, $isAnyOf, $isNoneOf, $isEmpty, $isNotEmpty
updated-at
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween, $isEmpty, $isNotEmpty
参照
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
参照
リンクされたフィールドによって異なります

「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でのクエリ結果の並べ替え」を参照してください。

recommendation-more-help
5f00cc6b-2202-40d6-bcd0-3ee0c2316b43