接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でAdobeTarget Cmdlets を使用する例を示します。
Adobe Target への接続
Adobe Target に接続するには、Tenant プロパティと以下に示す必要な認証パラメータを指定する必要があります。他の接続プロパティは処理の挙動に影響を与えますが、 接続機能には影響しないことに注意してください。
Tenant 名を決定するには:
- Adobe Experience にログインします。URL は次のようなものになります:"https://experience.adobe.com/#/@mycompanyname/preferences/general-section"。
- "/#/@" の後ろの値を抽出します。この例では、"mycompanyname" です。
- Tenant 接続プロパティをこの値に設定します。
Adobe Target への認証
Adobe Target はOAuth 認証標準を利用しています。OAuth(Server-to-Server)統合を使用して認証できます。
ユーザーアカウント(OAuth)
すべてのユーザーアカウントフローでAuthScheme をOAuthClient に設定する必要があります。
Note:OAuth 経由のAdobe 認証では、2週間ごとにトークンを更新する必要があります。
すべてのアプリケーション
CData は、OAuth 認証を簡略化する埋め込みOAuth アプリケーションを提供します。代わりに、カスタムOAuth アプリケーションを作成することも可能です。詳しくはカスタムOAuth アプリの作成 を参照してください。OAuth アクセストークンの取得
接続するには次のプロパティを設定します。
- OAuthClientId:アプリの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリの登録時に割り当てられたクライアントシークレットに設定。
- CallbackURL:アプリの登録時に定義されたリダイレクトURI に設定。例: https://localhost:3333
以上の設定により、プロバイダーはAdobe Target からアクセストークンを取得し、それを使ってデータをリクエストします。 OAuth 値はOAuthSettingsLocation で指定された場所に保存され、接続間で永続化されるようにします。
接続オブジェクトの作成
Connect-AdobeTarget cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-AdobeTarget -OAuthClientId 'myOauthClientId' -OauthClientSecret 'myOAuthClientSecret' -CallbackURL 'myCallbackURL'
データの取得
Select-AdobeTarget cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-AdobeTarget -Connection $conn -Table "Activities" -Columns @("Id, Name") -Where "Name='TestActivity1'"
Invoke-AdobeTarget cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-AdobeTarget -Connection $conn -Table Activities -Where "Name = 'TestActivity1'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myActivitiesData.csv -NoTypeInformation
Select-AdobeTarget からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-AdobeTarget -OAuthClientId 'myOauthClientId' -OauthClientSecret 'myOAuthClientSecret' -CallbackURL 'myCallbackURL'
PS C:\> $row = Select-AdobeTarget -Connection $conn -Table "Activities" -Columns (Id, Name) -Where "Name = 'TestActivity1'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "Activities",
"Columns": [
],
"Id": "MyId",
"Name": "MyName"
}
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-AdobeTarget -Connection $conn -Table Activities -Where "Name = 'TestActivity1'" | Remove-AdobeTarget
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをAdobe Target にロードします。
Import-Csv -Path C:\MyActivitiesUpdates.csv | %{
$record = Select-AdobeTarget -Connection $conn -Table Activities -Where ("Id = `'"+$_.Id+"`'")
if($record){
Update-AdobeTarget -Connection $conn -Table Activities -Columns @("Id","Name") -Values @($_.Id, $_.Name) -Where "Id = `'$_.Id`'"
}else{
Add-AdobeTarget -Connection $conn -Table Activities -Columns @("Id","Name") -Values @($_.Id, $_.Name)
}
}