Microsoft Dynamics crm için Microsoft Dynamics Bağlayıcısı kullanarak Microsoft Dynamics nav 2009 R2 ile tümleştirme, döviz kurları yanlış güncelleştirildi

Makale çevirileri Makale çevirileri
Makale numarası: 2597312 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale Microsoft Dynamics nav için tüm ülkeler ve tüm dil yerel ayarları için geçerlidir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft Dynamics Feature Pack 5 için bağlayıcı kullanarak, Microsoft Dynamics nav 2009 R2 ile Microsoft Dynamics crm tümleştirmek varsayalım. Belirli senaryolarda, döviz kurları, Microsoft Dynamics CRM'de yanlış güncelleştirilir.
Microsoft Dynamics nav 2009 R2 döviz kurları güncelleştirdiğinizde, aşağıdaki hata iletisini alırsınız:
[Döviz kuruna] … işlerken bir hatayla karşılaştı
TransactionCurrency ID = <guid>yok.</guid>
Bu durumda, Microsoft Dynamics crm için döviz kurları ilk kaydının eşitlenir. Sistem daha sonra başlangıç tarihleri ile döviz kuru tablosuna girilen sonraki kayıtları eşitlerken, bu hata oluşur.

Neden

Bu sorun Microsoft Dynamics Bağlayıcısı kullanarak Microsoft Dynamics CRM'ye son değiştirilen döviz kuru, Cari döviz kuru için belirli bir para yerine eşitlenir nedeniyle oluşur.

Çözüm

Düzeltme bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak, yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Bunu yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltme, ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi olarak etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki Microsoft Dynamics nav sürümü veya Microsoft Dynamics nav 2009 sonraki hizmet paketini beklemenizi öneririz.

Not Özel durumlarda, normalde Teknik Destek Uzmanı, Microsoft Dynamics ve ilgili ürünlere yönelik iptal edilebilir destek telefonlarından belirler belirli bir güncelleştirmenin sorununuzu çözümleyeceğini. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla zımni veya açık garanti olmadan sağlar. İçerir ancak, satılabilirlik veya belirli bir amaca uygunluk zımni garantileri sınırlı değildir. Bu makale, gösterilen programlama dilini ve oluşturmak ve yordamlar hata ayıklamak için kullanılan araçlar ile bildiğinizi varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak işlevsellik sağlamak veya yordamlar, belirli gereksinimlerinizi karşılayacak şekilde geliştirmek amacıyla bu örnekleri değiştirmezler.

Not Bu düzeltmeyi yüklemeden önce tüm Microsoft Navision istemcisi kullanıcılar sistem kaydedildiğini doğrulayın. Bu Navision uygulama Hizmetleri (nas) içerir istemci kullanıcıları. Bu düzeltmeyi uygulamak için oturum açmış kullanıcının yalnızca istemci olmalıdır.

Bu düzeltmeyi uygulamak için geliştirici lisansı olması gerekir.

Kullanıcı hesabının Windows oturumu açma penceresini veya veritabanı oturumu açma penceresi "Süper" rol kimliği atanması önerilir Kullanıcı hesabı "Süper" rol kimliği atanamıyorsa kullanıcı hesabı aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:
  • Değişiklik yapma izni, değiştirme nesne için.
  • Execute izni Sistem nesne kimliği 5210 Nesne ve Sistem nesne kimliği 9015 nesne.


Not Veri onarımı gerçekleştirmek yoksa veri depolarını haklarınız gerekmez.

Kod değişiklikleri

