Я пытаюсь автоматически обновить фрейм данных в приложении Shiny, которое очищает API остальных JIRA для заполнения визуальных элементов.
Я заимствую из того, что нашел здесь , но БД против Web Scrape, похоже, не имеет универсального решения.
Я пытаюсь дать глобальное определение дефекты данных (и глобальное обновление каждые 6 минут), но когда я пытаюсь отфильтровать глобальный фрейм данных, я получаю Ошибка в eval: объект «дефекты» не найден ошибка. Вот глобальная функция, которую я использую для сбора обновлений
Getupdates <- function(qfrequency){
if(!exists("nextCall")){
lastcall <<- Sys.time()
message("Initiating")
baseURL <<- "https://oneit.wba.com/jira/rest/api/2/search?fields=created,resolutiondate,customfield_13601,customfield_11014,creator,assignee,reporter,customfield_13400,customfield_11014,customfield_12501,key,status&jql=project%20in%20(RXQE)%20AND%20issuetype%20=%20Bug%20AND%20%22Business%20Priority%22%20!=%20EMPTY%20AND%20status%20!=%20Removed&maxResults=500"
maxResults = 500
resultIndex <<- -1;
totalRecords <<- 0
pages <- list()
i<<-1
while(resultIndex < totalRecords){
url <<- paste0(baseURL, "&startAt=",resultIndex,"&maxResults=",maxResults) #CaPs MaTtER!
rawExport <<- fromJSON(url, flatten=TRUE)
resultIndex <<- rawExport$startAt + nrow(rawExport$issues)
totalRecords <<- rawExport$total
pages[[i]] <<- rawExport$issues
i<<-i+1
}
defects <- rbind_pages(pages)
nextCall <<- Sys.time() + qfrequency
message("Got Initial Data")
}
else if (Sys.time() >= nextCall){
lastcall <<- Sys.time()
message(paste0(Sys.time(), " Querying Periodically"))
baseURL <<- "https://oneit.wba.com/jira/rest/api/2/search?fields=created,resolutiondate,customfield_13601,customfield_11014,creator,assignee,reporter,customfield_13400,customfield_11014,customfield_12501,key,status&jql=project%20in%20(RXQE)%20AND%20issuetype%20=%20Bug%20AND%20%22Business%20Priority%22%20!=%20EMPTY%20AND%20status%20!=%20Removed&maxResults=500"
maxResults = 500
resultIndex <<- -1;
totalRecords <<- 0
pages <- list()
i<<-1
while(resultIndex < totalRecords){
url <<- paste0(baseURL, "&startAt=",resultIndex,"&maxResults=",maxResults) #CaPs MaTtER!
rawExport <<- fromJSON(url, flatten=TRUE)
resultIndex <<- rawExport$startAt + nrow(rawExport$issues)
totalRecords <<- rawExport$total
pages[[i]] <<- rawExport$issues
i<<-i+1
}
defects <- rbind_pages(pages)
nextCall <<- Sys.time() + qfrequency
message("Got Updated Data")
}
else{
return()
}
}
И начало кода сервера, где, как я полагаю, ошибка связана с
server <- function(input, output, session) {
observe({
autoInvalidate()
# 300 seconds is 5 minute updates
Getupdates(UpdateR8)
})
Quality <- reactive({
rawNames <- c("fields.created", "fields.resolutiondate", "fields.customfield_13601.value",
"fields.creator.displayName", "fields.assignee.displayName",
"fields.customfield_13400.value","fields.customfield_11014.value",
"fields.customfield_12501.value",
"key", "fields.status.name", "fields.reporter.displayName")
myBugs <- defects %>% dplyr::select(rawNames) })
Любая помощь в этом была бы прекрасна!