Flow Service APIを使用して、ソースの行レベル データをフィルタリングします

AVAILABILITY
行レベルのデータのフィルタリングのサポートは、現在、次のソースでのみ利用できます。

このガイドでは、Flow Service APIを使用してソースの行レベルのデータをフィルタリングする手順について説明します。

基本を学ぶ

このチュートリアルは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。

  • ソース:Experience Platform を使用すると、データを様々なソースから取得しながら、Experience Platform サービスを使用して受信データの構造化、ラベル付け、拡張を行うことができます。
  • サンドボックス:Experience Platform には、単一の Experience Platform インスタンスを別々の仮想環境に分割して、デジタルエクスペリエンスアプリケーションの開発と発展に役立つ仮想サンドボックスが用意されています。

Experience Platform APIの使用

Experience Platform APIの呼び出しを正常に行う方法について詳しくは、Experience Platform APIの概要に関するガイドを参照してください。

ソースデータをフィルタリング filter-source-data

次に、ソースの行レベルのデータをフィルタリングするために実行する手順の概要を示します。

接続仕様の取得 retrieve-your-connection-specs

ソースの行レベルのデータをフィルタリングする最初の手順は、ソースの接続仕様を取得し、ソースがサポートする演算子と言語を決定することです。

特定のソースの接続仕様を取得するには、/connectionSpecs APIのFlow Service エンドポイントにGET リクエストを行い、クエリパラメーターの一部としてソースのプロパティ名を指定します。

API 形式

GET /connectionSpecs/{QUERY_PARAMS}
パラメーター
説明
{QUERY_PARAMS}
結果をフィルタリングするオプションのクエリパラメーター。 Google BigQuery プロパティを適用し、検索でnameを指定することで、"google-big-query"接続仕様を取得できます。
リクエスト

次のリクエストは、Google BigQueryの接続仕様を取得します。

code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs?property=name=="google-big-query"' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
応答

応答が成功すると、ステータスコード 200と、サポートされているクエリ言語と論理演算子に関する情報を含むGoogle BigQueryの接続仕様が返されます。

code language-json
"attributes": {
  "filterAtSource": {
    "enabled": true,
    "queryLanguage": "SQL",
    "logicalOperators": [
      "and",
      "or",
      "not"
    ],
    "comparisonOperators": [
      "=",
      "!=",
      "<",
      "<=",
      ">",
      ">=",
      "like",
      "in"
    ],
    "columnNameEscapeChar": "`",
    "valueEscapeChar": "'"
  }
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 layout-auto
プロパティ 説明
attributes.filterAtSource.enabled クエリされたソースが行レベルのデータのフィルタリングをサポートしているかどうかを指定します。
attributes.filterAtSource.queryLanguage クエリされたソースがサポートするクエリ言語を指定します。
attributes.filterAtSource.logicalOperators ソースの行レベルのデータをフィルタリングするために使用できる論理演算子を決定します。
attributes.filterAtSource.comparisonOperators ソースの行レベルのデータをフィルタリングするために使用できる比較演算子を決定します。 比較演算子について詳しくは、次の表を参照してください。
attributes.filterAtSource.columnNameEscapeChar 列のエスケープに使用する文字を指定します。
attributes.filterAtSource.valueEscapeChar SQL クエリの書き込み時に値を囲む方法を指定します。

比較演算子 comparison-operators

演算子
説明
==
プロパティが指定された値に等しいかどうかをフィルタリングします。
!=
プロパティが指定された値と等しくないかどうかを基準にフィルタリングします。
<
プロパティが指定された値より小さいかどうかを基準にフィルタリングします。
>
プロパティが指定された値より大きいかどうかを基準にフィルタリングします。
<=
プロパティが指定された値以下かどうかを基準にフィルタリングします。
>=
プロパティが指定された値以上かどうかをフィルタリングします。
like
指定されたパターンを検索するためにWHERE句で使用されるフィルター。
in
プロパティが指定された範囲内にあるかどうかに基づいてフィルタリングします。

取り込むフィルター条件の指定 specify-filtering-conditions-for-ingestion

ソースがサポートする論理演算子とクエリ言語を特定したら、Profile Query Language(PQL)を使用して、ソースデータに適用するフィルタリング条件を指定できます。

以下の例では、条件は、パラメーターとしてリストされたノードタイプに指定された値と等しいデータのみを選択するために適用されます。

{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "=",
    "params": [
      {
        "nodeType": "fieldLookup",
        "fieldName": "city"
      },
      {
        "nodeType": "literal",
        "value": "DDN"
      }
    ]
  }
}

