Home > トラブルシューティング > Dynamics AX 2012のトラブルシューティング

Dynamics AX 2012のトラブルシューティング

Q

複数の顧客を削除するために、Dynamics AX 2012コネクタでDeleteオペレーションを使用しても、1人の顧客だけが削除されます。

A

レコードがKeyField要素にマッピングされていると発生します。マッピング段階で、ReadUpdate、およびDeleteの各オペレーションを使用する時、1回の処理で複数のレコードのリクエストを送りたいのであれば、EntityKey要素を使用する必要があり、KeyField要素は使用しないでください。

1レコードだけの場合は、KeyFieldレコードまたはEntityKeyレコードのどちらかを使用することができます。

 

 

Q

RecID要素にマップスするためにDynamics AX 2012コネクタでUpdateオペレーションを使用すると、オペレーションは失敗します。

A

これを防止するには、RecIDの書式サイズを9から12に変更してください。

 

 

Q

“The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element” というエラーが発生します。

A

Dynamics AX 2012コネクタが15人を超える顧客(カスタマサービス)のためにFindまたはReadの各オペレーションを使用する時、Activity Log\C.Sys.ErrorDescription変数に以下のエラーが記録されます。

Error 1251: Dynamics AX call error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

System.ServiceModel.CommunicationException: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element. ---> System.ServiceModel.QuotaExceededException: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element

.NETフレームワーク3.5または4.0がインストールされているPC上でDynamics AX 2012コネクタを実行する時、<binding name>タグの配下のclient.configファイルに maxBufferSizemaxReceivedMessageSizeのパラメータが定義されています。このエラーを防止するには、maxBufferSizemaxReceivedMessageSizeの各パラメータにより高い値に設定する必要があります。

 

.NETフレームワーク4.5がインストールされているPC上でDynamics AX 2012コネクタを使用する場合は、client.configファイルにこれらのパラメータが無いため、手動で設定する必要があります。

注意:client.configファイルのパラメータへの変更は、即有効になります。Magic xpiのプロジェクトを再起動する必要はありません。

 

 

Q

“System.TimeoutException: This request operation sent to net.tcp://ax2012r2a:8201/DynamicsAx/Services/TestCustomer did not receive a reply within the configured timeout (00:05:00).  The time allotted to this operation may have been a portion of a longer timeout.” というエラーが発生します。

注意: net.tcp://ax2012r2a:8201/DynamicsAx/Services/TestCustomer はただの例です。この問題はどのようなWSDL URIを指定しても発生する可能性があります。

A

Deleteオペレーションが300を超えるレコードのために実行されると、System.TimeoutExceptionエラーが Activity Log\C.Sys.ErrorDescription 変数に記録されます。

System.TimeoutExceptionは、net.tcp://ax2012r2a:8201/DynamicsAx/Services/TestCustomerに送るリクエスト処理がタイムアウト(00:05:00)内で応答を受け取らなかったことを意味しています。この処理に割り当てられた時間が、より長いタイムアウトの一部であったかもしれません。

5から10分後、削除された顧客(または、削除しようとした他の要素)は、Dynamics AX サーバから削除されます。このエラーではロールバックは発生しません。

これは、client.configファイルに以下の値が含まれている時だけ発生します: closeTimeout="00:05:00"  openTimeout="00:05:00" receiveTimeout="00:05:00" sendTimeout="00:05:00".

このエラーの発生を防止するには、レコード数が増えた時に、receiveTimeoutパラメータを手動で増やす必要があります。