Получить запрос в контроллере
У меня есть эти две версии получения запроса в моем классе контроллера,
Метод prePromptModifyContract:
this.parmReportContract().parmQueryContracts().lookup(this.getFirstQueryContractKey())
а также
this.getFirstQuery()
Здесь есть странный меланж, мой запрос добавляется как атрибут к классу провайдера данных вместе с временной таблицей. В методе processReport запрос выполняется, но диапазон задается только в контроллере, так что... каков точный поток и как контроллер получает ссылку на запрос, используя выделенные выше строки?
И еще одна вещь, в чем разница между вышеупомянутыми вызовами методов? Они работают в данный момент, но есть ли причина, по которой я должен использовать один поверх другого?
1 ответ
Второй вопрос, во-первых, методы должны давать тот же результат, за исключением некоторого тестирования ошибок, поэтому предпочитают getFirstQuery
!
Как это увидеть? Прочитайте код:
protected final Query getFirstQuery()
{
Query firstQuery;
Map queryContractsMap = this.getReportContract().parmQueryContracts();
str firstQueryKey = this.getFirstQueryContractKey();
if (queryContractsMap && firstQueryKey && queryContractsMap.exists(firstQueryKey))
firstQuery = queryContractsMap.lookup(firstQueryKey);
return firstQuery;
}
Я не уверен, что вы подразумеваете под первым вопросом, точный поток.
Но, как пользователь, вы можете изменить запрос в приглашении. Запрос в processReport
должен быть предоставлен пользователем.
Запрос в prePromptModifyContract
является сохраненным запросом от последнего запуска задания (или исходного запроса, если он никогда не выполнялся). У вас есть возможность изменить некоторые диапазоны или что-то еще, прежде чем пользователь увидит запрос.