none
Como evitar que se cree un nuevo elemento al cargar un campo sin haber hecho clic en grabar RRS feed

  • Pregunta

  • Cuento con un formulario para registrar información sobre las aperturas de sucursales, que se comparten entre varias areas, se crea uno cada vez que hay una apertura.

    El inconveniente que estoy teniendo es que al crear un nuevo elemento, comienzo a cargar los campo pero cuando completo un campo de tipo Selector de personas o grupos crea un nuevo elemento sin que haya hecho clic en guardar cambios (no pasa lo mismo con el resto de los campos de tipo texto).

    Aclaración:

    En Carga de Formulario tengo un regla que carga un campo con nombre del usuario que esta abriéndolo (esto lo utilizo para simular control de concurrencia ya que varias personas pueden ingresar a la vez) y envía los datos utilizando la conexión, con lo cual se crea el elemento con el nro de ID asignado.

    Conexión de datos:

    Nombre concatenar("Apertura Sucusal Nº: ", Ppal_nroSol)

    Ademas esta tildada la opción que permita sobreescribir si existe el archivo.

    Muchas gracias!


    Sonia

    martes, 4 de abril de 2017 20:10

Respuestas

  • Sí, claro, si de eso estoy seguro, pero el problema no es el propio campo ctrlCarga, creo que tu problema puede ser que estés guardando un registro nuevo cada vez que verificas un campo de tipo persona como te ponía en el anterior mensaje.

    Por eso te comento que lo que deberías hacer para guardar datos es además de las condiciones que estás comprobando, comprobar también que modificas el elemento actual en lugar de crear uno nuevo y para ello deberás mirar el ID de SharePoint del item en el que estés o el título o cualquier campo único que tengas.


    Un saludo
    • Editado redheart.net viernes, 7 de abril de 2017 7:21
    • Propuesto como respuesta Moderador M lunes, 10 de abril de 2017 14:46
    • Marcado como respuesta Moderador M miércoles, 19 de abril de 2017 16:34
    viernes, 7 de abril de 2017 7:20

Todas las respuestas

  • Hola,

    ¿Qué tipo de formulario estás utilizando?

    Un saludo


    Juan Carlos Gonzalez Martin | Office Servers and Services MVP | Director revista CompartiMOSS: http://www.compartimoss.com | Blog:jcgonzalezmartin.wordpress.com/ Twitter: @jcgm1978

    miércoles, 5 de abril de 2017 5:35
  • Por lo que entiendo, estás utilizando reglas de carga de InfoPath para guardar datos en la apertura, por lo cual ya el elemento se crea sí o sí nada más empezar a usar el formulario.

    El people picker por sí mismo no es capaz de desencadenar una conexión de datos que envíe información al servidor si no tienes ninguna regla asociada a él que lo haga, por lo que deberías revisar con el inspector de reglas que no interfiera ninguna.

    Lo que podría suceder es que al completar la acción de validación del usuario del selector de personas, este haga un refresh para validar el userID con AD y el formulario InfoPath lance de nuevo la regla que tienes montada en la carga del formulario porque detecte una nueva carga con ese refresh.
    Si este es tu caso te aconsejo que establezcas un campo de control, simplemente usa un campo con un valor a 0 por ejemplo y que tras el primer envío le cambie el valor, en la regla comprueba que ese valor sea igual a 0 y en caso contrario que no lance la conexión de datos para asegurarte que se ejecuta la regla únicamente en el primer acceso al formulario (o cuando lo necesites controlando el valor del campo de control manualmente).

    Un saludo

    • Propuesto como respuesta Moderador M miércoles, 5 de abril de 2017 14:48
    • Votado como útil Moderador M miércoles, 12 de abril de 2017 14:40
    miércoles, 5 de abril de 2017 9:22
  • Hola Juan Carlos, estoy utilizando formulario de Infopath

    Saludos


    Sonia

    miércoles, 5 de abril de 2017 15:22
  • Hola! 

    Lo que me resulta raro es que antes funcionaba correctamente, tuve un problema y se creo de 0 la biblioteca.

    Te cuento lo que hice:

    1. Cree un campo ctrlCarga que lo establezco en vacío.

    2. En Carga de Formulario agregue una regla. Condición ctrlCarga sea vacío. Establezco los campo CtrlAbierto = nombreusuario() - para concurrencia, ctrlCarga = 1, Envío los datos usando la conexión.

    3. Creo un nuevo elemento, cargo alguno de los campos Selector de personas o grupos y se genera un nuevo elemento pero el campo  ctrlCarga ya no esta en vacío como estaba inicialmente 

    Muchas gracias


    Sonia

    miércoles, 5 de abril de 2017 15:52
  • Por lo que veo el problema lo debes tener por usar una biblioteca de formularios InfoPath en lugar de una lista con InfoPath, cuando haces un envío usando una conexión de datos siempre el campo ctrlCarga va a ser vacío porque crea un documento nuevo y ese campo no tiene valor.

    Lo que te va a tocar hacer en ese caso es validar que no cree un nuevo registro sino que modifique el actual, así que para eso vas a tener que meter otra condición y es que el Nombre coincida con el del elemento actual, así te aseguras que si estás en el 116 no crees el 243

    Un saludo

    jueves, 6 de abril de 2017 14:51
  • En realidad el campo ctrlCarga esta en 1 cuando tengo abierto el formulario, eso lo verifique en otra ventana de explorador.

    Con respecto a la conexión de datos, esta tildada la opción que permita sobreescribir si existe el archivo.

    La verdad que no se que mas veridicar

    Saludos!


    Sonia

    jueves, 6 de abril de 2017 17:08
  • Sí, claro, si de eso estoy seguro, pero el problema no es el propio campo ctrlCarga, creo que tu problema puede ser que estés guardando un registro nuevo cada vez que verificas un campo de tipo persona como te ponía en el anterior mensaje.

    Por eso te comento que lo que deberías hacer para guardar datos es además de las condiciones que estás comprobando, comprobar también que modificas el elemento actual en lugar de crear uno nuevo y para ello deberás mirar el ID de SharePoint del item en el que estés o el título o cualquier campo único que tengas.


    Un saludo
    • Editado redheart.net viernes, 7 de abril de 2017 7:21
    • Propuesto como respuesta Moderador M lunes, 10 de abril de 2017 14:46
    • Marcado como respuesta Moderador M miércoles, 19 de abril de 2017 16:34
    viernes, 7 de abril de 2017 7:20