データのプレビュー preview-your-data

クエリ パラメーターの一部として/exploreを指定し、Flow ServiceでPQL入力条件を指定しながら、filters APIのBase64 エンドポイントにGET リクエストを行うことで、データをプレビューできます。

API 形式

GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
パラメーター
説明
{BASE_CONNECTION_ID}
ソースのベース接続ID。
{TABLE_PATH}
検査するテーブルのパスプロパティ。
{FILTERS}
PQLのフィルター条件がBase64でエンコードされています。
リクエスト
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/89d1459e-3cd0-4069-acb3-68f240db4eeb/explore?objectType=table&object=TESTFAS.FASTABLE&preview=true&filters=ewogICJ0eXBlIjogIlBRTCIsCiAgImZvcm1hdCI6ICJwcWwvanNvbiIsCiAgInZhbHVlIjogewogICAgIm5vZGVUeXBlIjogImZuQXBwbHkiLAogICAgImZuTmFtZSI6ICJhbmQiLAogICAgInBhcmFtcyI6IFsKICAgICAgewogICAgICAgICJub2RlVHlwZSI6ICJmbkFwcGx5IiwKICAgICAgICAiZm5OYW1lIjogImxpa2UiLAogICAgICAgICJwYXJhbXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJub2RlVHlwZSI6ICJmaWVsZExvb2t1cCIsCiAgICAgICAgICAgICJmaWVsZE5hbWUiOiAiY2l0eSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJub2RlVHlwZSI6ICJsaXRlcmFsIiwKICAgICAgICAgICAgInZhbHVlIjogIk0lIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgXQogIH0KfQ==\' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
応答

応答が成功すると、データの内容と構造が返されます。

code language-json
{
  "format": "flat",
  "schema": {
    "columns": [
      {
        "name": "FIRSTNAME",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "LASTNAME",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "CITY",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "AGE",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "HEIGHT",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "ISEMPLOYED",
        "type": "boolean",
        "xdm": {
          "type": "boolean"
        }
      },
      {
        "name": "POSTG",
        "type": "boolean",
        "xdm": {
          "type": "boolean"
        }
      },
      {
        "name": "LATITUDE",
        "type": "double",
        "xdm": {
          "type": "number"
        }
      },
      {
        "name": "LONGITUDE",
        "type": "double",
        "xdm": {
          "type": "number"
        }
      },
      {
        "name": "JOINEDDATE",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "CREATEDAT",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "CREATEDATTS",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      }
    ]
  },
 "data": [
    {
        "CITY": "MZN",
        "LASTNAME": "Jain",
        "JOINEDDATE": "2022-06-22T00:00:00",
        "LONGITUDE": 1000.222,
        "CREATEDAT": "2022-06-22T17:19:33",
        "FIRSTNAME": "Shivam",
        "POSTG": true,
        "HEIGHT": "169",
        "CREATEDATTS": "2022-06-22T17:19:33",
        "ISEMPLOYED": true,
        "LATITUDE": 2000.89,
        "AGE": "25"
    },
    {
        "CITY": "MUM",
        "LASTNAME": "Kreet",
        "JOINEDDATE": "2022-09-07T00:00:00",
        "LONGITUDE": 10500.01,
        "CREATEDAT": "2022-09-07T17:19:33",
        "FIRSTNAME": "Rakul",
        "POSTG": true,
        "HEIGHT": "155",
        "CREATEDATTS": "2022-09-07T17:19:33",
        "ISEMPLOYED": false,
        "LATITUDE": 2500.89,
        "AGE": "42"
    },
    {
        "CITY": "MAN",
        "LASTNAME": "Lee",
        "JOINEDDATE": "2022-09-14T00:00:00",
        "LONGITUDE": 1000.222,
        "CREATEDAT": "2022-09-14T05:02:33",
        "FIRSTNAME": "Denzel",
        "POSTG": true,
        "HEIGHT": "185",
        "CREATEDATTS": "2022-09-14T05:02:33",
        "ISEMPLOYED": true,
        "LATITUDE": 123.89,
        "AGE": "16"
    }
  ]
}

フィルタリングされたデータのソース接続の作成

ソース接続を作成し、フィルターされたデータを取り込むには、/sourceConnections エンドポイントにPOST リクエストを行い、リクエスト本文パラメーターにフィルター条件を指定します。

API 形式

POST /sourceConnections
リクエスト

