Источник данных PowerApps изменен на хранимую процедуру - PullRequest
0 голосов
/ 01 марта 2019

Источником данных в галерее PowerApps было представление SQL.

Search('[dbo].[vwCandidate]', textSearchCandidate.Text, "NameLast", "NameFirst", "MiscellaneousTags", "EmailAddress", "PhoneNumber")

Выбранная запись заполнила глобальную переменную для элемента формы.

Set(varCandidate, gallerySearchResults.Selected)

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

"Несовместимый тип. Мы не можем оценить вашу формулу, поскольку типы переменных контекста несовместимы с типами значений в других местах вашего приложения"

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

Я не могу просмотреть форму, поэтому я не уверен, как правильно отлаживать.Я догадываюсь, что поля даты, возвращаемые через Flow, вызывают проблему.Это типы 'smalldatetime', и поток возвращает строку 'yyyy-mm-ddThh:mm:ss.000', хотя запрашивается 'date'.

"PhoneNumber": {
  "type": "string"
},
"CandidateStatus": {
  "type": "string"
},
"DateApplied": {
  "type": "string",
  "format": "date"
},

Поток JSON здесь не похож ни на один из других 'date'типы форматов.

Есть ли обходные пути от Flow?Должен ли я переформатировать значения даты при установке глобальной переменной?Совет?

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Оказывается, я был на правильном пути, думая, что тип данных DATE приходит из потока в виде строки.Вот почему:

Новая запись была создана с использованием функции Patch при установке глобальной переменной:

Set(varCandidate, Patch('[dbo].[candidate]', Defaults('[dbo].[candidate]'), {DateApplied: DateTimeValue(Text(Now())), CreatedDate:DateTimeValue(Text(Now())), CreatedBy:varUser.Email}))

Поле «DateApplied» было типа «DATE» в таблице SQL, и оноисходил из потока в виде строки «2019-03-13T17: 40: 52.000».Набор записей из Flow был установлен на ту же глобальную переменную, когда я хотел отредактировать запись

Set(varCandidate, gallerySearchResults.Selected)

Ошибка «Несовместимый тип» (см. Вопрос о полном сообщении об ошибке) была вызвана тем, что это поле было "Значение даты »в новой записи и« строка »в записи редактирования.

Мое исправление заключается в удалении полей типа« Дата »из патча и изменении потока для извлечения вновь созданной записи записи по идентификатору.

0 голосов
/ 11 марта 2019
  1. Сбросьте все обратно, включая источник данных, затем сохраните и полностью закройте приложение, повторите тестирование.

  2. Удалите все соединения потоков, затем сохраните и закройтеприложение полностью, повторно протестируйте, а затем снова добавьте соединения потока.

Я не знаю почему, но PowerApps иногда сохраняет ошибки подключения к данным, пока вы не закроете приложение.

И просто для подтверждения, что PowerApps не поддерживает хранимые процедуры в качестве источников данных, только как запись с использованием функции исправления и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...