Not Önce uyguladığınız her zaman kodu test denetimli bir ortamda üretim bilgisayarlarınıza düzeltir.
Bu sorunu gidermek için aşağıdaki adımları izleyin:
  1. Aşağıdaki kod değişiklikleri Microsoft Dynamics nav 2009 R2 uygulanır:
    1. Yeni oluşturma GetCurrencyFactor Döviz kuru tablosunu (330) aşağıdaki işlevleri vardır:
      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. Yeni oluşturma SetCurrencyFactor Döviz kuru tablosunu (330) aşağıdaki işlevleri vardır:
      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. Para birimleri formunda (5) yeni bir genel de?i?ken ekleyin ve sonra değişkenini aşağıdaki gibi belirtin:
      • Adı: CurrencyFactor
      • Veri türü: Ondalık
    4. Ekleme Para birimi çarpanı alanında (46) para formu (5).
    5. Yeni bir yerel değişkende ekleme Para birimi çarpanı-'onValidate ' (5) para formunda tetiklemek ve değişken aşağıdaki gibi belirtin:
      • Adı: CurrencyExchangeRate
      • Veri türü: Kayıt
      • Alt tür: Döviz kuru
    6. Aşağıdaki kodu ekleyin. Para birimi çarpanı-'onValidate ' para birimleri formunda (5) tetikler:
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. Yeni bir yerel değişkende ekleme OnAfterGetRecord (5) para formunda tetiklemek ve değişken aşağıdaki gibi belirtin:
      • Adı: CurrencyExchangeRate
      • Veri türü: Kayıt
      • Alt tür: Döviz kuru
    8. Aşağıdaki kodu ekleyin. OnAfterGetRecord para birimleri formunda (5) tetikler:
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. Para sayfa (5) yeni bir genel de?i?ken ekleyin ve sonra değişken aşağıdaki gibi belirtin:
      • Adı: CurrencyFactor
      • Veri türü: Ondalık
    10. Ekleme Para birimi çarpanı alan para sayfa (5) ve alanı aşağıdaki gibi belirtin:
      • Adı: CurrencyFactor
      • Resim yazısı: Para birimi çarpanı
      • Türü: Alan
      • SourceExpr: CurrencyFactor
    11. Yeni bir yerel değişkende ekleme Para birimi çarpanı-'onValidate ' Para sayfa (5) tetikler ve değişken aşağıdaki gibi belirtin:
      • Adı: CurrencyExchangeRate
      • Veri türü: Kayıt
      • Alt tür: Döviz kuru
    12. Aşağıdaki kodu ekleyin. Para birimi çarpanı-'onValidate ' Para sayfa (5) tetikler:
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. Yeni bir yerel değişkende ekleme OnAfterGetRecord Para sayfa (5) tetikler ve değişken aşağıdaki gibi belirtin:
      • Adı: CurrencyExchangeRate
      • Veri türü: Kayıt
      • Alt tür: Döviz kuru
    14. Aşağıdaki kodu ekleyin. OnAfterGetRecord Para sayfa (5) tetikler:
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. Yeni bir yerel değişkende ekleme UpdateParentIntegrationRecord Tümleştirme yönetim kod (5150) işlev ve değişken aşağıdaki gibi belirtin:
      • Adı: Para birimi
      • Veri türü: Kayıt
      • Alt tür: Para birimi
    16. Kod değiştirme UpdateParentIntegrationRecord Tümleştirme yönetim kod (5150) aşağıdaki işlevleri vardır:
      Varolan kodu
      ...
        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;
      Kod değiştirme
      ...
       
        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. Kod değiştirme EnableConnector Tümleştirme yönetim kod (5150) aşağıdaki işlevleri vardır:
      Varolan kodu
      ...
      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");
      ...
      Kod değiştirme
      ...
      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. Kod değiştirme SetupIntegrationTable Tümleştirme yönetim kod (5150) aşağıdaki işlevleri vardır:
      Varolan kodu
      ...
      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");
      ...
      Kod değiştirme
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. Kod değiştirme IsIntergrationRecord Tümleştirme yönetim kod (5150) aşağıdaki işlevleri vardır:
      Varolan kodu
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      Kod değiştirme
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. Kod değiştirme IsIntegrationRecordChild Tümleştirme yönetim kod (5150) aşağıdaki işlevleri vardır:
      Varolan kodu
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      Kod değiştirme
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. Microsoft Dynamics Feature Pack 6 bağlayıcısı yükleyin.
    NotBağlayıcı Microsoft Dynamics Feature Pack 6'yı yükledikten sonra bağlayıcı "nav para birimi döviz kurları için para" haritada devre dışı ve yeni "nav para birimleri için para" eşleme almak, nav bağdaştırıcı yapılandırması'nı yeniden çalıştırın ve gerekir yeni Eşleme'ı etkinleştirin.

Önkoşullar

Bu düzeltmeyi uygulamak için Microsoft Dynamics nav 2009 R2 olmalıdır.

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Not Doğrudan Microsoft Destek organizasyon içinde oluşturulan "Hızlı yayımla" makale budur. Burada yer alan bilgiler olduğu gibi sağlanmıştır-yanıt olarak yeni konular olur. Malzemeler kullanılabilir hale getirme, hız, yazım hataları içerebilir ve verilmeksizin herhangi bir zamanda düzeltilebilir. Bkz. Kullanım koşulları diğer konuları.

Özellikler

Makale numarası: 2597312 - Last Review: 30 Ağustos 2011 Salı - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Dynamics NAV 2009
Anahtar Kelimeler: 
kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:2597312

Geri Bildirim Ver

 

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