次のリクエストは、test1.fasTestTable = cityDDNからデータを取り込むソース接続を作成します。

code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "BigQuery Source Connection",
      "description": "Source Connection for Filter test",
      "baseConnectionId": "89d1459e-3cd0-4069-acb3-68f240db4eeb",
      "data": {
        "format": "tabular"
      },
      "params": {
        "tableName": "test1.fasTestTable",
        "filters": {
          "type": "PQL",
          "format": "pql/json",
          "value": {
            "nodeType": "fnApply",
            "fnName": "=",
            "params": [
              {
                "nodeType": "fieldLookup",
                "fieldName": "city"
              },
              {
                "nodeType": "literal",
                "value": "DDN"
              }
            ]
          }
        }
      },
      "connectionSpec": {
        "id": "3c9b37f8-13a6-43d8-bad3-b863b941fedd",
        "version": "1.0"
      }
    }'
応答

応答が成功すると、新しく作成されたソース接続の一意の識別子(id)が返されます。

code language-json
{
    "id": "b7581b59-c603-4df1-a689-d23d7ac440f3",
    "etag": "\"ef05d265-0000-0200-0000-6019e0080000\""
}

Marketo Engageのアクティビティエンティティをフィルタリング filter-for-marketo

行レベルのフィルタリングを使用して、Marketo Engage ソースコネクタ ​を使用する際に、アクティビティエンティティをフィルタリングできます。 現在、アクティビティエンティティと標準アクティビティタイプに対してのみフィルタリングできます。 カスタムアクティビティは、Marketo フィールドマッピング ​の下で管理されたままです。

Marketo標準アクティビティタイプ marketo-standard-activity-types

次の表は、Marketoの標準アクティビティタイプの概要を示しています。 この表をフィルタリング条件の参照として使用します。

アクティビティタイプ ID
アクティビティタイプ名
1
Web ページを見る
2
フォームに入力
3
クリックリンク
6
メールを送信
7
メール配信済み
8
電子メールのバウンス
9
登録解除メール
10
メールを開く
11
「メール」をクリック
12
新規リード
21
リードのコンバージョン
22
スコアを変更
24
リストに追加
25
リストから削除
27
電子メールのバウンス(ソフト)
32
リードを統合
34
商談に追加
35
商談から削除
36
オポチュニティの更新
46
注目のアクション
101
収益ステージの変更
104
進行状況のステータスの変更
110
Webhookに電話
113
ナーチャリングに追加
114
ナーチャリングトラックを変更
115
ナーチャリング頻度の変更

Marketo ソースコネクタを使用する場合に標準アクティビティエンティティをフィルタリングするには、次の手順に従います。

ドラフトデータフローの作成

まず、Marketo データフローを作成し、ドラフトとして保存します。 ドラフトデータフローの作成方法について詳しくは、次のドキュメントを参照してください。

データフローIDの取得

ドラフトされたデータフローを作成したら、対応するIDを取得する必要があります。

UIで、ソースカタログに移動し、上部ヘッダーから「Dataflows」を選択します。 ステータス列を使用して、ドラフトモードで保存されたすべてのデータフローを特定し、データフローの名前を選択します。 次に、右側の​Properties パネルを使用して、データフローIDを見つけます。

データフローの詳細を取得

次に、データフローの詳細、特にデータフローに関連付けられたソース接続IDを取得する必要があります。 データフローの詳細を取得するには、/flows エンドポイントに対してGET リクエストを行い、データフローIDをパスパラメーターとして指定します。

API 形式

GET /flows/{FLOW_ID}
パラメーター
説明
{FLOW_ID}
取得するデータフローのID。
リクエスト

次のリクエストは、データフローID a7e88a01-40f9-4ebf-80b2-0fc838ff82efに関する情報を取得します。

code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/flows/a7e88a01-40f9-4ebf-80b2-0fc838ff82ef' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
応答

応答が成功すると、対応するソース接続とターゲット接続に関する情報を含むデータフローの詳細が返されます。 データフローを公開するには、これらの値が後で必要となるため、ソース接続IDとターゲット接続IDをメモしておく必要があります。

