接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でXeroWorkflowMax Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module XeroWorkflowMaxCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module XeroWorkflowMaxCmdlets;
Connect-XeroWorkflowMax cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn =
Connecting to Xero WorkflowMax
OAuth
Use the OAuth authentication standard to connect to Xero WorkflowMax API. You can authenticate with a user account. The 本製品 facilitates this as described below.
User Accounts
The user account flow requires the authenticating user to interact with Xero WorkflowMax via the browser.
Custom Credentials
Since connecting with embedded credentials is deprecated, you must register an app to obtain the OAuthClientId and OAuthClientSecret.
Creating a Custom OAuth App
See カスタムOAuth アプリの作成 for a procedure.
データの取得
Select-XeroWorkflowMax cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-XeroWorkflowMax -Connection $conn -Table "Clients" -Columns @("UUID, Name") -Where "Name='Bob'"
Invoke-XeroWorkflowMax cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-XeroWorkflowMax -Connection $conn -Table Clients -Where "Name = 'Bob'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myClientsData.csv -NoTypeInformation
Select-XeroWorkflowMax からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn =
PS C:\> $row = Select-XeroWorkflowMax -Connection $conn -Table "Clients" -Columns (UUID, Name) -Where "Name = 'Bob'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "Clients",
"Columns": [
],
"UUID": "MyUUID",
"Name": "MyName"
}
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-XeroWorkflowMax -Connection $conn -Table Clients -Where "Name = 'Bob'" | Remove-XeroWorkflowMax
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをXero WorkflowMax にロードします。
Import-Csv -Path C:\MyClientsUpdates.csv | %{
$record = Select-XeroWorkflowMax -Connection $conn -Table Clients -Where ("Id = `'"+$_.Id+"`'")
if($record){
Update-XeroWorkflowMax -Connection $conn -Table Clients -Columns @("UUID","Name") -Values @($_.UUID, $_.Name) -Where "Id = `'$_.Id`'"
}else{
Add-XeroWorkflowMax -Connection $conn -Table Clients -Columns @("UUID","Name") -Values @($_.UUID, $_.Name)
}
}