接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でAdobeCommerce Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module AdobeCommerceCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module AdobeCommerceCmdlets;
Connect-AdobeCommerce cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-AdobeCommerce -User 'admin' -Password 'admin' -Url 'https://myadobecommercehost'
AdobeCommerce への接続
接続するには、URL を例えばhttp://yoursitename/magento2 に設定します。オプションで、接続先のストアのStoreCode を指定します(2つ以上存在する場合)。
Authenticating to AdobeCommerce
To authenticate to AdobeCommerce server versions, you can use either the Basic or the Token AuthScheme.Basic
- AuthScheme Set this to Basic.
- User Set this to your user name in AdobeCommerce.
- Password Set this to your password in AdobeCommerce.
Access Token
- AuthScheme Set this to Token.
- AccessToken Set this to your AccessToken in AdobeCommerce.
To generate the AccessToken, Log in to the AdobeCommerce Stores > Settings > Configuration > Services > OAuth > Access Token.
データの取得
Select-AdobeCommerce cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-AdobeCommerce -Connection $conn -Table "Products" -Columns @("Price, Name") -Where "EntityId='238'"Invoke-AdobeCommerce cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-AdobeCommerce -Connection $conn -Table Products -Where "EntityId = '238'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myProductsData.csv -NoTypeInformation
Select-AdobeCommerce からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-AdobeCommerce -User 'admin' -Password 'admin' -Url 'https://myadobecommercehost' PS C:\> $row = Select-AdobeCommerce -Connection $conn -Table "Products" -Columns (Price, Name) -Where "EntityId = '238'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "Products", "Columns": [ ], "Price": "MyPrice", "Name": "MyName" }
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-AdobeCommerce -Connection $conn -Table Products -Where "EntityId = '238'" | Remove-AdobeCommerce
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをAdobeCommerce にロードします。
Import-Csv -Path C:\MyProductsUpdates.csv | %{ $record = Select-AdobeCommerce -Connection $conn -Table Products -Where ("EntityId = `'"+$_.EntityId+"`'") if($record){ Update-AdobeCommerce -Connection $conn -Table Products -Columns @("Price","Name") -Values @($_.Price, $_.Name) -Where "EntityId = `'$_.EntityId`'" }else{ Add-AdobeCommerce -Connection $conn -Table Products -Columns @("Price","Name") -Values @($_.Price, $_.Name) } }