jueves, 17 de abril de 2014

Columna calculada con el ID del item (Calculated column with ID of item)

Un pedido muy común es utilizar el ID del item en la fórmula de una columna calculada. Se puede utilizar entonces el ID? Si se puede utilizar (no soportado por MS) pero puede tener un comportamiento extraño su uso. Veamos un ejemplo.

image

Creo un item

image

Y veo que el ID no se concateno.

image

Ahora vamos de nuevo a la edición de la fórmula, no edito nada, sólo presiono OK y veamos los resultados.

image

Ahora el ID se concateno.

image

Que pasa si ahora edito el item?

image

image

El ID desapareció.

image

RESUMEN:

  • Sólo se concatena el ID cuando creo la columna autocalculada o la edito.
  • Se borra el ID cuando creo items o los edito
  • NO se debe usar la columna ID en una columna autocalculada

Que podemos utilizar para utilizar el ID en una columna (ya no puede ser de tipo autocalculada, debe ser de tipo “Single line of text”):

  • Workflows: es más fácil de implementar
  • Event handlers (ItemUpdating, ItemAdding): es más complejo de implementar
  • Client Object (set_item): dificultad media
  • Infopath (sigue vivito y coleando después de las últimas novedades de MS sobre infopath): también es fácil de implementar

Les explico un poco como se puede hacer con Sharepoint Designer.

Creamos de nuevo la columna pero de tipo Single line of text

image

Voy a Sharepoint Designer y creo un workflow

image

Elijo “Actualizar elemento de lista”

image

image

image

image

image

Selecciono que se dispare cuando se cree el workflow

image

y lo publico.

Agrego un item para probarlo.

image

Espero unos segundos una vez cargado,y actualizo la página.

image

Quedo el ID correctamente seteado.

Ahora queremos ocultar el campo I_Autocalculate del form de carga, porque al hacer autocalculado no debería estar.

Voy a la configuración avanzada de la lista, y marco “Allow Management of content types”

image

Selecciono el content type “Item”, y a continuación selecciono la columna “ID_Autocalculate”

image

Seteo la opción “Hidden”

image

Ahora cuando voy a agregar el item, ya no veo el campo

image

image

No hay comentarios:

Publicar un comentario