Получить запрос в контроллере

У меня есть эти две версии получения запроса в моем классе контроллера,

Метод 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 является сохраненным запросом от последнего запуска задания (или исходного запроса, если он никогда не выполнялся). У вас есть возможность изменить некоторые диапазоны или что-то еще, прежде чем пользователь увидит запрос.

Другие вопросы по тегам