Автономные возможности в PowerApps - PullRequest
1 голос
/ 27 марта 2020

У меня есть PowerApp, для которого я пытаюсь создать автономные возможности. Ниже приведен сценарий, которого я пытаюсь достичь. Необходимые предложения.

У меня есть метод API таймера, который в основном выполняется при запуске и остановке метод таймера в приложении. В режиме онлайн он работает нормально, но я хочу разрешить пользователям запускать / останавливать таймер также и в режиме автономного режима. Когда приложение находится в автономном режиме, вызов API не выполняется, поскольку он не подключен. Как мне обойти эту ситуацию и запустить и остановить таймер в автономном режиме. Есть ли способ достичь этого? Вот мое определение API.

ClearCollect(colTimers, Time360.timerStartStop({_timerContract:{
    Comment:txtDBTimerDescription.Text, 
    Running:"Yes", 
    IsPinned:"No", 
    CustomerAccount:tsLineCust.CustNum,
    ProjectId:tsLineProj.ProjectId,
    ProjectCategoryId:tsLineCat.CategoryId,
    ParentId:0,
    RecordId:0,
    ProjectDataAreaId:If(Len(tsLineCust.DataAreaId) > 0, tsLineCust.DataAreaId, If(Len(tsLineProj.DataAreaId) > 0, tsLineProj.DataAreaId))
    }}));

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Используйте Connection.Connected, чтобы увидеть, есть ли у вас inte rnet соединение.

If(Connection.Connected, 
      // TRUE: connect to the api, 
      // FALSE: add to local collection
   )
0 голосов
/ 18 апреля 2020

PowerApps имеет встроенный таймер.

  • Вставка
  • Вход / Таймер

enter image description here

  • Установите его свойство Duration на желаемые миллисекунды
  • Установите его Repeat на true, чтобы сохранить импульс
  • Установите его AutoStart на true чтобы он запускался при загрузке экрана
  • Установите его OnTimerEnd для выполнения желаемой функции (как код ниже)

Возможно, вы захотите исследовать PowerApps SaveData() функция.

Что-то вроде:

If(
    Connection.Connected,
        Patch(theDataSource,
        Defaults(theDataSource),
        {
            Comment:txtDBTimerDescription.Text, 
            Running:"Yes", 
            IsPinned:"No", 
            CustomerAccount:tsLineCust.CustNum,
            ProjectId:tsLineProj.ProjectId,
            ProjectCategoryId:tsLineCat.CategoryId,
            ParentId:0,
            RecordId:0,
            ProjectDataAreaId:If(Len(tsLineCust.DataAreaId) > 0, tsLineCust.DataAreaId, If(Len(tsLineProj.DataAreaId) > 0, tsLineProj.DataAreaId))
        }
    ),

    Collect(colLocalData, {...same stuff as above...});
    SaveData(fileLocalCache, colLocalData)
)

Пол О'Флахерти имеет один из лучших автономных видео PowerApps здесь.

...