code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26
{
    "items": [
        {
            "id": "a7e88a01-40f9-4ebf-80b2-0fc838ff82ef",
            "createdAt": 1728592929650,
            "updatedAt": 1728597187444,
            "createdBy": "acme@AdobeID",
            "updatedBy": "acme@AdobeID",
            "createdClient": "exc_app",
            "updatedClient": "acme",
            "sandboxId": "7f3419ce-53e2-476b-b419-ce53e2376b02",
            "sandboxName": "prod",
            "imsOrgId": "acme@AdobeOrg",
            "name": "Marketo Engage Standard Activities ACME",
            "description": "",
            "flowSpec": {
                "id": "15f8402c-ba66-4626-b54c-9f8e54244d61",
                "version": "1.0"
            },
            "state": "enabled",
            "version": "\"600290fc-0000-0200-0000-67084cc30000\"",
            "etag": "\"600290fc-0000-0200-0000-67084cc30000\"",
            "sourceConnectionIds": [
                "56f7eb3a-b544-4eaa-b167-ef1711044c7a"
            ],
            "targetConnectionIds": [
                "7e53e6e8-b432-4134-bb29-21fc6e8532e5"
            ],
            "inheritedAttributes": {
                "properties": {
                    "isSourceFlow": true
                },
                "sourceConnections": [
                    {
                        "id": "56f7eb3a-b544-4eaa-b167-ef1711044c7a",
                        "connectionSpec": {
                            "id": "bf1f4218-73ce-4ff0-b744-48d78ffae2e4",
                            "version": "1.0"
                        },
                        "baseConnection": {
                            "id": "0137118b-373a-4c4e-847c-13a0abf73b33",
                            "connectionSpec": {
                                "id": "bf1f4218-73ce-4ff0-b744-48d78ffae2e4",
                                "version": "1.0"
                            }
                        }
                    }
                ],
                "targetConnections": [
                    {
                        "id": "7e53e6e8-b432-4134-bb29-21fc6e8532e5",
                        "connectionSpec": {
                            "id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
                            "version": "1.0"
                        }
                    }
                ]
            },
            "options": {
                "isSampleDataflow": false,
                "errorDiagnosticsEnabled": true
            },
            "transformations": [
                {
                    "name": "Mapping",
                    "params": {
                        "mappingVersion": 0,
                        "mappingId": "f6447514ef95482889fac1818972e285"
                    }
                }
            ],
            "runs": "/runs?property=flowId==a7e88a01-40f9-4ebf-80b2-0fc838ff82ef",
            "lastOperation": {
                "started": 1728592929650,
                "updated": 0,
                "operation": "create"
            },
            "lastRunDetails": {
                "id": "2d7863d5-ca4d-4313-ac52-2603eaf2cdbe",
                "state": "success",
                "startedAtUTC": 1728594713537,
                "completedAtUTC": 1728597183080
            },
            "labels": [],
            "recordTypes": [
                {
                    "type": "experienceevent",
                    "extensions": {}
                }
            ]
        }
    ]
}

ソース接続の詳細を取得

次に、ソース接続IDを使用し、/sourceConnections エンドポイントに対してGET リクエストを実行して、ソース接続の詳細を取得します。

API 形式

GET /sourceConnections/{SOURCE_CONNECTION_ID}
パラメーター
説明
{SOURCE_CONNECTION_ID}
取得するソース接続のID。
リクエスト
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections/56f7eb3a-b544-4eaa-b167-ef1711044c7a' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
応答

応答が成功すると、ソース接続の詳細が返されます。 ソース接続を更新するには、次の手順でこの値が必要になるので、バージョンを書き留めてください。

code language-json line-numbers data-start-1 data-line-offset-4 h-30
{
    "items": [
        {
            "id": "b85b895f-a289-42e9-8fe1-ae448ccc7e53",
            "createdAt": 1729634331185,
            "updatedAt": 1729634331185,
            "createdBy": "acme@AdobeID",
            "updatedBy": "acme@AdobeID",
            "createdClient": "exc_app",
            "updatedClient": "acme",
            "sandboxId": "7f3419ce-53e2-476b-b419-ce53e2376b02",
            "sandboxName": "prod",
            "imsOrgId": "acme@AdobeOrg",
            "name": "New Source Connection - 2024-10-23T03:28:50+05:30",
            "description": "Source connection created from the workflow",
            "baseConnectionId": "fd9f7455-1e23-4831-9283-7717e20bee40",
            "state": "draft",
            "data": {
                "format": "tabular",
                "schema": null,
                "properties": null
            },
            "connectionSpec": {
                "id": "2d31dfd1-df1a-456b-948f-226e040ba102",
                "version": "1.0"
            },
            "params": {
                "columns": [],
                "tableName": "Activity"
            },
            "version": "\"210068a6-0000-0200-0000-6718201b0000\"",
            "etag": "\"210068a6-0000-0200-0000-6718201b0000\"",
            "inheritedAttributes": {
                "baseConnection": {
                    "id": "fd9f7455-1e23-4831-9283-7717e20bee40",
                    "connectionSpec": {
                        "id": "2d31dfd1-df1a-456b-948f-226e040ba102",
                        "version": "1.0"
                    }
                }
            },
            "lastOperation": {
                "started": 1729634331185,
                "updated": 0,
                "operation": "draft_create"
            }
        }
    ]
}

