Bagaimana cara membuat dasbor Trello sehingga tugas dari 5 papan dikumpulkan menjadi satu?

Bermasalah

Dalam pekerjaan saya, saya menghadapi kebutuhan untuk mengatur tugas-tugas karyawan departemen analitik dalam satu jendela dan membangun skema transparan untuk menilai beban kerja mereka.





Apa sajakah pilihannya?

Membandingkan berbagai alat dan pengelola tugas, pilihan jatuh pada salah satu pemain pasar paling populer - Trello. Namun, segera setelah memilih program, muncul kendala baru. Versi gratis dari aplikasi ini tidak memiliki kemampuan untuk menyinkronkan papan beberapa karyawan bersama-sama tanpa layanan pihak ketiga, seperti Zapier, di mana lisensi juga diperlukan untuk proyek besar.





Apa yang dimaksud dengan penyatuan?

  1. Pergilah ke 5 papan dan lihat masing-masing secara terpisah, tidak ada cukup waktu dan tenaga.





  2. Jika Anda tidak menyelaraskan papan pada satu layar, akan sangat sulit untuk membandingkan satu karyawan dengan lainnya dalam hal beban kerja saat ini.





  3. Karyawan ingin memahami beban kerja masing-masing anggota tim, dan untuk ini, sekali lagi, Anda perlu menyatukan semuanya.     





Fungsionalitas sinkronisasi semacam itu tersedia secara gratis dari beberapa pesaing yang berspesialisasi dalam pengelola tugas yang gesit, tetapi Trello lebih familiar, karena saya telah menggunakannya untuk kontrol tugas pribadi selama beberapa tahun. Jadi, untuk memperkenalkan manajer tugas komando bersama ke dalam pekerjaan departemen, hanya satu masalah yang harus diselesaikan:





Bagaimana cara menyinkronkan papan dari 5 karyawan dalam satu dasbor tanpa membayar lisensi di Trello atau layanan transfer seperti Zapier?





Solusi dari masalah tersebut:

trello R, API , .





:

API https://trello.com/app-key ( Trello )





,





R.    . R    RStudio.





:





  • API Trello — «trelloR»





  • — «lubridate»





  • — «dplyr»   





CRAN install.packages, github install_github:





remotes::install_github("jchrom/trelloR")
install.packages("lubridate", dependencies = TRUE)
install.packages("dplyr ", dependencies = TRUE)
      
      



API :





#         token
setwd("C:\\*********\\R_script\\trello")

#  token
my_token = get_token("my_app", key = "", secret = "",
                     expiration = c( "never"))
      
      



, , , :





trelloadd <- function(delcard = NULL,
                      addcard = NULL,
                      nlista = NULL){
  #          
     
  ishod_tab <- get_list_cards(addcard)
  
  #      
  bid = get_id_board(delcard)
  
  #        
  lid <- get_board_lists(bid)$id[nlista]
  
  #        
  cid<-get_list_cards(lid)
  
  #  ,        
  if (length(cid$id)>0) {
    for (i in 1:length(cid$id)) {
      delete_resource(resource = "card", id = cid$id[i])
    }
  }else{
    print("no-del")
  }
  
  #       
  dateList<- data.frame(dateadd = NA)
  for (i in 1:length(ishod_tab$id)) {
    cardID <- ishod_tab$id[i]
    dateList[i,1] <- strtoi(strtrim(cardID, 8), 16L)
  }
  dateList$dateadd <-as.POSIXct(dateList$dateadd, origin = "1970-01-01")
  
  #           
  if (length(ishod_tab$name)>0) {
    for (i in 1:length(ishod_tab$name)) {
        payload = list(
        idList = lid,
        name = ishod_tab$name[i],
        desc = paste0(ishod_tab$desc[i],"Date Add: " ,dateList$dateadd[i], " 
                       ", floor(as.vector(difftime(today(),dateList$dateadd[i], units='days'))), " "),
        start = ishod_tab$start [i],
        due = ishod_tab$due [i],
        pos = "bottom"
      )
      r <- create_resource("card", body = payload)
    }
  }else{
    print("Ok")
  }
  if (nrow(bind_rows(ishod_tab$labels[]))>0) {
  
    #   ()
    bid = get_id_board(delcard)
    lid <- get_board_lists(bid)$id[nlista]
    cid <-get_list_cards(lid)
    
    #    
    nlab <- which( lapply(ishod_tab$labels, length)!=0 %in% T)
    for (i in nlab) {
      labl <- ishod_tab$labels[[i]]
      for (xi in 1:nrow(labl)) {
        r <-  add_label(cid$id[i], color = ishod_tab$labels[[i]][xi,4],
                        name = ishod_tab$labels[[i]][xi,3] )  
      }
    }
   }else{
    print("no_lable")
  }
}
      
      



:





  • delcard - id





  • addcard - id





  • nlista -





delcard

id , , id





Contoh tautan: https://trello.com/b/*********/general-tasks - di mana nilai ****** akan menjadi Id dari papan tertentu
: https://trello.com/b/*********/- - ****** Id

addcard

, delcard , :





get_board_lists("https://trello.com/b/*****/1",
 query = list(customFieldItems = "true")
)
      
      



, R id





.





:





# 1 ####
trelloadd(delcard = "od*****W", 
          addcard = "600**********04",
          nlista = 2)
# 2 ####
trelloadd(delcard = "od*****W", 
          addcard = "5fc4********24",
          nlista = 3)
# 3 ####
trelloadd(delcard = "od*****W", 
          addcard = "5e94*********8ce",
          nlista = 4)
# 4 ####
trelloadd(delcard = "od*****W",
          addcard = "5faa*********c522",
          nlista = 5)
# 5 ####
trelloadd(delcard = "od*****W",
          addcard = "60744*******3394",
          nlista = 6)
# 6 ####
trelloadd(delcard = "od*****W",
          addcard = "5e73******b07",
          nlista = 7)
      
      



, , , , , ( ). .     .





Dasbor siap
Dasbor siap

Akhirnya:





  1. Kami mendapat sinkronisasi penuh dari semua papan dari sejumlah karyawan di trello





  2. Kami memecahkan masalah untuk memiliki akses visual ke tanggal pembuatan setiap tugas





  3. Kami memiliki dasar untuk menganalisis produktivitas karyawan dalam aspek apa pun, berkat kemampuan untuk menambahkan berbagai peningkatan baru pada kode, memperluas kode berdasarkan Trello Api, berdasarkan logika bisnis perusahaan Anda dan kemampuan bahasa R.








All Articles