ベータ版
Flow Service API を使用した SAP Commerce のソース接続とデータフローの作成
作成対象:
- 開発者
以下のチュートリアルでは、SAP Commerce ソース接続とデータフローを作成し、Flow Service API を使用して SAP サブスクリプション請求の連絡先と顧客データをAdobe Experience Platformに取り込む手順について説明します。
はじめに
このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。
次の節では、Flow Service API を使用してに正常に接続するために必要な追加情報を示 SAP Commerce ています。
必要な資格情報の収集
SAP Commerce をExperience Platformに接続するには、次の接続プロパティの値を指定する必要があります。
資格情報 | 説明 |
---|---|
clientId | サービスキーからの clientId の値。 |
clientSecret | サービスキーからの clientSecret の値。 |
tokenEndpoint | サービスキーからの url の値は、https://subscriptionbilling.authentication.eu10.hana.ondemand.com と似ています。 |
region | データセンターの場所。 領域は url 内に存在し、値は eu10 または us10 に類似しています。 例えば、url が https://subscriptionbilling.authentication.eu10.hana.ondemand.com の場合は、eu10 が必要になります。 |
これらの資格情報について詳しくは、SAP Commerce ドキュメントを参照してください。
Flow Service API を使用した SAP Commerce のExperience Platformへの接続
次に、SAP Commerce ソースの認証、ソース接続の作成、アカウントと連絡先のデータをExperience Platformに取り込むためのデータフローの作成を行うために必要な手順の概要を説明します。
ベース接続の作成
ベース接続は、ソースとExperience Platform間の情報(ソースの認証資格情報、現在の接続状況、一意のベース接続 ID など)を保持します。 ベース接続 ID により、ソース内からファイルを参照および移動し、データタイプやフォーマットに関する情報を含む、取り込みたい特定の項目を識別することができます。
ベース接続 ID を作成するには、/connections
エンドポイントに対して POST リクエストを実行し、その際に SAP Commerce 認証資格情報をリクエスト本文の一部として指定します。
API 形式
POST /connections
リクエスト
次のリクエストは、SAP Commerce のベース接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "SAP Commerce base connection",
"description": "Authenticated base connection for SAP Commerce",
"connectionSpec": {
"id": "d8ee38de-7ae9-4058-9610-c79ce75f8e92",
"version": "1.0"
},
"auth": {
"specName": "OAuth2 Client Credential",
"params": {
"region": "{REGION}",
"clientId": "{CLIENT_ID}",
"clientSecret": "{CLIENT_SECRET}"
"tokenEndpoint": "{TOKEN_ENDPOINT}"
}
}
}'
name
description
connectionSpec.id
auth.specName
auth.params.region
url
内に存在し、値は eu10
または us10
に類似しています。 例えば、url
が https://subscriptionbilling.authentication.eu10.hana.ondemand.com
の場合、eu10
が必要になります。auth.params.clientId
clientId
の値。auth.params.clientSecret
clientSecret
の値。auth.params.tokenEndpoint
url
の値は、https://subscriptionbilling.authentication.eu10.hana.ondemand.com
と似ています。応答
リクエストが成功した場合は、一意の接続識別子(id
)を含む、新しく作成されたベース接続が返されます。この ID は、次の手順でソースのファイル構造と内容を調べるために必要です。
{
"id": "5f6d6022-3f64-400c-ba01-d4010de2d8ff",
"etag": "\"f8018de1-0000-0200-0000-6482d7210000\""
}
ソースを参照
ベース接続 ID を取得したら、ベース接続 ID をクエリパラメーターとして指定しながら /connections
エンドポイントに対してGET リクエストを実行することで、ソースデータの内容と構造を調べることができます。
API 形式
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
ソースのファイル構造とコンテンツを調べるために GET リクエストを実行する場合、次の表に示すクエリのパラメーターを含める必要があります。
{BASE_CONNECTION_ID}
objectType=rest
rest
に設定されています。{OBJECT}
json
になります。fileType=json
json
のみです。{PREVIEW}
{SOURCE_PARAMS}
Experience Platformに取り込むソースファイルのパラメーターを定義します。 {SOURCE_PARAMS}
で受け入れ可能な形式タイプを取得するには、文字列全体を base64 にエンコードする必要があります。
SAP Commerce は複数の API をサポートしています。 活用するオブジェクトのタイプに応じて、次のいずれかを渡します。
customers
contacts
SAP Commerce ソースは複数の API をサポートしています。 送信するリクエストを活用しているオブジェクトタイプに応じて、次のリクエストを行います。
SAP Commerce Customers API の場合、{SOURCE_PARAMS}
の値は {"object_type":"customers"}
として渡されます。 base64 でエンコードされた場合、次に示すように、eyJvYmplY3RfdHlwZSI6ImN1c3RvbWVycyJ9
と等しくなります。
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/f5421911-6f6c-41c7-aafa-5d9d2ce51535/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJvYmplY3RfdHlwZSI6ImN1c3RvbWVycyJ9' \
-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}'
応答が成功すると、次のような JSON 構造が返されます。
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"personalInfo": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
}
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"street": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"addressUUID": {
"type": "string"
},
"houseNumber": {
"type": "string"
},
"additionalAddressInfo": {
"type": "string"
},
"state": {
"type": "string"
},
"email": {
"type": "string"
}
}
}
},
"customerNumber": {
"type": "string"
},
"corporateInfo": {
"type": "object",
"properties": {}
},
"customReferences": {
"type": "array",
"items": {
"type": "object",
"properties": {}
}
},
"externalObjectReferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"externalSystemId": {
"type": "string"
},
"externalId": {
"type": "string"
},
"externalIdTypeCode": {
"type": "string"
}
}
}
},
"createdAt": {
"type": "string"
},
"customerType": {
"type": "string"
},
"markets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"salesArea": {
"type": "object",
"properties": {
"division": {
"type": "string"
},
"distributionChannel": {
"type": "string"
},
"salesOrganization": {
"type": "string"
}
}
},
"priceType": {
"type": "string"
},
"active": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"marketId": {
"type": "string"
}
}
}
},
"createdBy": {
"type": "string"
},
"changedBy": {
"type": "string"
},
"changedAt": {
"type": "string"
},
"defaultAddress": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"street": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"addressUUID": {
"type": "string"
},
"houseNumber": {
"type": "string"
},
"additionalAddressInfo": {
"type": "string"
},
"state": {
"type": "string"
},
"email": {
"type": "string"
}
}
}
}
},
"data": [
{
"personalInfo": {
"firstName": "Test 1",
"lastName": "User 1"
},
"addresses": [
{
"email": "user1@test.com",
"phone": "123456890",
"houseNumber": "123",
"city": "New Orleans",
"state": "LA",
"postalCode": "700089",
"country": "US",
"addressUUID": "ff871221-ab48-435c-b1f5-903db1c3cea2",
"isDefault": true
}
],
"customerNumber": "2863620303",
"externalObjectReferences": [
{
"externalSystemId": "t090000",
"externalId": "1324566",
"externalIdTypeCode": "201"
}
],
"createdAt": "2023-05-31T06:39:28.499Z",
"customerType": "INDIVIDUAL",
"markets": [
{
"marketId": "US",
"active": true,
"currency": "USD",
"country": "US",
"salesArea": {
"salesOrganization": "SE10",
"distributionChannel": "00",
"division": "00"
},
"priceType": "Net"
}
],
"createdBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"changedBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"changedAt": "2023-05-31T06:39:28.499Z",
"defaultAddress": {
"email": "user1@test.com",
"phone": "123456890",
"houseNumber": "123",
"city": "New Orleans",
"state": "LA",
"postalCode": "700089",
"country": "US",
"addressUUID": "ff871221-ab48-435c-b1f5-903db1c3cea2",
"isDefault": true
}
},
{
"personalInfo": {
"firstName": "Test 2",
"lastName": "User 2"
},
"addresses": [
{
"email": "user2@test.com",
"phone": "1234567899",
"houseNumber": "876",
"city": "New Orleans",
"state": "LA",
"postalCode": "700089",
"country": "US",
"addressUUID": "1cd039aa-5b86-4e46-8e37-9ef263332c6b",
"isDefault": true
}
],
"customerNumber": "6776445404",
"externalObjectReferences": [
{
"externalSystemId": "t089999",
"externalId": "1324565",
"externalIdTypeCode": "201"
}
],
"createdAt": "2023-05-31T06:39:28.142Z",
"customerType": "INDIVIDUAL",
"markets": [
{
"marketId": "US",
"active": true,
"currency": "USD",
"country": "US",
"salesArea": {
"salesOrganization": "SE10",
"distributionChannel": "00",
"division": "00"
},
"priceType": "Net"
}
],
"createdBy": "sb-subscription-billing!b123456|revenue-cloud!b12345",
"changedBy": "sb-subscription-billing!b123456|revenue-cloud!b12345",
"changedAt": "2023-05-31T06:39:28.142Z",
"defaultAddress": {
"email": "user2@test.com",
"phone": "1234567899",
"houseNumber": "876",
"city": "New Orleans",
"state": "LA",
"postalCode": "700089",
"country": "US",
"addressUUID": "1cd039aa-5b86-4e46-8e37-9ef263332c6b",
"isDefault": true
}
}
]
}
Contacts APISAP Commerce 場合、{SOURCE_PARAMS}
の値は {"object_type":"contacts"}
として渡されます。 base64 でエンコードされた場合、次に示すように、eyJvYmplY3RfdHlwZSI6ImNvbnRhY3RzIn0=
と等しくなります。
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/f5421911-6f6c-41c7-aafa-5d9d2ce51535/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJvYmplY3RfdHlwZSI6ImNvbnRhY3RzIn0=' \
-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}'
応答が成功すると、次のような JSON 構造が返されます。
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"externalObjectReferences": {
"type": "array",
"items": {
"type": "object",
"properties": {}
}
},
"personalInfo": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
}
},
"createdAt": {
"type": "string"
},
"createdBy": {
"type": "string"
},
"changedBy": {
"type": "string"
},
"contactNumber": {
"type": "string"
},
"changedAt": {
"type": "string"
}
}
},
"data": [
{
"personalInfo": {
"firstName": "Test 1",
"lastName": "User 1"
},
"createdAt": "2023-05-31T13:33:52.689Z",
"createdBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"changedBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"contactNumber": "4365374130",
"changedAt": "2023-05-31T13:33:52.689Z"
},
{
"personalInfo": {
"firstName": "Test 2",
"lastName": "User 2"
},
"createdAt": "2023-05-31T13:33:52.37Z",
"createdBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"changedBy": "sb-subscription-billing!b123456|revenue-cloud!b1234",
"contactNumber": "4075431868",
"changedAt": "2023-05-31T13:33:52.37Z"
}
]
}
ソース接続の作成
Flow Service API の /sourceConnections
エンドポイントに対して POST リクエストを実行することで、ソース接続を作成できます。 ソース接続は、接続 ID、ソースデータファイルへのパス、接続仕様 ID から構成されます。
API 形式
POST /sourceConnections
活用するオブジェクトのタイプに応じて、次のタブから選択します。
次のリクエストでは、SAP Commerce 顧客データのソース接続を作成しています。
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": "SAP Commerce Source Connection",
"description": "SAP Commerce Source Connection",
"baseConnectionId": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"connectionSpec": {
"id": "63d2b27b-69a5-45c9-a7fe-78148a25de3c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"object_type": "customers"
}
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
のみです。object_type
object_type
パラメーターを customers
に設定する必要があります。path
object_type
に選択した値と同じ値が設定されます。リクエストが成功した場合は、新たに作成されたソース接続の一意の ID(id
)が返されます。この ID は、後の手順でデータフローを作成する際に必要になります。
{
"id": "8f1fc72a-f562-4a1d-8597-85b5ca1b1cd3",
"etag": "\"ed05f1e1-0000-0200-0000-6368b8710000\""
}
次のリクエストでは、連絡先データのソース接続 SAP Commerce 作成されています。
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": "SAP Commerce Source Connection",
"description": "SAP Commerce Source Connection",
"baseConnectionId": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"connectionSpec": {
"id": "63d2b27b-69a5-45c9-a7fe-78148a25de3c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"object_type": "contacts"
}
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
のみです。object_type
object_type
パラメーターを contacts
に設定する必要があります。path
object_type
に選択した値と同じ値が設定されます。リクエストが成功した場合は、新たに作成されたソース接続の一意の ID(id
)が返されます。この ID は、後の手順でデータフローを作成する際に必要になります。
{
"id": "8f1fc72a-f562-4a1d-8597-85b5ca1b1cd3",
"etag": "\"ed05f1e1-0000-0200-0000-6368b8710000\""
}
ターゲット XDM スキーマの作成
ソースデータをExperience Platformで使用するには、必要に応じてターゲットスキーマを作成してソースデータを構造化する必要があります。 次に、ターゲットスキーマを使用して、ソースデータが含まれるExperience Platform データセットが作成されます。
Schema Registry API に POST リクエストを実行することで、ターゲット XDM スキーマを作成できます。
ターゲット XDM スキーマの作成手順について詳しくは、 API を使用したスキーマの作成に関するチュートリアルを参照してください。
ターゲットデータセットの作成
Catalog Service API に POST リクエストを実行し、その際にペイロード内でターゲットスキーマの ID を指定することで、ターゲットデータセットを作成できます。
ターゲットデータセットの作成手順について詳しくは、 API を使用したデータセットの作成に関するチュートリアルを参照してください。
ターゲット接続の作成
ターゲット接続は、取り込まれたデータが保存される宛先への接続を表します。 ターゲット接続を作成するには、データレイクに対応する固定接続仕様 ID を指定する必要があります。 この ID は c604ff05-7f1a-43c0-8e18-33bf874cb11c
です。
これで、一意の識別子、ターゲットスキーマ、ターゲットデータセット、およびデータレイクに対する接続仕様 ID が得られました。 これらの識別子を使用すると、受信ソースデータを格納するデータセットを指定する Flow Service API を使用して、ターゲット接続を作成することができます。
API 形式
POST /targetConnections
リクエスト
次のリクエストは、SAP Commerce のターゲット接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-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": "SAP Commerce Target Connection Generic Rest",
"description": "SAP Commerce Target Connection Generic Rest",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "parquet_xdm",
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/325fd5394ba421246b05c0a3c2cd5efeec2131058a63d473",
"version": "1.2"
}
},
"params": {
"dataSetId": "645923cd7aeeea1c06c5e92e"
}
}'
name
description
connectionSpec.id
6b137bf6-d2a0-48c8-914b-d50f4942eb85
です。data.format
params.dataSetId
応答
リクエストが成功した場合は、新しいターゲット接続の一意の ID(id
)が返されます。この ID は、後の手順で必要になります。
{
"id": "5b72a4b6-2fb8-4ca7-8ad8-4114a3063c5c",
"etag": "\"db00c6dc-0000-0200-0000-6482d8280000\""
}
マッピングの作成
ソースデータをターゲットデータセットに取り込むには、まず、ターゲットデータセットが準拠するターゲットスキーマにマッピングする必要があります。これを実現するには、リクエストペイロード内で定義されたデータマッピングを使用して、Data Prep API に対して POST リクエストを実行します。
API 形式
POST /conversion/mappingSets
次のリクエストは、顧客 API データのマッピング SAP Commerce 作成します
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-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 '{
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/b156e6f818f923e048199173c45e55e20fd2487f5eb03d22",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
},
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "customerNumber",
"destination": "_extconndev.customerNumber"
},
{
"sourceType": "ATTRIBUTE",
"source": "customerType",
"destination": "_extconndev.customerType"
},
{
"sourceType": "ATTRIBUTE",
"source": "changedAt",
"destination": "_extconndev.changedAt"
},
{
"sourceType": "ATTRIBUTE",
"source": "addresses[*].email",
"destination": "_extconndev.addresses[*].email"
},
{
"sourceType": "ATTRIBUTE",
"source": "addresses[*].city",
"destination": "_extconndev.addresses[*].city"
},
{
"sourceType": "ATTRIBUTE",
"source": "addresses[*].addressUUID",
"destination": "_extconndev.addresses[*].addressUUID"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectReferences[*].externalSystemId",
"destination": "_extconndev.externalObjectReferences[*].externalSystemId"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectReferences[*].externalId",
"destination": "_extconndev.externalObjectReferences[*].externalId"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectReferences[*].externalIdTypeCode",
"destination": "_extconndev.externalObjectReferences[*].externalIdTypeCode"
},
{
"sourceType": "ATTRIBUTE",
"source": "customReferences[*].id",
"destination": "_extconndev.customReferences[*].id"
},
{
"sourceType": "ATTRIBUTE",
"source": "customReferences[*].typeCode",
"destination": "_extconndev.customReferences[*].typeCode"
}
],
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/325fd5394ba421246b05c0a3c2cd5efeec2131058a63d473",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
}
}'
outputSchema.schemaRef.id
mappings.sourceType
mappings.source
mappings.destination
リクエストが成功した場合は、一意の ID(id
)を含む、新しく作成されたマッピングの詳細が返されます。この値は、後の手順でデータフローを作成する際に必要になります。
{
"id": "ddf0592bcc9d4ac391803f15f2429f87",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
次のリクエストは、SAP Commerce Contacts API データのマッピングを作成します
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-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 '{
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/b156e6f818f923e048199173c45e55e20fd2487f5eb03d22",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
},
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "contactNumber",
"destination": "_extconndev.contactNumber"
},
{
"sourceType": "ATTRIBUTE",
"source": "createdAt",
"destination": "_extconndev.createdAt"
},
{
"sourceType": "ATTRIBUTE",
"source": "changedAt",
"destination": "_extconndev.changedAt"
},
{
"sourceType": "ATTRIBUTE",
"source": "personalInfo.lastName",
"destination": "_extconndev.personalInfo.lastName"
},
{
"sourceType": "ATTRIBUTE",
"source": "personalInfo.firstName",
"destination": "_extconndev.personalInfo.firstName"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectRefereneces[*].externalSystemId",
"destination": "_extconndev.externalObjectReferences[*].externalSystemId"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectReferences[*].externalId",
"destination": "_extconndev.externalObjectReferences[*].externalId"
},
{
"sourceType": "ATTRIBUTE",
"source": "externalObjectReferences[*].externalIdTypeCode",
"destination": "_extconndev.externalObjectReferences[*].externalIdTypeCode"
}
],
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/extconndev/schemas/325fd5394ba421246b05c0a3c2cd5efeec2131058a63d473",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
}
}'
outputSchema.schemaRef.id
mappings.sourceType
mappings.source
mappings.destination
リクエストが成功した場合は、一意の ID(id
)を含む、新しく作成されたマッピングの詳細が返されます。この値は、後の手順でデータフローを作成する際に必要になります。
{
"id": "ddf0592bcc9d4ac391803f15f2429f87",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
フローの作成
SAP Commerce からExperience Platformにデータを取り込むための最後の手順は、データフローを作成することです。 現時点で、次の必要な値の準備ができています。
データフローは、ソースからデータをスケジュールおよび収集する役割を果たします。ペイロードに前述の値を提供しながら POST リクエストを実行することで、データフローを作成することができます。
API 形式
POST /flows
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-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": "SAP Commerce Connector Description Flow Generic Rest",
"description": "SAP Commerce Connector Description Flow Generic Rest",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"2ef2e831-f4f1-4363-a0f7-08b4ea347164"
],
"targetConnectionIds": [
"5b72a4b6-2fb8-4ca7-8ad8-4114a3063c5c"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "ddf0592bcc9d4ac391803f15f2429f87",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "once",
}
}'
name
description
flowSpec.id
6499120c-0b15-42dc-936e-847ea3c24d72
です。flowSpec.version
1.0
です。sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
です。scheduleParams.startTime
scheduleParams.frequency
scheduleParams.interval
応答
正常な応答は、新しく作成したデータフローの ID(id
)を返します。この ID を使用して、データフローを監視、更新または削除できます。
{
"id": "fcd16140-81b4-422a-8f9a-eaa92796c4f4",
"etag": "\"9200a171-0000-0200-0000-6368c1da0000\""
}
付録
次の節では、データフローの監視、更新、削除を行う手順について説明します。
データフローの監視
データフローが作成されると、それを通して取り込まれるデータを監視し、フローの実行状況、完了状況、エラーなどの情報を確認することができます。完全な API の例については、API を使用したソースデータフローのモニタリングに関するガイドを参照してください。
データフローの更新
データフローの ID を指定しながら、API の /flows
エンドポイントに対してPATCH リクエストを実行することで、名前や説明、実行スケジュールおよび関連するマッピングセットなど、データフローの詳細 Flow Service 更新します。 PATCH リクエストを行う場合は、データフローの一意の etag
を If-Match
ヘッダーで指定する必要があります。 完全な API の例については、API を使用したソースデータフローの更新に関するガイドを参照してください。
アカウントを更新
ベース接続 ID をクエリパラメーターとして指定して Flow Service API に対してPATCH リクエストを実行することで、ソースアカウントの名前、説明、資格情報を更新します。 PATCH リクエストを行う場合は、ソースアカウントの一意の etag
を If-Match
ヘッダーで指定する必要があります。 完全な API の例については、API を使用したソースアカウントの更新に関するガイドを参照してください。
データフローの削除
クエリパラメーターの一部として削除するデータフローの ID を指定したうえで Flow Service API に対してDELETE リクエストを実行することで、データフローを削除します。 完全な API の例については、API を使用したデータフローの削除に関するガイドを参照してください。
アカウントを削除
Flow Service API にDELETE リクエストを実行し、その際に削除するアカウントのベース接続 ID を指定することで、アカウントを削除します。 完全な API の例については、API を使用したソースアカウントの削除に関するガイドを参照してください。