anonymous Log in
Search
Recents:
v3.0
as400-l
Una de las de "Gx y la madre que lo..." me está generando un programa RPG que no compila
26/10/18 06:38

jbusquets@grespania.

Replies: 4

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hola gente, a ver si alguien puede darme una pista de como
resolver esto , porque ya no se por donde mirarlo:</p>
<p>Tengo  un programa generado en rpg que hasta este momento estaba
funcionando perfectamente, no lo había tocado en tiempo.</p>
<p>Me piden una pequeña modificación, de modo que la hago y
compilo... diez minutos.</p>
<p>Genera y lanza bien la compilación.... pero el programa no se
compila, el AS/400 me tira un error de compilación. <br>
</p>
<p>Me pongo a mirar el listado de compilación, y para mi sorpresa
,el error se produce porque Gx define mal la estructura de una
tabla.</p>
<p>En concreto, la tabla maestra de artículos, que se usa dos veces
en el programa, porque el código de artículo está presente como
tal y también como un subtipo. De forma correcta, define la misma
tabla dos veces, una para cada consulta ¡ pero en la segunda vez
añade al final de la lista de columnas  una que ya había definido,
repetida!</p>
<p><tt>      *</tt><tt><br>
</tt><tt>      * Alias definition</tt><tt><br>
</tt><tt>      *</tt><tt><br>
</tt><tt>     IF0000</tt><tt><br>
</tt></p>
<p><tt>  ...blablabla</tt><tt><br>
</tt></p>
<p><tt>     IF0001</tt></p>
<p><tt>...blablabla...</tt><br>
</p>
<p>... ahora viene la tabla, definda por primera vez:<br>
</p>
<p><tt>     IF0002</tt><tt><br>
</tt><tt>     I              FORMAT                      P02051</tt><tt><br>
</tt><tt>     I              MODELO                      P02052</tt><tt><br>
</tt><tt>     I              DESART                      P020F6</tt><tt><br>
</tt><tt>     I              MEDART                      P020MG</tt><tt><br>
</tt><tt>.....</tt><tt><br>
</tt><tt>     I              PORPRI                      P020UL</tt><tt><br>
</tt><b><tt>     I              PIEZAS                      P0206Y</tt></b><tt><br>
</tt><tt>     I              CODFOR                      P020DZ</tt><tt><br>
</tt><tt>....</tt></p>
<p><tt>      I              OBSAR1                      P020NM</tt><tt><br>
</tt><tt>     I              OBSAR2                      P020NN</tt><tt><br>
</tt><tt>     I              CEGART                      P020C4</tt><tt><br>
</tt><tt>     IF0003</tt></p>
<p><tt>...blablabla...... </tt><br>
</p>
<p>.. y ahora viene la misma tabla, para cuando lee los atributos
del subtipo</p>
<p><tt>     IF0004</tt><tt><br>
</tt><tt>     I              FORMAT                      P041GX</tt><tt><br>
</tt><tt>     I              MODELO                      P041GY</tt><tt><br>
</tt><tt>     I              DESART                      P040F6</tt><tt><br>
</tt><tt>     I              MEDART                      P041I8</tt><tt><br>
</tt><tt>  ....</tt><tt><br>
</tt><tt>     I              PORPRI                      P040UL</tt><tt><br>
</tt><b><tt>     I              PIEZAS                      P0425H</tt></b><tt><br>
</tt><tt>     I              CODFOR                      P040DZ</tt><tt><br>
</tt><tt>...</tt></p>
<p><tt>      I              OBSAR1                      P040NM</tt><tt><br>
</tt><tt>     I              OBSAR2                      P040NN</tt><tt><br>
</tt><tt>     I              CEGART                      P040C4</tt><tt><br>
</tt><tt> <b>    I              PIEZAS                      P0406Y</b></tt><br>
</p>
<p><br>
</p>
<p>Como se puede ver, en la segunda definición de la tabla, al final
de todas las columnas , va y se le ocurre añadir una columna
repetida, "PIEZAS", como se ve, es una columna que está mas arriba
en la tabla. Lo mas gracioso es que  en la primera definición de
la misma tabla lo ha hecho perfectamente , y no añade esta
duplicidad.  ¡Encima la variable P0406Y después no la usa para
nada!<br>
</p>
<p>Por tanto, este programa no compila,  y no tengo la mas remota
idea de qué hacer para arreglarlo. Probé a cambiar cosas al azar,
tocar la definición del subtipo y eso, pero , claro, así puedo
pasarme años probando e igual ni aún así se arregla. <br>
</p>
<p>¿alguna pista , algún consejo?</p>
<p>¿Lo dejo todo y me pongo a programar las aplicaciones en Visual
Basic 1.0 ?<br>
</p>
<p>Bufff</p>
<p><br>
</p>
<div class="moz-signature">-- <br>
<h3>Jesús Busquets</h3>
<br>
<p><a href="http://www.grespania.com"><strong><big><span
style="font-size:20px">Grespania, S.A.</span></big></strong></a></p>
</div>
</body>
</html>
Replies

Deludaniel@gmail.com

26/10/18 07:53
Buenos dias.... revisastes la KB? fijate en alguna parte definistes PIEZAS distintas *Humberto Daniel De Luca* *'* +54 911 5501 7650 P Please consider the environment - do you really need to print this email? El vie., 26 oct. 2018 a las 6:55, Jesus Busquets ()

Arnoldo Lezama

26/10/18 08:49
Jesús, ¿Estas con la misma versión y upgrade de GeneXus con que tenias generado la aplicación? Si lo que deseas es poner a producción el arreglo de 10 minutos, te recomiendo que entres al fuente generado, elimina la línea del problema y compila directamente en el as400. Luego, sin la presión del momento, haz un cross reference de PIEZAS en toda tu KB a ver si encuentras algo raro con ese atributo y al final puedes reportarlo a GeneXus. Saludos, Arnoldo Lezama El vie., 26 de oct. de 2018 3:55 a. m., Jesus Busquets < jbusquets@grespania.com>

Arnoldo Lezama

26/10/18 08:51
Otra pregunta: ¿Estás con la misma versión de Windows? El vie., 26 de oct. de 2018 5:49 a. m., Arnoldo Lezama < alezama@csicompany.com>

jbusquets@grespania.

30/10/18 05:31

Hola, gracias por las respuestas.

Tras varias pruebas, sin que cambiara la cosa, encontré que la solución era mas fácil de lo que parecía: El problema, evidentemente, es que algo en Genexus se había liado, y bien. El miedo era que el problema estuviera en el diseño, o en el modelo (en su base de datos SQL) Probamos a generar desde otra máquina, apuntando al mismo modelo   ¡y funcionó normalmente! así que algo del directorio del modelo, en el ordenador de desarrollo tenía algo que Gx habría generaod mal, y que al ser usado en la generación estaba dando los problemas.

Bastó una eliminación de todo lo que tenía en el directorio del modelo (excepto los cuatro archivos imprescindibles) y volver generar, y se arregló por arte de magia.

Saludos



El 26/10/2018 a las 13:51, Arnoldo Lezama


Back to as400-l