Este documento es la documentación para la integración que se puede realizar entre el aplicativo Clickup y la aplicación powerbi.
- Apis proporcionada por Clickup ver el el siguiente link.
https://clickup.com/api/developer-portal/explore/
- Nodejs para el manejo de los registros
- Servidor linux ubuntu.
- Docker donde se almacena el servicio.
- Powerbi Desktop.
- Tener instalado powerbi Desktop
La integración se base en hacer un consumo a unas apis brindadas por clickup el servico se realizó debido a que por defecto las apis de click up solo deja traer 100 registros, lo cual ocasiona que no se pueda hacer el analisis completo de las tareas por lo cual se realiza un servicio el cual hace la petición a las apis por pagina las guarda en un array y por ultimo las devuelve todas juntas para que powerbi los pueda analizar, para conectar a clickup es necesario generar un token de autentificación el cual se genera desde el aplicativo en el proximo apartada de modo de uso se estara referenciando como se genera dicho token y como se hace la solicitud y conexión a powerbi.
Se adjunta enlace con el codigo fuente del servicio.
http://adacsc.co:1443/svn/repository/ADA/SICOF/Estructuras%20cargas%20datos/Proyectos_luis/clickbi/
Para hacer uso de la integración se deben seguir los siguientes pasos_
1. Lo primero que se debe hacer es generar un token para la conexión este se debe generar por lo general 1 por día pero en caso de obtener errores de autentificación generar uno nuevo.
Para generar un token se debe hacer lo siguiente lo primero es ir al aplicativo de click up, dar click en el logo con tus iniciales y luego click en ajustes, luego te llevará a la pagina de ajustes al lado izquierdo hay un sidebar se debe dar click en la opción de Aplicaciones y luego dar click en generar o regenerar si ya habias generado uno, luego se tiene que copiar el codigo que seria algo parecido a esto pk_67319716_LFCLALV4YV5MMGR58C2VT4L37MSLRX09, este codigo será necesario para la conexión.
2. Ahora se debe ingresar al aplicativo de Powerbi y realizar el siguiente paso a paso.
- Dar click en nuevo. - Dar click en la opción obtener datos de otro origen. - Buscar la opción que dice web e ingresar a ella. - Luego en los check seleccionar el de uso avanzado. - En donde dice partes de la url en solo uno de cuadros de texto ingresar la siguiente url
Para Fabrica.
http://10.1.140.126:2200/api/get_all_data/token
Para consultoria.
http://10.1.140.126:2200/api/get_consultoria/token
Remplazar donde dice token con el token generado en el paso uno, en la url deberia quedar algo asi.
http://10.1.140.126:2200/api/get_all_data/pk_67319716_LFCLALV4YV5MMGR58C2VT4L37MSLRX09
- Luego en el campo que dice Tiempo de espera del comando en minutos agregar 5 y dar click en aceptar, te llevara a otra ventana solo dejar como esta y dar click en conectar .
Nota: Este proceso de conexión puede demorar alrededor de 10 a 15 minutos en completarse esto, esto se debe a que las apis de clickUp permiten traer de 100 en 100 registros asi que el servicio debe hacer alrededor de 200 peticiones e ir almacenandolas para devolverlas además de varias verificaciones internas y el mapeo de las columnas de de powerbi que hace que este proceso tarde un poco, pero después de la primera solicitud dejara de tardar tanto.
3. Luego de que ya llegue toda la información y powerbi mapee la información las fechas estarán en milisegundos por lo cual de ser necesario es posible modifcarlas para verlas en un formato mas leible. para eso dar click en el simbolo de formulas fx y ejecutar la siguiente consulta.
= Table.TransformColumns(#"Tipo cambiado",{{"tasks.date_created", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}, {"tasks.date_updated", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}, {"tasks.date_closed", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}, {"tasks.date_done", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}, {"tasks.due_date", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}, {"tasks.start_date", each #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, _ / 1000), type datetime}})
Esto cambiara a un formato de fecha mas leible, y el resto ya es trabajar con los datos.