Una definición de mensaje es el objeto que guarda el texto que una regla de negocio muestra al usuario. Se crea en Gestionar datos, con Crear nuevo > definición de mensaje, y tiene un código, un texto y, si la instancia trabaja con varios idiomas, sus traducciones. La nota de SAP 2092849 lo describe así: el mensaje que se quiere mostrar se crea en Gestionar datos con esa opción, y después se usa en la regla.
Que el texto viva en un objeto y no en la regla tiene varias ventajas. El mismo mensaje se puede usar en más de una regla. El texto se corrige sin tocar la lógica, lo que evita volver a probar la regla por un cambio de redacción. Y las traducciones se administran como cualquier otro texto que lee un usuario, con el ícono de idiomas del objeto, como vimos con los datos traducibles en la U2. En una instancia con usuarios en varios países, un mensaje sin traducción se muestra en el idioma base, y un manager de Brasil puede recibir un error en inglés o en español que no entiende.
En el caso del curso, la definición de mensaje de la L2 es AR_HORAS_MAX. Su texto es: "En Argentina, las horas semanales no pueden superar 48. Revisá el valor cargado." En el VIDEO 2.2 se crea antes de la regla, porque la regla AR_Validar horas semanales la necesita para completar la acción Mostrar mensaje. En el ejercicio de la L2 aparece una segunda, AR_HORAS_MIN, para el aviso de menos de 20 horas.
La redacción del mensaje es parte del diseño, no un detalle. La lección lo plantea como tip de consultor: escribí los mensajes para quien los lee. "Validación AR_HORAS fallida" no le dice nada a un manager. "Las horas semanales no pueden superar 48" le dice qué pasó y qué tiene que corregir. Si la regla responde a una política o a una ley, conviene nombrarla, porque el usuario entiende que no es un capricho del sistema. El ejercicio de la L2 muestra el contraejemplo: un mensaje que dice "Error regla VAL_03", que solo entiende quien configuró la regla.
Hay algunas pautas prácticas para escribir mensajes. Una oración que diga el problema y otra que diga qué hacer. Sin códigos internos, salvo que el usuario los use. Con el valor límite, si lo hay: 48 horas, no "el máximo permitido". Y con el tono de la instancia: si el cliente trabaja con vos o con usted, el mensaje tiene que respetarlo.
Algunos mensajes pueden incluir valores de la transacción, como el nombre del campo o el valor cargado, mediante parámetros. Es útil cuando una misma definición se usa en varios casos parecidos, pero agrega complejidad. Para la mayoría de las validaciones de un cliente, un texto fijo y claro es suficiente.
Por último, conviene usar una convención de códigos. En Best Run Argentina, los mensajes llevan el prefijo AR_ y un nombre que describe la regla que los usa. Así, al revisar los mensajes en Gestionar datos, es fácil saber de dónde viene cada uno.
