Códigos de Especificación
Código dp001
Mensaje: Elimine Web Panel que ha sido creado por Genexus.
Problema
WebPanel creado por genexus, para las listas de selección de las transacciones por defecto.
Solución
Eliminar WebPanel, en la Transacción en las rules poner un noparm, para que no genere las listas de seleccion por defecto.
Código dp002
Mensaje: Utilizar comentarios /* */.
Problema
// CrearCliente crea una nuevo cliente
// según las variables:
Solución
/*
* CrearCliente crea una nuevo cliente
* según las variables:
*/
Código dp003
Mensaje: Utilizar un espacio siempre despues de una coma.
Problema
parm(in:PaiId,out:&PaiNom);
Solución
parm(in:PaiId, out:&PaiNom);
Código dp004
Mensaje: Utilizar comillas dobles por defecto.
Problema
&Msg = 'Hola mundo!'
Solución
&Msg = "Hola mundo!"
Código dp005
Mensaje: Utilizar format para desplegar mensajes conteniendo datos.
Problema
&Msg = "El cliente Nro." + &ClienteId.ToString() + " se llama " + &ClienteNombre
Solución
&Msg = format("El cliente Nro. %1 se llama %2", &ClienteId.ToString(), &ClienteNombre)
Código dp006
Definir las reglas por grupo para una mayor organizacion.
Problema
default(Campo1, Valor);
error(....);
default(Campo2, Valor);
prompt(...);
prompt(...);
Solución
default(Campo1, Valor);
default(Campo2, Valor);
error(....);
prompt(...);
prompt(...);
Código dp007
No hay una cláusula Otherwise en el Do Case que contiene el Case de la Línea:{0}.
Problema
do case
case &DocTipo = DocumentoTipos.Venta
...
case &DocTipo = DocumentoTipos.Compra
...
endcase
Solución
do case
case &DocTipo = DocumentoTipos.Venta
...
case &DocTipo = DocumentoTipos.Compra
...
otherwise
...
endcase
Código dp008
La cláusula Case o Otherwise que comienza en la Línea:{0} contiene más de 1 línea de código. Debería extraerse a una subrutina.
Problema
do case
case &Action = Action.Update
...
...
...
otherwise
...
...
...
endcase
Solución
do case
case &Action = Action.Update do 'DoUpdate'
case &Action = Action.Insert do 'DoInsert'
case &Action = Action.Regenerate do 'DoRegenerate'
case &Action = Action.Clean do 'DoClean'
case &Action = Action.Refresh do 'DoRefresh'
case &Action = Action.Reload do 'DoReload'
otherwise do 'UnexpectedAction'
endcase
Código dp009
Mensaje: Se encontró una sentencia Else If en la Línea:{0}. Debería ser reemplazada con Do Case
Problema
if &DocTipo = DocumentoTipos.Venta
...
else
if &DocTipo = DocumentoTipos.Compra
...
endif
endif
Solución
do case
case &DocTipo = DocumentoTipos.Venta
...
case &DocTipo = DocumentoTipos.Compra
...
otherwise
...
endcase
Código dp010
Mensaje: No Utilizar cadenas de string para comparar en una clausula if.
Problema
if &DocumentoTipo = "Venta"
Solución
if &DocumentoTipo = DocumentoTipos.Venta
Código dp011
Mensaje: No Utilizar cadenas de string para comparar en una clausula case.
Problema
case &DocTipo = "Venta"
Solución
case &DocTipo = DocumentoTipos.Venta
Código dp012
Mensaje: No Utilizar cadenas de string como argumento en una web session.
Problema
&websession.Get("EmpresaId")
Solución
&websession.Get(Session.EmpresaId)
Código dp013
Mensaje: No Utilizar la funcion udp para pasarle dentro otra función. Llame directamente a la función.
Problema
&Name = udp( PNameGet, &Id)
Solución
&Name = PNameGet( &Id )
Código dp014
Mensaje: No Utilizar la funcion call para pasarle dentro otra función. Llame directamente a la función.
Problema
call( PNameSet, &Id, &Name)
Solución
PNameSet( &Id, &Name)
Código dp015
Mensaje: La clausula case o otherwise encontrada en la Linea:{0} no le antecede una linea en blanco.
Problema
do case
case &Action = Action.Update do 'DoUpdate'
case &Action = Action.Insert do 'DoInsert'
otherwise do 'UnexpectedAction'
endcase
Solución
do case
case &Action = Action.Update do 'DoUpdate'
case &Action = Action.Insert do 'DoInsert'
otherwise do 'UnexpectedAction'
endcase