Отключение автосохранения приложения на основе модели
Функция автосохранения помогает пользователям приложения сконцентрироваться на работе, не задумываясь о сохранении данных в форме. Большинство людей ценят отсутствие необходимости явно сохранять данные при каждом обновлении строки, однако в некоторых организациях могут быть пользовательские настройки, предназначенные для явного сохранения. Для этих организаций можно выбрать вариант применения автосохранения.
Как работает автосохранение
По умолчанию все основные формы для обновленных таблиц и классических таблиц поставляются с включенным автосохранением. После создания строки (изначально сохраняемой) любые изменения в форме автоматически сохраняются через 30 секунд после внесения изменения. Если изменения в форму не вносятся, то при открытой форме автоматического сохранения не происходит. После внесения изменений снова происходит 30-секундный отсчет перед включением автоматического сохранения. Если кто-то еще обновил ту же строку, пока вы ее редактируете, эти изменения извлекаются и отображаются в форме во время автосохранения.
С включенным автосохранением кнопка "Сохранить" отображается только для первоначального сохранения строки. После создания строки кнопка сохранения на панели команд не отображается, но вы можете увидеть кнопку в правом нижнем углу, которая показывает, есть ли несохраненные изменения. Этот элемент управления также отображается, если автосохранение отключено.
Можно выбрать эту кнопку, чтобы сохранить строку и немедленно обновить данные в форме. Если автосохранение включено, строка сохраняется всякий раз при уходе из строки или закрытии отдельного окна со строкой. Нет необходимости в кнопке Сохранить и закрыть, которая появляется в формах для таблиц, которые не обновляются.
Следует отключить автосохранение?
При наличии подключаемых модулей, рабочих процессов и скриптов форм, исполняемых при сохранении строки, они будут выполняться всякий раз при автосохранении. Это может привести к нежелательному поведению, если соответствующие расширения не были предназначены для работы с автосохранением. Включено ли автосохранение или нет, подключаемые модули, рабочие процессы и скрипты форм необходимо адаптировать для поиска конкретных изменений, они не должны исполняться для каждого события сохранения беспорядочно.
Если аудит настроен для таблицы, каждое сохранение расценивается как отдельное обновление. Если пользователь задумался над формой с несохраненными изменениями более 30 секунд, другая запись появится только в случае добавления данных после автосохранения. При наличии отчетов, которые зависят от аудита данных и расценивают каждое сохранение как индивидуальное "прикосновение" к строке, можно отменить увеличение частоты таких "прикосновений". Если вы используете этот подход, следует помнить, что поведение отдельных пользователей делает его ненадежным независимо от того, включено автосохранение или нет.
Отключение автосохранения в организации
Если определено, что автосохранение создает проблемы с используемыми расширениями, администраторы Power Platform могут отключить для среды. Отсутствует параметр для отключения автосохранения для отдельных таблиц или форм.
- Войдите в Центр администрирования Power Platform, перейдите в раздел Среды, а затем откройте нужную среду.
- Выберите Параметры на панели команд.
- Разверните Продукт, а затем выберите Поведение.
- В разделе Основное поведение для параметра Автосохранение выберите Выкл.
Отключение автосохранения для формы
Если требуется отключить автосохранение для конкретных форм таблиц, можно добавить код в событие OnSave
в таблице.
Примечание
При использовании этого способа, автосохранение отключается для формы, но данные все же будут сохранены, когда пользователь выберет в правом нижнем углу. Если пользователь попытается покинуть или закрыть форму с измененными данными, появится запрос на сохранение изменений, и только после этого форму можно покинуть или закрыть.
Использование приведенной ниже процедуры приведет к тому, что кнопка Сохранить и закрыть в форме не будет работать, поскольку она вызывает preventDefault
в saveMode
2, который ссылается на Сохранить и закрыть. Вы можете удалить проверку getSaveMode() == 2
ниже, чтобы избежать этого, но тогда форма автоматически сохраняется, если вы попытаетесь уйти из формы или закрыть форму, где данные были изменены. Кнопка Сохранить и продолжить также не работает по этой причине.
Войдите в Power Apps.
В левой панели навигации выберите Таблицы, выберите таблицу, а затем выберите область Формы. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Вы также можете вносить изменения в таблицы в решении. Для этого выберите Решения на левой панели, выберите таблицу, а затем выберите область Формы. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Откройте форму, которую требуется изменить.
Выберите Перейти в классический режим, чтобы изменить форму в классическом конструкторе формы.
Создайте веб-ресурс JavaScript и добавьте его к форме:
В редакторе форм в группе Форма выберите Свойства формы.
На вкладке События в разделе Библиотеки форм выберите Добавить.
В диалоговом окне Строка подстановки выберите Создать.
Введите следующие сведения в форму веб-ресурсов.
Заголовок Ссылка Имя preventAutoSave Отображаемое имя Запрет автосохранения Тип Скрипт (JScript) Рядом со столбцом Тип выберите Текстовый редактор.
В столбце Источник вставьте следующий код:
function preventAutoSave(econtext) { var eventArgs = econtext.getEventArgs(); if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) { eventArgs.preventDefault(); } }
Выберите ОК, чтобы закрыть текстовый редактор.
Выберите Сохранить, чтобы сохранить веб-ресурс, а затем закройте окно веб-ресурса.
В диалоге Строка подстановки будет выбран новый веб-ресурс, только что созданный вами. Выберите Добавить, чтобы закрыть диалоговое окно.
Настройка события
OnSave
:В поле Свойства формы в разделе Обработчики событий установите Событие в При сохранении.
Выберите Добавить.
В окне Свойства обработчика задайте для раздела Библиотека веб-ресурс, добавленный в предыдущем шаге.
Введите "
preventAutoSave
" в столбце Функция. Ввод осуществляется с учетом регистра. Не используйте кавычки.Убедитесь, что установлен флажок Включено.
Установите флажок Передача контекста выполнения в качестве первого параметра.
Важно!
В противном случае скрипт не заработает.
Диалог Свойства обработчика должен выглядеть так. Префикс настройки: "new_" может меняться в зависимости от префикса пользовательской настройки, заданного для издателя по умолчанию для вашей организации.
Выберите ОК, чтобы закрыть диалог Свойства обработчика.
При наличии других обработчики событий для события
OnSave
используйте зеленые стрелки для перемещения данного обработчика вверх.Свойства формы должны отображаться следующим образом. Обратите внимание, что в примере, показанном здесь, обновление произошло внутри решения, и в результате префикс издателя (dspin_) не совпадает с префиксом, предоставленным издателем по умолчанию (new_). Это потому, что другой издатель используется для решения.
Выберите ОК, чтобы закрыть диалог Свойства формы.
Выберите Сохранить и закрыть, чтобы закрыть форму.
В обозревателе решений выберите Опубликовать все настройки.
После применения этого сценария к событию OnSave
при редактировании пользователем строки с использованием этой формы сообщение несохраненные изменения отображается в нижнем правом углу формы, как если бы автосохранение не было отключено. Но это сообщение не исчезнет, пока люди не нажмут рядом с ним.
Дальнейшие действия
Примечание
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).