ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →Epicor Kinetic Cmdlets の30日間無償トライアルをダウンロード
30日間の無償トライアルへ製品の詳細
Epicor Kinetic Cmdlets 相談したいEpicor Kinetic データにリアルタイム連携を実現するPowerShell Cmdlets。Cmdlets を使って、SQL Server と同感覚で多様なデータにリアルタイムアクセス。
CData
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
CData Cmdlets for EpicorKinetic を使えば、PowerShell からEpicor Kinetic データ データにリアルタイムで連携できます。データ同期などのタスクの連携にぴったりの製品です。 本記事では、PowerShell からCData Cmdlets for EpicorKinetic およびCData Cmdlets for MySQL を使って、同期スクリプトを作成して実行します。
まずは、PowerShell でEpicor Kinetic への接続を行います。レプリケーションは4つのステップがあります。
ERP インスタンスに接続するには、次の接続プロパティを指定してください。
また、オプションで次の接続プロパティを指定することもできます。
モジュールのインストール:
Install-Module EpicorKineticCmdlets
Epicor Kinetic への接続:
$epicorkinetic = Connect-EpicorKinetic -Service $Service -ERPInstance $ERPInstance -URL $URL -User $User -Password $Password
取得ターゲットのリソースの取得:
$data = Select-EpicorKinetic -Connection $epicorkinetic -Table "Customers"
Invoke-EpicorKinetic cmdlet を使って、SQL-92 クエリを使用することもできます:
$data = Invoke-EpicorKinetic -Connection $epicorkinetic -Query 'SELECT * FROM Customers WHERE CompanyName = @CompanyName' -Params @{'@CompanyName'='CompanyName'}
戻り値からカラム名のリストを保存します。
$columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name
カラム名を指定できるようにして、データをMySQL データベースにレプリケーションします。
モジュールのインストール:
Install-Module MySQLCmdlets
MySQL DB に、MySQL Server 名、ユーザー、パスワード、レプリケーション先のデータベース名を指定して、接続します:
$mysql = Connect-MySQL -User $User -Password $Password -Database $Database -Server $Server -Port $Port
Epicor Kinetic、保存された値、そしてAdd-MySQL Cmdlet を使って、MySQL にデータを1レコードずつ挿入します。この例では、MySQL 側のテーブルは、Epicor Kinetic のリソース(Customers)と同じテーブル名を持っている必要があります。
$data | % {
$row = $_
$values = @()
$columns | % {
$col = $_
$values += $row.$($col)
}
Add-MySQL -Connection $mysql -Table "Customers" -Columns $columns -Values $values
}
一度PowerShell でEpicor Kinetic とMySQL に接続したら、次からは1行のコマンドでレプリケーションを実施できます:
Select-EpicorKinetic -Connection $epicorkinetic -Table "Customers" | % {
$row = $_
$values = @()
$columns | % {
$col = $_
$values += $row.$($col)
}
Add-MySQL -Connection $mysql -Table "Customers" -Columns $columns -Values $values
}
別のPowerShell モジュールで、Epicor Kinetic を別のデータベースに複製する場合、Select-EpicorKinetic cmdlet のデータから、カラム、接続およびテーブルを除外しておきましょう。これらのデータはデータ移動のときだけ必要となるためです。
$columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name | ? {$_ -NotIn @('Columns','Connection','Table')}
これで、Epicor Kinetic データをMySQL に複製できました。分析、BI などでEpicor Kinetic データをMySQL から使うことができるようになります。