1. Validar si el formulario esta siendo modificado.
2. Si no lo esta hacer checkout sobre el formulario para evitar que otros lo puedan modificar.
3. Ejecutar las operaciones de actualización sobre el formulario y guardar los cambios.
4. Hacer check-in del formulario para permitir que otros usuarios lo puedan actualizar.
Parte del código implementado para esta solución aparece a continuación, si desean ver la solución completa me envían un mail.
Antes de ejecutar los pasos mencionados se debe obtener el objeto spitem que apunta al item de la libreria al cual esta asociado el formulario que vamos a modificar mediante el uso de los objetos SPSite, SPWeb y SPList.
//Codigo que permite bloquear el formulario
mySite.AllowUnsafeUpdates = true;
myWeb.AllowUnsafeUpdate = true;
if (!(MyItem.File.CheckOutStatus == SPFile.SPCheckOutStatus.None))
{
MyItem.File.CheckOut();
}
//Codigo que permite desbloquear el formulario
MyItem.File.Checkin("Comentario");
Algo en lo cual se debe pensar es que se va hacer si llega un usuario a modificar el formulario y lo encuentra bloqueado por otro ... aquí básicamente se pueden hacer dos cosas una es simplemente mostrarle un mensaje al usuario diciendo que no puede modificar el formulario por otro usuario lo tiene bloqueado esta seria la salida más fácil, la segunda salida sería ir encolando las solicitudes y una vez un usuario termina de actualizar el formulario lo va tomando el siguiente en la fila, buena esta implementación espero publicarla más adelante ... si alguien se ha topado con este problema y ha encontrado una solución interesante diferente a la que expongo, le agradecería la comentara
Estimado,
ResponderEliminarMe ocurre el mismo problema, me puedes dar apoyo por favor.
No quiero que el usuario tenga que desproteger y proteger el documento, la idea es que se vaya controlando en el formulario infopath.
Espero tus respuestas a la brevedad.
Este comentario ha sido eliminado por el autor.
ResponderEliminar