Поделиться через


Отключение автосохранения для формы или организации

Эта тема относится к Dynamics 365 Customer Engagement (on-premises). Версию этой темы для Power Apps см. по адресу: Отключение автосохранения приложении на основе модели

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

Как работает автосохранение

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

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

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

Внимание

В едином интерфейсе интервал автосохранения для страницы увеличивается, если во время автосохранения возникает ошибка. Кроме того, при изменении значения атрибута или успешном сохранении интервал сбрасывается на 30 секунд.

Следует отключить автосохранение?

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

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

Отключение автосохранения в организации

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

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

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

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

Отключение автосохранения для формы

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

Заметка

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

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

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

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

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

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

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

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

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

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

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

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

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

      Стоимость
      Name 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. Установите флажок Передача контекста выполнения в качестве первого параметра.

      Внимание

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

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

    Обработчик событий OnSave, позволяющий предотвратить автоматическое сохранение в Dynamics 365 for Customer Engagement.

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

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

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

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

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

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

См. также

Создание и разработка форм
Замечания при разработке основных форм
Представление основных форм в различных клиентах
Оптимизация производительности формы