Microsoft Dynamics のコネクタを使用して、Microsoft Dynamics NAV 2009 R2 で Microsoft Dynamics CRM を統合すると通貨の為替レートが正しく更新されません。

文書翻訳 文書翻訳
文書番号: 2597312
この資料ですべての国とすべての言語ロケールの Microsoft Dynamics NAV を適用します。
すべて展開する | すべて折りたたむ

目次

現象

Microsoft Dynamics の機能パック 5 のコネクタを使用して、Microsoft Dynamics CRM Microsoft Dynamics NAV 2009 R2 と統合することを想定しています。特定のシナリオでは、通貨の為替レートが正しく Microsoft Dynamics CRM に更新されません。
Microsoft Dynamics NAV 2009 R2 での通貨の為替レートを更新すると、次のエラー メッセージが表示されます。
[通貨の為替レートの通貨]… 処理中にエラーが発生しました
TransactionCurrency id =<guid>がありません</guid>。
このような状況では、最初のレコードの通貨の為替レートは Microsoft Dynamics CRM に同期化されます。システム通貨為替レート テーブルに後の開始日を入力した後のレコードを同期するとき、このエラーが発生します。

原因

この問題は、Microsoft Dynamics のコネクタを使用して、現在の為替レートは、特定の通貨ではなく、最後の変更された通貨為替レートが Microsoft Dynamics CRM に同期されていないために発生します。

解決方法

修正プログラムの情報

サポートされている修正プログラムがマイクロソフトから入手可能になりました。ただし、これはこの資料に記載されている問題を修正するものです。この問題が発生しているシステムにのみ適用されます。この修正プログラムは、さらにテストを受ける可能性があります。したがって、この問題で深刻な影響をされていない場合は、次の Microsoft Dynamics NAV 2009 service pack またはこの修正プログラムを含む次の Microsoft Dynamics NAV のバージョンのリリースを待つことをお勧めします。

メモ 場合、まれに呼び出し場合、テクニカル サポート担当者 Microsoft Dynamics および関連製品をキャンセルする可能性がありますサポート通常発生する料金は、特定の更新プログラムで問題が解決されると. します。追加の質問および問題の特定のアップデートの対象とならない問題、通常のサポート料金が適用されます。

インストール情報

Microsoft プログラミング例としては、明示または黙示の保証もないだけを提供します。これを含むが、商品性や特定目的への適合性の黙示的な保証に制限はありません。この資料は、例示されているプログラミング言語やを作成したりプロシージャをデバッグするために使用されるツールに精通するいると仮定します。マイクロソフト サポート エンジニアに、特定のプロシージャの機能について説明する役立ちますが追加機能を提供またはお客様固有の要件を満たすようにプロシージャを作成するのには、次の例は変更されません。

メモ この修正プログラムをインストールする前に、Microsoft Navision クライアントのすべてのユーザーが、システムの電源を記録することを確認してください。これに含まれます Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザー。この修正プログラムを実装するときにログオンしている専用クライアント ユーザーを必要があります。

この修正プログラムを実装するのには、開発者ライセンスする必要があります。

ユーザー アカウントまたはデータベース ログイン ウィンドウで Windows ログイン ウィンドウに、「スーパー」ロール id を指定することをお勧め「スーパー」ロール ID、ユーザー アカウントを割り当てることはできない場合は、ユーザー アカウントに次のアクセス許可があることを確認してください。
  • 変更アクセス許可を変更します。
  • 実行権限は、 システム オブジェクトの ID 5210 オブジェクトとは、 システム オブジェクトの ID 9015 オブジェクトです。


メモ データの修復を実行する必要がある場合を除いて、データ ストアへの権利を持っている必要はありません。

コードの変更

メモ 常に、適用する前にテスト コードは、制御された環境で、運用コンピューターに修正プログラムを修正します。
この問題を解決するには、次の手順を実行します。
  1. Microsoft Dynamics NAV 2009 R2 の次のコード変更が適用されます。
    1. 新規作成します。 GetCurrencyFactor (330) の通貨の為替レート表には次のとおり機能します。
      PROCEDURE GetCurrentCurrencyFactor@14(CurrencyCode@1000 : Code[10]) : Decimal;
          BEGIN
            SETRANGE("Currency Code",CurrencyCode);
            IF FINDLAST THEN
              EXIT("Exchange Rate Amount" / "Relational Exch. Rate Amount")
          END;
    2. 新規作成します。 SetCurrencyFactor (330) の通貨の為替レート表には次のとおり機能します。
      PROCEDURE SetCurrentCurrencyFactor@15(CurrencyCode@1000 : Code[10];CurrencyFactor@1001 : Decimal);
          VAR
            RateForTodayExists@1002 : Boolean;
          BEGIN
            "Currency Code" := CurrencyCode;
            TESTFIELD("Currency Code");
            RateForTodayExists := GET(CurrencyCode,TODAY);
            "Exchange Rate Amount" := 1;
            "Relational Exch. Rate Amount" := 1 / CurrencyFactor;
            "Adjustment Exch. Rate Amount" := "Exchange Rate Amount";
            "Relational Adjmt Exch Rate Amt" := "Relational Exch. Rate Amount";
           IF RateForTodayExists THEN BEGIN
             "Relational Currency Code" := '';
             MODIFY;
           END ELSE BEGIN
             "Starting Date" := TODAY;
             INSERT;
           END;
          END;
    3. 通貨形式 (5) は、新しいグローバル変数を追加し、次の変数を指定します。
      • 名前: CurrencyFactor
      • データ型: 10 進数
    4. 追加、 通貨の要因 通貨の形式 (5) のフィールド (46) です。
    5. 新しいローカル変数を追加、 通貨の要因の OnValidate 通貨形式で (5) および変数を次のように指定します。
      • 名前: CurrencyExchangeRate
      • データ型: レコード
      • サブタイプ: 通貨の為替レート
    6. 次のコードを追加、 通貨の要因の OnValidate 通貨の形式で (5) にトリガーされます。
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. 新しいローカル変数を追加、 OnAfterGetRecord 通貨形式で (5) および変数を次のように指定します。
      • 名前: CurrencyExchangeRate
      • データ型: レコード
      • サブタイプ: 通貨の為替レート
    8. 次のコードを追加、 OnAfterGetRecord 通貨の形式で (5) にトリガーされます。
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. (5) の [通貨] ページで、新しいグローバル変数を追加し、次の変数を指定します。
      • 名前: CurrencyFactor
      • データ型: 10 進数
    10. 追加、 通貨の要因 通貨ページ (5) のフィールドし、次のフィールドを指定します。
      • 名前: CurrencyFactor
      • キャプション: 通貨の要因
      • 種類: フィールド
      • SourceExpr: CurrencyFactor
    11. 新しいローカル変数を追加、 通貨の要因の OnValidate 通貨でページ (5) および変数を次のように指定します。
      • 名前: CurrencyExchangeRate
      • データ型: レコード
      • サブタイプ: 通貨の為替レート
    12. 次のコードを追加、 通貨の要因の OnValidate (5) の [通貨] ページで開始します。
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. 新しいローカル変数を追加、 OnAfterGetRecord 通貨でページ (5) および変数を次のように指定します。
      • 名前: CurrencyExchangeRate
      • データ型: レコード
      • サブタイプ: 通貨の為替レート
    14. 次のコードを追加、 OnAfterGetRecord (5) の [通貨] ページで開始します。
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. 新しいローカル変数を追加、 UpdateParentIntegrationRecord 統合管理の codeunit で (5150)、機能し、変数を次のように指定します。
      • 名前: 通貨
      • データ型: レコード
      • サブタイプ: 通貨
    16. コードの変更、 UpdateParentIntegrationRecord 統合管理の codeunit で (5150) は次のとおり機能します。
      既存のコード
      ...
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      END;
      置換コード
      ...
       
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      
      // Add the following lines.
        DATABASE::"Currency Exchange Rate":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Currency Code"
            IF Currency.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Currency);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      // End of the lines.
      
      END;
    17. コードの変更、 EnableConnector 統合管理の codeunit で (5150) は次のとおり機能します。
      既存のコード
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      
      //Delete the following line.
      SetupWebServicePages(FORM::"Currency Exchange Rates",DATABASE::"Currency Exchange Rate");
      
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
      置換コード
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
    18. コードの変更、 SetupIntegrationTable 統合管理の codeunit で (5150) は次のとおり機能します。
      既存のコード
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      
      //Delete the following line.
      InitializeIntegrationRecords(DATABASE::"Currency Exchange Rate");
      
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
      置換コード
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. コードの変更、 IsIntergrationRecord 統合管理の codeunit で (5150) は次のとおり機能します。
      既存のコード
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      置換コード
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. コードの変更、 IsIntegrationRecordChild 統合管理の codeunit で (5150) は次のとおり機能します。
      既存のコード
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      置換コード
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. 6、Microsoft Dynamics の Feature Pack は、コネクタをインストールします。
    メモMicrosoft Dynamics 機能パック 6 は、コネクタをインストールした後、コネクタ内にある「NAV の通貨の為替レートに通貨」マップを非アクティブ化し新しい「ナビゲーションの通貨を通貨」マップをインポート、NAV のアダプターの構成を再実行してくださいして、新しいマップを有効にします。

前提条件

この修正プログラムを適用するインストールされている Microsoft Dynamics NAV 2009 R2 が必要です。

プログラムのアンインストール情報

この修正プログラムを削除することはできません。

状況

Microsoft は、これは「対象」に記載されているマイクロソフト製品の問題であること確認しています。
メモ これから直接 Microsoft サポート組織内での作成は、「高速公開」記事です。ここに含まれる情報は現状の新たな問題への応答であります。使用できるようにする、速度の結果として材料誤植を含めることができ、いつでも予告なく改訂する場合があります。参照してください。 使用条件 その他の問題をします。

プロパティ

文書番号: 2597312 - 最終更新日: 2011年8月30日 - リビジョン: 3.0
キーワード:?
kberrmsg kbqfe kbmbsmigrate kbmbscodefix kbmt kbsurveynew KB2597312 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:2597312
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com