En GeneXus hay por lo menos dos opciones para generar estos textos:
- usando la concatenación de strings con el operador +
- usando la función Format, que creo que se agregó en GeneXus 9.0
- hay una tercer forma que descarto de entrada, que es con la función Concat...
Con respecto a la legibilidad del código, creo que ambas opciones son buenas, puede haber algún caso que una de las dos quede mejor que la otra.
La ventaja que tiene la función Format es cuando tenemos que traducir la aplicación usando el objeto Language, porque queda todo el texto en un solo item del objeto.
Por ejemplo, el texto "El pedido número NNN fue confirmado", usando la concatenacion de strings queda
&mensaje = 'El pedido número ' + PedidoId.ToString() + ' fue confirmado'con lo que al traducirlo tenemos que traducir los dos textos por separado: 'El pedido número ' y ' fue confirmado'...
Si usamos la función Format, nos queda
&mensaje = Format('El pedido número %1 fue confirmado', PedidoId.ToString())con lo cual tenemos un solo literal.
Puede haber algún caso donde tal vez no se pueda usar la función Format, por ejemplo en una regla error() en una transacción, pero en todos casos donde se pueda, creo que conviene usar la fución Format...
Totalmente de acuerdo.
ResponderBorrarNo usar la format en esos casos puede hacer "intraducible" la aplicación.
El motivo es que una frase se arma de forma distinta en los distintos idiomas. No es el mismo orden para sujeto, predicado,etc en "latino" que en ingles o alemán o japones.