Как повторно выполнить скрипт запроса источника данных App Maker - PullRequest
0 голосов
/ 05 июня 2019

Цель

Используйте App Maker, чтобы собирать дни рождения пользователей и отображать только дни рождения в этом месяце.

Выпуск

У меня есть модель данных, persons.В этой модели два источника данных, по умолчанию persons и второй birthdaysThisMonth.Сценарий запроса источника данных в birthdaysThisMonth работает правильно и возвращает только дни рождения в этом месяце из модели persons.

Однако, когда я изменяю дату рождения в источнике данных persons, источник данных birthdaysThisMonth остаетсябез изменений, например, скрипт Query в birthdaysThisMonth не повторно выполняется .

Чтобы изменить дату рождения, я выбираю новую дату из средства выбора даты, и отображается новое значениев таблице.Я не использую кнопку отправки, я вижу изменения, когда средство выбора даты теряет фокус.

Что я пробовал

Этот сценарий выполняется как Сценарий запроса в birthdaysThisMonth источнике данных , который не установлен на Manual save mode.Он возвращает нужные мне записи.

function setBirthdays() {
  var calcRecords = [];
  var personsRecords = app.models.persons.newQuery().run();
  for (i=0; i<personsRecords.length; i++) {
    var id = app.models.persons.newQuery().filters.Id._equals = i;
    if (personsRecords[i].birthdate.getMonth() == thisMonth())  {
      var calcRecord = app.models.persons.newRecord();
      calcRecord.emailSecondary = personsRecords[i].emailSecondary;
      calcRecord.birthdate = personsRecords[I].birthdate;
      calcRecord.Id = personsRecords[i].Id;
      calcRecords.push(calcRecord);
    }
  }
  return calcRecords;
}

Вопрос

Как повторно выполнить скрипт запроса в birthdaysThisMonth, когда данные в persons были обновлены.Как мне инициировать запрос, чтобы он переоценивал данные в persons и соответственно фильтровал.

Использование событий и onAfterSave кажется многообещающим, но я не нашел пример этого.

BTW

Я бы хотел, чтобы эта работа происходила на стороне сервера, если это возможно.

...