Posted by Daniel Del Cabo on March 18, 2016 at 8:39am
Hola a todos.
Tengo una duda técnica y si me pudieseis orientar os lo agradecería.
En un proyecto de drupal 7 debo de generar un campo dni para cada usuario y debe de ser único.
El DNI debería ser progresivo ID-001 , ID-002 , ID-003 según se van generando nuevos nodos.
He probado con el módulo UUI pero no me sirve. Sabéis alguna manera de hacerlo.
Había pensado utilizar variable_get para ir guardando un número que me diría cual es el siguiente a asignar.
¿Sabéis si se puede dar la circunstancia de que el sistema actué a la vez y cree dos usuarios iguales con este método del variable_get? .
Cualquier observación es bienvenida.
Muchas gracias

Comments
Utiliza el identificador de
Utiliza el identificador de usuario (uid)
Cierto
Cierto. Lo malo es que algunos usuarios no serán "elegidos" y eso me crea huecos en la numeración correlativa.
Muchas gracias.
Semáforos
Como comentas, dos llamadas concurrentes a variable_get() implicaría que se crearan dos registros con el mismo valor. Prueba usando semáforos (locking system) https://api.drupal.org/api/drupal/includes%21lock.inc/group/lock/7
Dentro del semáforo lees la variable y la actualizas, antes de liberar nuevamente el semáforo.
el modulo
el modulo https://www.drupal.org/project/serial te puede ayudar
Pienso que podrías probar y
Pienso que podrías probar y evaluar https://www.drupal.org/project/serial
No lo he utilizado, pero veo que en su versión -dev ya incorpora soporte para user.
Gracias
Voy a probar vuestras soluciones y os comento.
Muchas gracias por la ayuda.
Posible solución
Finalmente creo que utilizare Serial. Es limitado porque no me deja configurar un prefijo ID-0001, simplemente es un counter 1, 2.
Generare otro campo que se base en el serial y creare lo que quiero ID-0001.
Para el tema de los user he creado un campo en la ficha de profile2 que tengo asociada y me genera el campo serial.
Otra solución que ha propuesto frankgil de semáforos me ha parecido interesante. He encontrado una solución mixta entre lo que yo preguntaba con las variables y el sistema de semáforos.
http://www.boylesoftware.com/blog/synchronizing-variable-access-in-drupa...
Esta última solución parece idónea para abordar el tema pero tiene algunos conceptos que no controlo del todo y prefiero reservarlo para investigar cuando tenga un hueco.
Espero que os sirva de ayuda.
Muchas gracias.
Mira también
https://www.drupal.org/project/unique_field