製品をチェック

Epicor Kinetic Cmdlets の30日間無償トライアルをダウンロード

 ダウンロードはこちら

製品の詳細

Epicor Kinetic アイコン Epicor Kinetic Cmdlets 相談したい

Epicor Kinetic データにリアルタイム連携を実現するPowerShell Cmdlets。Cmdlets を使って、SQL Server と同感覚で多様なデータにリアルタイムアクセス。

Epicor Kinetic データをPowerShell でMySQL にレプリケーションする方法

PowerShell のシンプルなスクリプトで、Epicor Kinetic データ をMySQL データベースにレプリケーション(複製)する方法を紹介します。

古川えりか
コンテンツスペシャリスト

最終更新日:2023-09-26
epicorkinetic ロゴ

CData

powershell ロゴ画像
MySQL ロゴ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData Cmdlets for EpicorKinetic を使えば、PowerShell からEpicor Kinetic データ データにリアルタイムで連携できます。データ同期などのタスクの連携にぴったりの製品です。 本記事では、PowerShell からCData Cmdlets for EpicorKinetic およびCData Cmdlets for MySQL を使って、同期スクリプトを作成して実行します。

まずは、PowerShell でEpicor Kinetic への接続を行います。レプリケーションは4つのステップがあります。

ERP インスタンスに接続するには、次の接続プロパティを指定してください。

  • Url:ERP インスタンスをホストしているサーバーのURL。例えば、https://myserver.EpicorSaaS.com
  • ERPInstance:ERP インスタンス名。
  • User:アカウントのユーザー名。
  • Password:アカウントのパスワード。
  • Service:データを取得するサービス。例えば、BaqSvc。

また、オプションで次の接続プロパティを指定することもできます。

  • ApiKey:アカウント設定に応じて、いくつかのサービスへの接続に必要となるオプションのキー。
  • ApiVersion:デフォルトはv1。新しいEpicor API を使用するにはv2 に設定してください。
  • Company:ApiVersion をv2 に設定した場合は必須になります。

Epicor Kinetic データの取得

  1. モジュールのインストール:

    Install-Module EpicorKineticCmdlets
  2. Epicor Kinetic への接続:

    $epicorkinetic = Connect-EpicorKinetic -Service $Service -ERPInstance $ERPInstance -URL $URL -User $User -Password $Password
  3. 取得ターゲットのリソースの取得:

    $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'}
  4. 戻り値からカラム名のリストを保存します。

    $columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name

Epicor Kinetic データをMySQL データベースにレプリケーション

カラム名を指定できるようにして、データをMySQL データベースにレプリケーションします。

  1. モジュールのインストール:

    Install-Module MySQLCmdlets
  2. MySQL DB に、MySQL Server 名、ユーザー、パスワード、レプリケーション先のデータベース名を指定して、接続します:

    $mysql = Connect-MySQL -User $User -Password $Password -Database $Database -Server $Server -Port $Port
  3. 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 から使うことができるようになります。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。