フィルター条件を使用したソース接続の更新

これで、ソース接続IDと対応するバージョンが用意できたので、標準のアクティビティタイプを指定するフィルター条件を使用してPATCH リクエストを行うことができます。

ソース接続を更新するには、/sourceConnections エンドポイントに対してPATCH リクエストを行い、クエリ パラメーターとしてソース接続IDを指定します。 さらに、対応するバージョンのソース接続を含むIf-Match ヘッダーパラメーターを指定する必要があります。

TIP
If-Match ヘッダーは、PATCH リクエストを行う際に必要です。このヘッダーの値は、更新するデータフローの一意のバージョン/タグです。 バージョン/タグ値は、データフローが正常に更新されるたびに更新されます。

API 形式

PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
パラメーター
説明
{SOURCE_CONNECTION_ID}
更新するソース接続のID
リクエスト
code language-shell
curl -X PATCH \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections/56f7eb3a-b544-4eaa-b167-ef1711044c7a' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'If-Match: {VERSION_HERE}'
  -d '
      {
        "op": "add",
        "path": "/params/filters",
        "value": {
            "type": "PQL",
            "format": "pql/json",
            "value": {
                "nodeType": "fnApply",
                "fnName": "in",
                "params": [
                    {
                        "nodeType": "fieldLookup",
                        "fieldName": "activityType"
                    },
                    {
                        "nodeType": "literal",
                        "value": [
                            "Change Status in Progression",
                            "Fill Out Form"
                        ]
                    }
                ]
            }
        }
    }'
応答

応答が成功すると、ソース接続IDとetag (バージョン)が返されます。

code language-json
{
    "id": "56f7eb3a-b544-4eaa-b167-ef1711044c7a",
    "etag": "\"210068a6-0000-0200-0000-6718201b0000\""
}

ソース接続を公開

ソース接続がフィルタリング条件で更新されたので、ドラフト状態から先に進み、ソース接続を公開できるようになりました。 これを行うには、/sourceConnections エンドポイントにPOST リクエストを行い、ドラフトソース接続のIDと、公開用のアクション操作を指定します。

API 形式

POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
パラメーター
説明
{SOURCE_CONNECTION_ID}
公開するソース接続のID。
op
クエリされたソース接続の状態を更新するアクション操作。ドラフトソース接続を公開するには、oppublish に設定します。
リクエスト

次のリクエストは、ドラフトされたソース接続を公開します。

code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections/56f7eb3a-b544-4eaa-b167-ef1711044c7a/action?op=publish' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
応答

応答が成功すると、ソース接続IDとetag (バージョン)が返されます。

code language-json
{
    "id": "56f7eb3a-b544-4eaa-b167-ef1711044c7a",
    "etag": "\"9f007f7b-0000-0200-0000-670ef1150000\""
}

ターゲット接続を公開

前の手順と同様に、ドラフトデータフローを続行して公開するには、ターゲット接続も公開する必要があります。 /targetConnections エンドポイントにPOST リクエストを行い、公開するドラフトターゲット接続のIDと、公開用のアクション操作を指定します。

API 形式

POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
パラメーター
説明
{TARGET_CONNECTION_ID}
公開するターゲット接続のID。
op
クエリされたターゲット接続の状態を更新するアクション操作。ドラフトターゲット接続を公開するには、oppublish に設定します。
リクエスト

次のリクエストは、ID 7e53e6e8-b432-4134-bb29-21fc6e8532e5のターゲット接続を公開します。

code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/connections/7e53e6e8-b432-4134-bb29-21fc6e8532e5/action?op=publish' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
応答

正常な応答は、ID と、公開したターゲット接続に対応する etag を返します。

code language-json
{
    "id": "7e53e6e8-b432-4134-bb29-21fc6e8532e5",
    "etag": "\"8e000533-0000-0200-0000-5f3c40fd0000\""
}

データフローを公開

ソース接続とターゲット接続の両方が公開されたら、最後の手順に進んでデータフローを公開できるようになりました。 データフローを公開するには、/flows エンドポイントにPOST リクエストを行い、公開用にデータフローIDとアクション操作を指定します。

