Tengo un campo de Autonumeración llamado 'ID' que genera una ID para un registro. Quiero configurar el campo Nombre principal llamado 'ID_Name' para esto. Actualmente estoy usando el siguiente JS:
function setName(executionContext) { formContext = executionContext.getFormContext(); var name = formContext.getAttribute("id").getValue(); formContext.getAttribute("id_name").setValue(name); }Bastante simple. Obtengo el valor de 'ID', lo asigno a una var llamada name, luego establezco el valor de 'ID_Name' en esa var. Esto activa OnSave.
Esto funciona bien cuando se edita un registro. El problema es que esto no funciona al crear un nuevo registro. Supongo que porque en el momento en que se activa OnSave, el campo de numeración automática 'ID' aún no ha generado un valor que se pueda usar, por lo que ID_Name está en blanco. Por supuesto, durante la edición, la identificación tiene un valor porque el registro ya se envió, por lo que no hay problemas. ¿Hay alguna forma de solucionar este problema?
Puede solucionar el problema utilizando el evento OnLoad y desencadenar una actualización cuando hay una discrepancia entre los dos campos (lo que significa que el valor no se ha guardado), pero le sugiero encarecidamente que no utilice este tipo de enfoque.
Idealmente, esto se puede resolver usando un complemento síncrono dentro de una operación posterior, en este momento en la tubería, el campo de identificación debe estar lleno (no mencionó si está usando el número automático OOB o algo diferente para generar el contenido de este campo) y puede activar la actualización dentro de un complemento.
Simplemente configure la opción de numeración automática OOB en el campo de nombre principal de su entidad. No se requiere código y le evita la duplicación de datos, lo que debe evitarse cuando sea posible.