Control de archivos de onedrive abiertos |
Responder ![]() |
Autor | |
dokk ![]() Habitual ![]() Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 152 |
![]() ![]() ![]() ![]() ![]() Enviado: 12/Mayo/2022 a las 10:05 |
Buenos días:
A ver si alguien tiene alguna idea sobre lo siguiente. En la empresa trabajamos con Onedrive y el ERP que tengo programado en Access trabaja bastante contra esa plataforma. Por ejemplo, si recibo una factura de un proveedor, cuando la registro en el ERP hago una copia de la factura con un nombre normalizado que va a la correspondiente carpeta del Onedrive. Hasta ahí, que sólo es añadir archivos a Onedrive, todo bien. Otra de las funciones que he implementado es el envío de solicitudes de presupuesto y pedidos por email directamente desde el ERP. Esos envíos muchas veces llevan adjuntos planos de diseño. Ocurre que los planos de diseño los puede tener abiertos el delineante de turno y alguien de operaciones tener que hacer el pedido. ¿Se os ocurre cómo podría saber si un archivo de Onedrive está en uso en otro equipo (por ejemplo en el equipo del delineante cuando alguien quiere mandar ese plano)? El tema se puede complicar más aún cuando lo que se quiere hacer es mover una carpeta y alguien tiene abierto alguno de los archivos de esa carpeta. Gracias por adelantado.
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
dokk ![]() Habitual ![]() Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 152 |
![]() ![]() ![]() ![]() ![]() |
Veo que nadie responde y yo de momento tampoco he llegado a ninguna solución. Investigando un poco he visto que hay una API para Onedrive, pero mi experiencia en programación se limita a Access y no sé si con esto se podría hacer algo.
¿Hay alguien que haya trabajado con esta API por aquí? Si lo hay, ¿sabría ese alguien decirme si para una carpeta o archivo concretos la API puede indicar si éstos están siendo usados por alguien en un momento dado?
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
Mihura ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13814 |
![]() ![]() ![]() ![]() ![]() |
Hola,
Una manera de ver si el archivo está siendo usado es intentar abrirlo como fichero binario en modo exclusivo para lectura ... otra cosa distinta es como se comporte el onedrive.
|
|
![]() |
|
dokk ![]() Habitual ![]() Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 152 |
![]() ![]() ![]() ![]() ![]() |
Gracias, Mihura. Eso es lo que hago en un equipo local.
El tema es que Onedrive mantiene una copia local en cada equipo. Si un equipo tiene una copia de un archivo abierta y yo usando FSO trato de llevarme la carpeta (moverla) me genera problemas de sincronización. Ese equipo sincroniza el archivo que tenía abierto y el árbol de carpetas, de forma que mantiene copias innecesarias. Por eso quiero saber desde un equipo de la red si otros equipos tienen abiertos alguno/s de esos archivos. Y eso creo que la API de Onedrive lo permitirá de alguna forma, pero no sé nio por donde agarrarla. De momento, hace un rato, he hecho una pequeña prueba que no parece ir mal, pero creo que tiene que haber una solución mejor (más óptima). El ERP que tengo programado tiene un formulario timer oculto con el que hago una serie de comprobaciones permanentes. Por ejemplo, compruebo que si el archivo se ha mantenido abierto media hora sin que haya habido interacción por parte del usuario, se cierre el programa. O cuando voy a hacer una tarea de mantenimiento, cambio un valor en una tabla y, tras un aviso, a los 30 segundos hago que se cierre el programa en todos los equipos. Lo que he probado es lo siguiente: el equipo que va a ordenar el movimiento de una carpeta o archivo, guarda las rutas de los archivos en una tabla y luego dejo un tiempo de pausa en el que todos los demás equipos, a través de la rutina timer, hacen una comprobación en local del tipo que comentas, Mihura. Si algún archivo está en uso, detengo la movimiento de los archivos y doy un aviso al usuario.
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
lupecinda ![]() Habitual ![]() ![]() Unido: 22/Abril/2005 Localización: España Estado: Sin conexión Puntos: 141 |
![]() ![]() ![]() ![]() ![]() |
Hola, no tengo ninguna experiencia con la API de onedrive, pero buscando en su documentación encontré esto:
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/resources/itemactivitytimeset?view=odsp-graph-online Te da dos valores, el de cuando ha sido modificado el archivo y el de cuando ha sido "observado", que parece cuándo ha sido modificado offline. Saludos Carlos
|
|
Lupita
|
|
![]() |
|
dokk ![]() Habitual ![]() Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 152 |
![]() ![]() ![]() ![]() ![]() |
Gracias, Lupecinda. Yo también estoy investigando esa documentación y el video de AUGE sobre Web servicio REST con Access. A ver si llego a algún sitio.
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |