Cmdlets for Microsoft Dynamics NAV

Build 23.0.8839

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でDynamicsNAV Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module DynamicsNAVCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module DynamicsNAVCmdlets;

Connect-DynamicsNAV cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-DynamicsNAV -URL "http://myserver:7048" -ServerInstance "DYNAMICSNAV71" -Password "MyPassword" -User "MyServer\MyUser"

Microsoft Dynamics NAV への接続

本製品 をMicrosoft Dynamics NAV に接続する前に、サーバーでOData サービスを有効にしておく必要があります。OData サービスを有効にすると、本製品 はサーバーで発行されるあらゆるサービスにクエリできるようになります。

また、Url を有効なMicrosoft Dynamics NAV サーバー組織のルート(例:http://MyServer:7048)およびServerInstance(例:DynamicsNAV71)に設定します。 もしサーバーにService Default Company がない場合は、Company(例:'CRONUS Canada, Inc.')も設定する必要があります。

マルチテナントインストールでは、Tenant にテナントId(例:'Cronus1')を指定します。

Microsoft Dynamics NAV への認証

認証するには、User およびPassword プロパティを設定して、Microsoft Dynamics NAV ログインクレデンシャルまたはWindows ユーザークレデンシャルを有効にします。 AuthScheme で適切な認証メソッドを選択します。

認証スキーム

The available authentication schemes are configured in IIS where Dynamics NAV is hosted.In IIS you can select to enable or disable Digest, Basic, Windows, or Anonymous authentication.Please consult with your Dynamics NAV admin to determine which authentication scheme is appropriate for you.AuthScheme を以下のいずれかに設定します。

  • NEGOTIATE (default) - It is part of the Windows authentication, also known as Kerberos.
  • BASIC - Basic authentication.
  • DIGEST - Digest authentication.
  • NTLM - Part of the Windows authentication.
  • NONE - Anonymous authentication.

データの取得

Select-DynamicsNAV cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-DynamicsNAV -Connection $conn -Table "Customer" -Columns @("No, Contact") -Where "Name='CData, Inc.'"
Invoke-DynamicsNAV cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-DynamicsNAV -Connection $conn -Table Customer -Where "Name <> 'CData, Inc.'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCustomerData.csv -NoTypeInformation

Select-DynamicsNAV からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-DynamicsNAV -URL "http://myserver:7048" -ServerInstance "DYNAMICSNAV71" -Password "MyPassword" -User "MyServer\MyUser"
PS C:\> $row = Select-DynamicsNAV -Connection $conn -Table "Customer" -Columns (No, Contact) -Where "Name <> 'CData, Inc.'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Customer",
  "Columns":  [

  ],
  "No":  "MyNo",
  "Contact":  "MyContact"
} 

データの削除

以下は、抽出条件に合うあらゆるレコードを削除します。

Select-DynamicsNAV -Connection $conn -Table Customer -Where "Name = 'CData, Inc.'" | Remove-DynamicsNAV

データの変更

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをMicrosoft Dynamics NAV にロードします。

Import-Csv -Path C:\MyCustomerUpdates.csv | %{
  $record = Select-DynamicsNAV -Connection $conn -Table Customer -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-DynamicsNAV -Connection $conn -Table Customer -Columns @("No","Contact") -Values @($_.No, $_.Contact) -Where "Id  = `'$_.Id`'"
  }else{
    Add-DynamicsNAV -Connection $conn -Table Customer -Columns @("No","Contact") -Values @($_.No, $_.Contact)
  }
}

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839