Управление автоматическим сохранением

Dynamics CRM 2016
 

Опубликовано: Февраль 2017

Применимо к: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Функция автосохранения помогает сконцентрироваться на работе, не задумываясь о сохранении данных в форме. Большинство людей оценит отсутствие необходимости явно сохранять данные при каждом обновлении записи, однако в некоторых организациях могут быть пользовательские настройки, предназначенные для явного сохранения. Для этих организаций можно выбрать вариант применения автосохранения.

По умолчанию все основные формы для Обновленные сущности поставляются с включенным автосохранением. После создания записи (изначально сохраняемой) любые изменения в форме будут автоматически сохраняться через 30 секунд после внесения изменения. Если изменения в форму не вносятся, то при открытой форме автоматического сохранения не происходит. После внесения изменений снова происходит 30-секундный отсчет перед включением автоматического сохранения. Поле, редактируемое в настоящее время другим пользователем, не включено в автосохранение. Если кто-то еще обновил ту же запись, пока вы ее редактируете, эти изменения будут извлечены и отображены в форме во время автосохранения.

С включенным автосохранением кнопка "Сохранить" отображается только для первоначального сохранения записи. После создания записи кнопка "Сохранить" на панели команд не отображается, однако в нижнем правом углу видна кнопка Кнопка автоматического сохранения, показывающая, имеются ли какие-либо несохраненные изменения. Этот элемент управления также отображается, если автосохранение отключено.

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

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

Если аудит настроен для сущности, каждое сохранение расценивается как отдельное обновление. Если пользователь задумался над формой с несохраненными изменениями более 30 секунд, дополнительная запись появится только в случае добавления данных после автосохранения. При наличии отчетов, которые зависят от аудита данных и расценивают каждое сохранение как индивидуальное "прикосновение" к записи, можно отменить увеличение частоты таких "прикосновений". Если вы используете этот подход, следует помнить, что поведение отдельных пользователей делает его ненадежным независимо от того, включено автосохранение или нет.

Если определено, что автосохранение вызовет проблемы с используемыми расширениями, можно отключить его в вашей организации. Отсутствует возможность отключения автосохранения для отдельных сущностей или форм.

  1. Перейдите в Параметры > Администрирование.

  2. Выберите Системные параметры.

  3. Для параметра Включение автосохранения для всех форм выберите Нет.

Если требуется отключить автосохранение для конкретных форм сущностей, можно добавить код в событие OnSave в сущности.

System_CAPS_noteПримечание

Автосохранение будет отключено для формы, но данные все же будут сохранены, когда пользователь нажмет кнопку Кнопка автоматического сохранения в нижнем правом углу. Если пользователь попытается покинуть или закрыть форму с измененными данными, появится запрос на сохранение изменений, только после этого форму можно будет покинуть или закрыть.

  1. На панели навигации перейдите в раздел Microsoft Dynamics 365 > Параметры.

    На панели навигации появятся Параметры.

  2. Перейдите в раздел Параметры > Настройки.

  3. Выберите Настроить систему.

  4. В разделе "Компоненты" разверните Сущности и найдите сущность для формы.

  5. Разверните узел сущности и выберите Формы.

  6. Откройте форму, который требуется изменять.

  7. Создайте веб-ресурс JavaScript и добавьте его к форме

    1. В редакторе форм в группе Форма выберите Свойства формы.

    2. На вкладке События в разделе Библиотеки форм выберите Добавить.

    3. В диалоговом окне Поиск записи выберить Создать.

    4. Введите следующие сведения в форму веб-ресурсов.

      Имя (название)

      preventAutoSave

      Отображаемое имя

      Запрет автосохранения

      Тип

      Скрипт (JScript)

    5. Рядом с полем Тип выберите Текстовый редактор.

    6. В поле Источник вставьте следующий код:

      function preventAutoSave(econtext) {
          var eventArgs = econtext.getEventArgs();
          if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {
              eventArgs.preventDefault();
          }
      }
      
      
    7. Выберите ОК, чтобы закрыть текстовый редактор.

    8. Выберите Сохранить, чтобы сохранить веб-ресурс, а затем закройте окно веб-ресурса.

    9. В диалоге Поиск записи будет выбран новый веб-ресурс, только что созданный вами. Выберите Добавить, чтобы закрыть диалоговое окно.

  8. Настройка события OnSave

    1. В поле Свойства формы в разделе Обработчики событий установите Событие в При сохранении.

    2. Нажмите кнопку Добавить.

    3. В окне Свойства обработчика задайте для раздела Библиотека веб-ресурс, добавленный в предыдущем шаге.

    4. Введите preventAutoSave в поле Функция. Ввод осуществляется с учетом регистра. Не используйте кавычки.

    5. Убедитесь, что установлен флажок Включено.

    6. Установите флажок Передача контекста выполнения в качестве первого параметра.

      System_CAPS_importantВажно

      В противном случае скрипт не заработает.

      Диалог Свойства обработчика должен выглядеть так. Префикс настройки: "new_" может меняться в зависимости от префикса пользовательской настройки, заданного для издателя по умолчанию для вашей организации.

      OnSave event handler to prevent autosave in CRM
    7. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства обработчика.

    8. При наличии других обработчики событий для события OnSave используйте зеленые стрелки для перемещения данного обработчика вверх.

  9. Нажмите кнопку ОК, чтобы закрыть диалог Свойства форм.

  10. Щелкните Сохранить и закрыть, чтобы закрыть форму.

  11. В обозревателе решений щелкните Опубликовать все настройки.

После применения этого сценария к событию OnSave при редактировании пользователем записи с использованием этой формы сообщение несохраненные изменения отображается в нижнем правом углу формы, как если бы автосохранение не было отключено. Однако это сообщение не будет отправлено, пока пользователь не щелкнет кнопку Кнопка автоматического сохранения рядом с ним.

© Корпорация Майкрософт (Microsoft Corporation), 2017. Все права защищены. Авторские права

Добавления сообщества

ДОБАВИТЬ
Показ: