#powerapps
#powerapps
Вопрос:
Я создал приложение с использованием Microsoft PowerApps, которое отображает последнее полученное электронное письмо из почтового ящика Office365. Я использовал эту функцию:
Office365Outlook.GetEmails({folderPath:"Inbox/TargetedInboxFolder", fetchOnlyUnread:false, top:1})
Но проблема в том, что мое приложение не будет автоматически обновлять поле для тела электронного письма ThisItem.BodyPreview
. Я получаю текст последнего полученного электронного письма только при перезапуске своего приложения.
Как обновить содержимое этого поля, когда Office365 получает новое электронное письмо в folderPath: "Inbox/TargetedInboxFolder"
подпапке «Входящие», без перезапуска приложения?
Ответ №1:
Я не думаю, что вы можете получить автоматическое обновление, даже если вы должны были создать поток, запускаемый при добавлении нового электронного письма.
Чтобы обновить вручную, добавьте в свое приложение кнопку «обновить».
Установите для его OnSelect
свойства значение:
ClearCollect(colLastEmail,
Office365Outlook.GetEmails(
{
folderPath:"Inbox/TargetedInboxFolder",
fetchOnlyUnread:false, top:1
}
)
Затем установите для Items
свойства вашей галереи значение colLastEmail
.
Комментарии:
1. Как установить для элементов моей галереи значение colLastEmail. Что это значит? Чтобы выбрать элементы из меню выбора и ввести в поле fx colLastEmail?
2. «Галерея» — это элемент управления (например, кнопка, текстовое поле или метка) в PowerApps. Каждый элемент управления имеет набор свойств, для которых вы пишете свои функции. Выберите соответствующую галерею в «древовидном представлении», затем выберите ее
Items
свойство из выпадающего меню.3. Я уже сделал это, но у меня ошибка в строке формул. colLastEmail недействителен. Идентификатор не распознан.
4. Эта ошибка обычно указывает на пропущенную запятую, отсутствующую скобку ИЛИ название вашей коллекции отличается от того, которое я предложил выше. Вам нужно показать код / ошибку, если вы хотите, чтобы мы помогли здесь в дальнейшем.
5. Спасибо. На самом деле ошибка в скобках отсутствует. Я исправил это, и теперь все работает нормально.
Ответ №2:
Как сказал SeaDude, это не будет обновляться автоматически, но вы можете использовать таймер в приложении. Установите следующие свойства
- Автозапуск: верно
- Повторение: верно
- Длительность: устанавливается на интервал времени между обновлениями в миллисекундах. Таким образом, 10 секунд будут равны 10000. Я бы установил не менее 1 минуты (60000), но, вероятно, лучше дольше.
- Видно: false
Установите свойство OnTimerEnd для сбора времени отправки электронной почты
ClearCollect(colLastEmail,
Office365Outlook.GetEmails(
{
folderPath:"Inbox/TargetedInboxFolder",
fetchOnlyUnread:false, top:1
}
)
А затем настройте свою галерею на использование коллекции ColLastLEmail.