API 形式

POST /flows/{FLOW_ID}/action?op=publish
パラメーター
説明
{FLOW_ID}
公開するデータフローのID。
op
クエリされたデータフローの状態を更新するアクション操作。ドラフトデータフローを公開するには、oppublish に設定します。
リクエスト

次のリクエストでは、ドラフトデータフローを公開しています。

code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/flows/a7e88a01-40f9-4ebf-80b2-0fc838ff82ef/action?op=publish' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
応答

正常な応答は、データフローの ID と対応する etag を返します。

code language-json
{
  "id": "a7e88a01-40f9-4ebf-80b2-0fc838ff82ef",
  "etag": "\"4b0354b7-0000-0200-0000-6716ce1f0000\""
}

Experience Platform UIを使用して、ドラフトデータフローが公開されていることを確認できます。 ソースカタログのデータフローページに移動し、データフローの​ Status ​を参照します。 成功した場合、ステータスは​ 有効 ​に設定されるようになりました。

TIP
  • フィルターが有効になっているデータフローは、1回のみバックフィルされます。 フィルタリング条件で行ったの変更(追加または削除など)は、増分データに対してのみ有効になります。
  • 新しいアクティビティタイプの履歴データを取り込む必要がある場合は、新しいデータフローを作成し、フィルター条件で適切なアクティビティタイプを使用してフィルタリング条件を定義することをお勧めします。
  • カスタムアクティビティタイプはフィルタリングできません。
  • フィルタリングされたデータはプレビューできません。

付録

この節では、フィルタリング用の様々なペイロードの例をさらに示します。

特異条件

1つの条件のみを必要とするシナリオの初期fnApplyを省略できます。

選択してサンプルを表示
code language-json
{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "like",
    "params": [
      {
        "nodeType": "fieldLookup",
        "fieldName": "firstname"
      },
      {
        "nodeType": "literal",
        "value": "%s"
      }
    ]
  }
}

in演算子の使用

演算子inの例については、以下のサンプルペイロードを参照してください。

選択してサンプルを表示
code language-json
{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "and",
    "params": [
      {
        "nodeType": "fnApply",
        "fnName": "in",
        "params": [
          {
            "nodeType": "fieldLookup",
            "fieldName": "firstname"
          },
          {
            "nodeType": "literal",
            "value": [
              "Ramen",
              "John"
            ]
          }
        ]
      }
    ]
  }
}

isNull演算子の使用

選択してサンプルを表示

演算子isNullの例については、以下のサンプルペイロードを参照してください。

code language-json
{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "isNull",
    "params": [
      {
        "nodeType": "fieldLookup",
        "fieldName": "complaint_type"
      }
    ]
  }
}

NOT演算子の使用

演算子NOTの例については、以下のサンプルペイロードを参照してください。

選択してサンプルを表示
code language-json
{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "NOT",
    "params": [
      {
        "nodeType": "fnApply",
        "fnName": "isNull",
        "params": [
          {
            "nodeType": "fieldLookup",
            "fieldName": "complaint_type"
          }
        ]
      }
    ]
  }
}

ネストされた条件を使用した例

複雑なネストされた条件の例については、以下のサンプルペイロードを参照してください。

選択してサンプルを表示
code language-json
{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "and",
    "params": [
      {
        "nodeType": "fnApply",
        "fnName": ">=",
        "params": [
          {
            "nodeType": "fieldLookup",
            "fieldName": "age"
          },
          {
            "nodeType": "literal",
            "value": 20
          }
        ]
      },
      {
        "nodeType": "fnApply",
        "fnName": "<=",
        "params": [
          {
            "nodeType": "fieldLookup",
            "fieldName": "age"
          },
          {
            "nodeType": "literal",
            "value": 30
          }
        ]
      },
      {
        "nodeType": "fnApply",
        "fnName": "or",
        "params": [
          {
            "nodeType": "fnApply",
            "fnName": "!=",
            "params": [
              {
                "nodeType": "fieldLookup",
                "fieldName": "city"
              },
              {
                "nodeType": "literal",
                "value": "PUD"
              }
            ]
          },
          {
            "nodeType": "fnApply",
            "fnName": "=",
            "params": [
              {
                "nodeType": "fieldLookup",
                "fieldName": "joinedDate"
              },
              {
                "nodeType": "literal",
                "value": "2020-04-22"
              }
            ]
          }
        ]
      }
    ]
  }
}
recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089