Cancelar documentos marcados para borrar

Quiero que los documentos dentro del evento Postdocumentdelete (justo antes de borrar los documentos marcados parar borrar) ponerles una campo basura a "Si" y ademas quitarles la marca de "para borrar".
Lo del campo ja esta echo. Me faltaría quitar la marca de "para borrar" al documento.

1 respuesta

Respuesta
1
La máxima seguridad se obtiene utilizando campos de tipo Lectores en combinación con los permisos y roles dados en la LCA.
Cuidado con este tipo de campos Lectores, si el documento tiene un campo de este tipo y en él no incluyes como mínimo a los 'LocalDomainServers' y ademas algún usuario o rol tipo [admin] te dejará crear documentos y luego no los podrá ver nadie.
El hacer vistas que oculten documentos en función del contenido de algún campo no es seguro, algún usuario podría crearse una vista privada en la que se muestren todos los documentos.
Lo que has hecho de poner a la vista el rol de [admin] es bastante seguro (100% seguro si en la LCA los usuarios no [admin] les has quitado el permiso para crear vistas ni privadas ni compartidas), quiero decir que si el usuario no puede ver la vista pero puede crearse una y poner p.e. un select @ all ...
También es 100% seguro que un usuario no va a ver un documento (aunque esté en la vista) si su nombre o rol no figura en el campo lectores del documento.
Saludos
Pd: estoy intentando contestar a una duda sobre ODBC que está en el tablón publico y me da un error, ponme un post con la misma y te la contesto.
Perfecto muchas gracias. Ahora te paso la duda del ODBC
La marca 'pa borrar' la gestiona notes internamente. Para poder ver que documentos están con esta marca tienes que crear una carpeta y llamarla ($trash), lo mejor es que la copies de la plantilla de correo.
Para poder trabajar con estas marcas debes utilizar la carpetas especiales $FolderRef y $FolderRefInfo (también deberás copiarlas de la plantilla de correo).
Mira en la ayuda de designer la propiedad 'FolderReferencesEnabled' también 'FolderReferences' y el método 'PutInFolder'.
Cuando muevas un documento a la basura en el campo $FolderRefIf aparecerá el universalid de la carpeta basura que podrás poner el valor que desees. (Las carpetas en lotus script se tratan igual que las vistas)
Hola,
otro experto me desanimó a seguir el sistema de borrado automático de notes. Así que me he creado mi propia papelera, te explico.
Cuando un usuario borra un documento y actualiza la vista estos documentos los cazo en el evento que te nombré antes y les hago una copia con un flag para que no vuelvan a aparecer en la vista de los usuarios.
Por otra parte tengo a un administrador que puede ver la papelera (vista creada por mi) y revisar los documentos. Estoy a punto de crear un agente de de tanto en tanto los borre automáticamente (por tiempo de espera en la papelera) pero eso es una batalla que vendrá más adelante (no tengo ni idea).
¿Es correcto lo que estoy haciendo? Sobretodo lo que no me gusta es tener que hacer una copia, pero por lo que me dices parece ser necesario.
¿En todo caso como lo harías tu?
Muchas gracias por tu inestimable ayuda
No se si ha habido algún error pero como me dices que hay formas más sencillas para hacer softdeletes pues me gustaría saber cuales son y que te parece la mía.
Mis escusas por mi doble post.
En la post anterior no significa que haya una copia de los documentos, el que los muevas a una carpeta y los veas en una vista no significa que haya dos documentos.
La forma más sencilla de la que hablo es usando @formulas como '@Command([MoveToTrash])' o @Command([EmptyTrash]) .
Te voy a explicar como lo soluciono yo, que se parece más a lo que tu quieres:
1) Por defecto no doy permiso a ningún usuario para que pueda borrar documentos en la BD. Esto es porque normalmente las bd que hago tienen más tipos de documentos que no quiero que los usuarios los puedan borrar accidentalmente. Además es mejor controlar quién borra los documentos.
De esta manera si alguien pone algo en la papelera y actualiza le sale el mensaje de que no tiene permiso para borrar.
2) Creo botones o acciones de borrado en vistas, formularios... (donde me convenga) que lo que hacen es poner los campos Basura="Si", fechadeborrado=now , usuarioqueborra=username.
3) En las vistas donde no deban figurar los documentos borrados poner algo como '..& Basura="" '
5) Tengo una vista oculta con la select Basura<>"" donde veo todos los documentos borrados.
6) Si realmente no quieres guardar los documentos borrados haz un agente programado que borre todos los documentos de la vista anterior.
No utilizo el evento 'PostDeletedocuments'
Podrías hacer un botón para recuperar documentos borrados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas