Las columnas publicadas desde campos de InfoPath se vuelven a crear cuando se vuelve a publicar la misma plantilla de formulario de InfoPath.
Número de KB original: 2554288
Síntomas
Imagine la siguiente situación:
Cree una plantilla de formulario de Office InfoPath y publíquela en una biblioteca de documentos en SharePoint. Durante la publicación, se seleccionan determinados campos de InfoPath que se van a publicar como columnas en la biblioteca de documentos. Después de publicar la plantilla de formulario, decide publicar la misma plantilla de formulario y los mismos campos en una biblioteca de documentos diferente en el mismo sitio de SharePoint.
Más adelante, se implementa un cambio en la plantilla de formulario de InfoPath y se vuelve a publicar la plantilla de formulario en ambas bibliotecas de documentos en el mismo orden que durante la primera publicación.
En este escenario, se vuelven a crear todas las columnas de las bibliotecas de documentos que se publicaron desde los campos de InfoPath.
Durante este procedimiento, también se actualiza el nombre interno de las columnas recreadas en las bibliotecas de documentos de SharePoint, es decir, un sufijo numérico que comienza con 0 en el nombre de columna anterior. Por ejemplo, una columna denominada LastName cambia a LastName0.
La recreación de las columnas es un proceso de dos pasos:
- La columna se agrega de nuevo a la biblioteca de SharePoint.
- Se quitan las columnas que no están asociadas a los campos de InfoPath.
Causa
InfoPath almacena la lista de campos que se publican en bibliotecas de documentos de SharePoint en un manifiesto local junto con las columnas a las que están asociados estos campos. Esto se logra haciendo referencia al identificador de columna en SharePoint (un valor GUID único) con el campo InfoPath.
Al publicar la plantilla de formulario de InfoPath actualizada en una biblioteca de documentos de SharePoint la segunda vez, InfoPath comprueba si la columna con el identificador asociado ya existe. Si no encuentra la columna correspondiente, se crea una nueva columna en la biblioteca de documentos. Las columnas que no están asociadas a ninguno de los campos de InfoPath se eliminan de la biblioteca de documentos.
Las siguientes operaciones se realizan en segundo plano al publicar la misma plantilla de formulario en varias bibliotecas de SharePoint:
Al publicar la plantilla de formulario en la primera biblioteca la primera vez, se crea cada columna publicada y se asocia con el campo InfoPath correspondiente.
Al publicar la plantilla de formulario en la segunda biblioteca la primera vez, InfoPath no encuentra las columnas asociadas con los identificadores almacenados y, por tanto, crea nuevas columnas. A continuación, asocia el nuevo identificador de columna al campo de InfoPath correspondiente.
Al publicar la plantilla de formulario en la primera biblioteca la segunda vez, InfoPath no encuentra las columnas asociadas con los identificadores almacenados, ya que los GUID de la segunda biblioteca están asociados actualmente a los campos. Por lo tanto, InfoPath crea nuevas columnas que, a su vez, obtienen nuevos identificadores y están asociadas a los campos de InfoPath.
En este proceso, hay muchas columnas creadas que no están asociadas a ninguno de los campos de InfoPath y se quitan de la biblioteca de documentos.
Este comportamiento se repite al publicar la plantilla de formulario en la segunda biblioteca la segunda vez.
Nota:
Este problema no se produce si la plantilla de formulario de InfoPath se publica como un tipo de contenido de sitio o los campos de InfoPath se publican como columnas de sitio en SharePoint.
Solución
Hay un par de métodos para evitar que esto suceda:
Cree una columna de sitio para cada campo de InfoPath que se va a publicar en el sitio de SharePoint y seleccione las columnas de sitio creadas previamente al publicar la plantilla de formulario de InfoPath en ambas bibliotecas.
Como el identificador de las columnas de sitio no cambiará, InfoPath no tiene que volver a crear las columnas existentes.
Cree una copia independiente de la plantilla de formulario de InfoPath, una para cada una de las bibliotecas de documentos de SharePoint. Esto garantizará que InfoPath no vuelva a crear las columnas existentes, ya que los identificadores de columna no cambiarán.
La desventaja de este enfoque es que debe implementar todos los cambios en todas las copias de plantilla de formulario que están en uso.
Nota:
En general, en lugar de publicar la plantilla de formulario de InfoPath dos veces, el enfoque recomendado es publicar la plantilla de formulario como un tipo de contenido de sitio y asociar el tipo de contenido del sitio a ambas bibliotecas de documentos de SharePoint.
Más información
Para obtener más información, vea Agregar, quitar o modificar columnas de biblioteca o columnas de sitio de SharePoint.