В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

При интеграции Microsoft Dynamics CRM с Microsoft Dynamics NAV 2009 R2 с помощью соединителя для Microsoft Dynamics курсы валют обновляются неправильно

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:2597312
В данной статье относится к Microsoft Dynamics NAV для всех стран и всех языковых стандартов.
Проблема
Предположим, интеграции с Microsoft Dynamics NAV 2009 R2 Microsoft Dynamics CRM с помощью соединителя для пакета обновления 5 (функция) для Microsoft Dynamics. В некоторых случаях курсы валют обновляются неправильно в Microsoft Dynamics CRM.
При изменении курсов валют в Microsoft Dynamics NAV 2009 R2, появляется следующее сообщение об ошибке:
[Валютных курсов для валюты] произошла ошибка при обработке …
TransactionCurrency с Идентификатором = <guid>не существует.</guid>
В этом случае Microsoft Dynamics CRM синхронизируются только первая запись обмена валют. Эта ошибка возникает, когда система синхронизируется последующих записей, которые вводятся в таблице Валюта Курс с более поздней даты начала.
Причина
Эта проблема возникает, поскольку последний измененный курс обмена валюты, вместо текущего валютного курса для определенной валюты синхронизируется Microsoft Dynamics CRM с помощью соединителя для Microsoft Dynamics.
Решение

Сведения об исправлении

Исправление от корпорации Майкрософт доступна. Однако оно предназначено только для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление находится на стадии дополнительного тестирования. Поэтому если не представляет особой важности, эта проблема, рекомендуется дождаться следующего пакета обновления для Microsoft Dynamics NAV, 2009 г. или следующей версии Microsoft Dynamics NAV, содержащего это исправление.

Примечание В особых случаях в службу технической поддержки может быть отменена, если специалист службы технической поддержки Microsoft Dynamics и связанных продуктов специалистом, что обновление будет решением проблемы. Затраты на обычные службы поддержки будет применяться к дополнительные вопросы и проблемы, которые не соответствуют требованиям особым обновлением.

Сведения об установке

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации Это включает, но не ограничивается, подразумеваемые гарантии товарности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с языком программирования, рассчитаны и с помощью средств, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но они будут изменять примеры для реализации дополнительных возможностей или удовлетворения конкретных требований.

Примечание Перед установкой данного исправления необходимо проверьте регистрацию всех пользователей Microsoft Navision клиента выключение системы. Это включает в себя службы приложения Microsoft Navision (NAS) пользователям клиентских компьютеров. Должен быть только клиент пользователя, вошедшего в систему при реализации данного исправления.

Чтобы реализовать это исправление, необходимо иметь лицензию разработчика.

Рекомендуется назначить учетной записи пользователя в окне Логины Windows или в окне Логины БД «SUPER» идентификатор роли. Если учетная запись пользователя не может быть назначен идентификатор роли «SUPER», необходимо убедиться, что учетная запись пользователя имеет следующие разрешения:
  • Изменение разрешений для объекта, который можно будет изменить.
  • Разрешение Execute для Идентификатор объекта системы 5210 Объект, а также для Идентификатор объекта системы 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
      • Тип данных: Десятичное
    4. Добавить Курс валюты поле (46) в форме валют (5).
    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. Добавить Курс валюты поле на странице валюты (5), а затем укажите поле следующим образом:
      • Имя: CurrencyFactor
      • Заголовок: Курс валюты
      • Тип: Поле
      • Корректен: 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 функции в функции управления интеграции (5150), а затем укажите переменную следующим образом:
      • Имя: Валюта
      • Тип данных: Запись
      • Подтип: Валюта
    16. Измените код в UpdateParentIntegrationRecord функции в функции управления интеграции (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 функции в функции управления интеграции (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 функции в функции управления интеграции (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 функции в функции управления интеграции (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 функции в функции управления базами интеграции (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. Установка пакета Microsoft Dynamics 6 соединительной линии.
    ПримечаниеПосле установки разъем для Microsoft Dynamics функции пакета обновления 6 необходимо деактивировать «NAV Валюта Курсы для валюты» карты в разъем и импорта новой карты «NAV валюты для валюты», запустите программу настройки адаптера NAV и затем активировать новую схему.

Необходимые условия

Необходимо иметь Microsoft Dynamics NAV 2009 R2 для установки этого исправления.

Сведения об удалении

Установленное обновление удалить нельзя.
Статус
Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Относится к».
Примечание Это статья «БЫСТРАЯ ПУБЛИКАЦИЯ», создается непосредственно из организации технической поддержки корпорации Майкрософт. Сведения, содержащиеся в настоящем документе, предоставляется как-в ответ на новые проблемы. Из-за скорости в его доступность материалы могут включать опечаток и может быть изменен в любое время без предварительного уведомления. См. Условия использования для других вопросов.

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 2597312 — последний просмотр: 08/30/2011 02:09:00 — редакция: 3.0

Microsoft Dynamics NAV 2009

  • kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMtru
Отзывы и предложения
html>