Устранение распространенных проблем с несколькими таблицами
Эта статья помогает устранять и устранять распространенные проблемы в нескольких таблицах, таких как возможность, цитата, заказ или счет в Microsoft Dynamics 365 Sales.
Проблема 1. В контекстной форме может отображаться в селекторе формы
Форма контекста используется для отображения и настройки боковой панели в диспетчере сделки, а также в новом интерфейсе для контактов, возможностей, потенциальных клиентов и учетных записей.
Причина
Если в вашей среде есть какая-либо настройка, которая задает значение formActivationState для этих таблиц, в раскрывающемся списке селектора формы отображается форма "Контекст" и позволяет пользователям выбирать эту форму для просмотра сведений о записи.
Решение
Если внешний вид формы контекста приводит к путанице, можно отключить форму контекста, как показано на следующем снимке экрана.
Проблема 2. Ошибка или непредвиденное поведение при работе с таблицами
Симптомы
При работе с таблицами (например, возможностями, цитатой, заказом, счетом, предложением и заказом продукта), вы наблюдаете непредвиденное поведение или ошибку в Dynamics 365 for Sales. Ниже приведены некоторые ошибки, которые могут возникнуть при работе с возможностями, и они могут применяться к другим таблицам:
- "Расширенная сумма неправильная после изменения кавычки"- эта ошибка может возникнуть из-за пользовательского подключаемого модуля.
- "Ошибка при сохранении возможности" — эта ошибка может возникать из-за пользовательской версии JavaScript.
- "Ошибка при закрытии" — эта ошибка может возникать из-за пользовательского рабочего процесса.
Причина
Эти проблемы могут возникнуть из-за неправильной настройки приложения.
Решение
Необходимо проверить неправильные настройки и устранить их. Выполните следующие методы проверки, чтобы определить, какая настройка вызывает проблему, а затем устранить:
- Отключение пользовательского подключаемого модуля
- Отключение пользовательского JavaScript
- Отключение пользовательского процесса рабочего процесса
Отключение пользовательского подключаемого модуля
Перейдите в раздел Параметры>Настройки>Настройка системы.
Выберите действия по обработке сообщений пакета SDK.
Отображается список доступных шагов обработки сообщений пакета SDK.
Щелкните значок фильтра, выберите столбец Основной код типа объекта (фильтр сообщений sdk) и выберите таблицу, для которой возникает ошибка.
Выберите шаги обработки сообщений ПАКЕТА SDK, поступающие из решений, принадлежащих вам.
Примечание.
Чтобы просмотреть действия по обработке сообщений пользовательского пакета SDK, сделайте следующее:
Перейдите в раздел "Решения параметров>", а затем откройте решение.
Выберите шаги обработки сообщений ПАКЕТА SDK. Убедитесь, что значения выбраны следующим образом: тип компонента для шага обработки сообщений ПАКЕТА SDK и просмотр для всех.
Выберите Деактивировать.
Опубликуйте настройки.
Проверьте проблему и если она не возникает, проблема связана с пользовательскими шагами обработки сообщений ПАКЕТА SDK. Устраните проблему.
Примечание.
Если возникла проблема, активируйте шаги обработки сообщений ПАКЕТА SDK, которые вы деактивировали сейчас, и попробуйте отключить пользовательский javaScript или отключить пользовательский процесс рабочего процесса.
Отключение пользовательского JavaScript
Откройте редактор формы таблицы, в которой возникает ошибка. В этом примере мы выбираем таблицу в качестве возможностей и форму решения по умолчанию.
Выберите "Свойства формы" в редакторе форм.
Откроется диалоговое окно "Свойства формы".
На вкладке "События " выберите элемент управления OnLoad из раскрывающегося списка "События ".
Выберите пользовательские файлы JavaScript , поступающие из решения, принадлежащего вам.
Примечание.
Чтобы просмотреть настраиваемый JavaScript, выполните следующие действия.
- Перейдите в раздел "Решения параметров>", а затем откройте решение.
- Выберите WebResources. Убедитесь, что значения выбраны в качестве типа компонента в WebResources и View to All.
- Щелкните значок фильтра , чтобы включить параметры фильтра для столбцов. Выберите тип и задайте фильтр в качестве скрипта (JScript).
Выберите Изменить. В этом примере мы выбрали настраиваемый файл JavaScript, eg_opportunity для редактирования.
Снимите флажок "Включить" и нажмите кнопку "ОК".
Опубликуйте настройки.
Проверьте проблему и если она не возникает, проблема связана с пользовательским JavaScript. Устраните проблему.
Примечание.
Если возникла проблема, включите JavaScript, который вы отключили сейчас, и попробуйте отключить настраиваемый подключаемый модуль или деактивировать пользовательский процесс рабочего процесса.
Отключение пользовательского процесса рабочего процесса
Перейдите в раздел Параметры>Настройки>Настройка системы.
Выберите "Процессы". К этим процессам относятся рабочий процесс, поток бизнес-процессов и бизнес-правило.
Отображается список доступных процессов.
Щелкните значок фильтра, выберите столбец "Основная сущность", а затем выберите таблицу, для которой возникает ошибка.
Выберите процессы, поступающие из решений, принадлежащих вам.
Примечание.
Чтобы просмотреть пользовательские процессы, выполните действия.
- Перейдите в раздел "Решения параметров>", а затем откройте решение.
- Выберите "Процессы". Убедитесь, что значения выбраны в качестве типа компонента для процессов и просмотра для всех.
Выберите Деактивировать.
Опубликуйте настройки.
Проверьте проблему и если она не возникает, проблема связана с пользовательскими процессами. Устраните проблему.
Примечание.
Если возникла проблема, активируйте процессы , которые вы деактивировали сейчас, и попробуйте отключить настраиваемый подключаемый модуль или отключить настраиваемый JavaScript.
Проблема 3. Настраиваемая обработка подключаемых модулей с помощью общей переменной
Симптомы
- Создание и обновление операций с таблицами "Возможность", "Цитата", "Заказ" и "Счет" активируют обновления в родительских таблицах.
- Получение сведений о возможностях, кавычках, заказах и счетах внутренне активирует службу вычислений цен, которая впоследствии активирует пользовательские подключаемые модули, созданные клиентами.
Решение
Пользовательские подключаемые модули выполняют операции создания, обновления и сохранения операций с таблицами "Возможность", "Цитата", "Заказ" и "Счет". Операции создания и обновления этих таблиц внутренне активируют службу вычислений цен, которая затем обновляет связанные с ценами поля или атрибуты их родительских таблиц.
Вы можете определить или дифференцировать любые обновления в таблицах "Возможность", "Цитата", "Заказ" или "Счет", используя внутреннюю службу вычислений цен или используя собственный подключаемый модуль. Логическая общая переменная InternalSystemPriceCalculationEvent
, доступная через IPluginExecutionContext
которую доступна, доступна в коде подключаемого модуля. Любое событие создания или обновления, обрабатываемое с помощью службы вычислений цен, задает значение переменной InternalSystemPriceCalculationEvent
true
. Значение InternalSystemPriceCalculationEvent
по умолчанию — false
. Вы можете получить доступ к этой переменной из пользовательского кода подключаемого модуля, чтобы управлять потоком существующей бизнес-логики.
Примечание.
Чтобы выполнить пользовательские операции подключаемых модулей с помощью общей переменной, убедитесь, что служба вычислений цен отключена.
Пример кода
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider.
IPluginExecutionContext executionContext = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext))
bool isInternalSystemPriceCalculationEvent = false;
//Check existence of shared variable and fetch the value from executionContext
if (executionContext.ParentContext != null && executionContext.ParentContext.SharedVariables.ContainsKey("InternalSystemPriceCalculationEvent"))
{
isInternalSystemPriceCalculationEvent = (bool)executionContext.ParentContext.SharedVariables["InternalSystemPriceCalculationEvent"];
}
if (isInternalSystemPriceCalculationEvent)
{
//TO DO - Add or skip custom business logic
}
}