** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Control de archivos de onedrive abiertos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Control de archivos de onedrive abiertos

 Responder Responder
Autor
Mensaje
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dokk Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Control de archivos de onedrive abiertos
    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
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dokk Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Mayo/2022 a las 13:21
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
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Mayo/2022 a las 13:35
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.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dokk Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Mayo/2022 a las 15:26
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
Arriba
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: Sin conexión
Puntos: 149
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Mayo/2022 a las 13:46
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
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dokk Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Mayo/2022 a las 14:08
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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable