Pues ya está.
No deja definir un array dentro de una DS definida con LIKEDS.
Entonces lo he definido así:
     D@RegDS         E DS                  extname(FESDTO) 
     D                                     qualified
     DCliexclos              107    601  0 DIM(99)
     D @Registro     E DS                  Extname(Fesdto) 
Todo como Extname.
Una curiosidad: tampoco me deja definir @regDS dentro del procedimiento. 
Lo tengo que definir en el principal, porque si no, me dice que no existe 
el campo @regds.Cliexclos.
Serán tonterías de la V6R1?
Por cierto, Javier Mora. Para qué usas el template en la deficición de la 
DS?
Salu2





De:     "alberto" <alberto.marti...@roler.es>
Para:   "forum.help400" <forum.help400@listas.combios.es>
Fecha:  14/12/2018 10:17
Asunto: ** Newsletter ** Re: Registro externo en procedimiento
Enviado por:    forum.help400-boun...@listas.combios.es



Hola 
Creo que ya se cual es el problema(que no la solución). 
De hecho son dos problemas. SQL y procedimiento, porque en un programa con 
subrutinas y sin SQL funciona desde siempre. 
El problema lo tengo al definir que una parte de los campos del registro 
son un array. No tanto en la definición de la DS 
 D @RegDS          DS                  likeDS(@registro) 
 d Cliexclos             107    601s 0 DIM(99)   
Si defino el array  en la misma DS que recibe los datos: 
Exec SQL Fetch Next From @cursor into :@reg; 
directamente el SQL no me lo reconoce como variable. 
Digo: vale, pues la defino sin array y muevo los datos a otra que tenga 
array. 
pues aquí está el problema. 
 Desde el momento que defino el array y el programa tiene un sólo 
procedimiento, ya no me compila, porque los procedimientos por lo que veo 
no me están reconociendo un array de 99 elementos, sino un campo numérico 
de más de 63 dígitos. 
Esto me pasa tanto definiendo el array dentro del procedimiento como 
fuera. Tanto si la hago servir como si no. 
 Me sigue faltando el compilar en 7.1 que no he podido. 
Salu2 
  
        



De:        "Juan Carlos Paredes" <juancar...@paredes.info> 
Para:        "forum.help400" <forum.help400@listas.combios.es> 
Fecha:        12/12/2018 18:00 
Asunto:        ** Newsletter ** Re: Registro externo en procedimiento 
Enviado por:        forum.help400-boun...@listas.combios.es 



Me suena haberme encontrado con ese problema en alguna ocasión. Y creo 
recordar que lo solucioné definiendo el fichero en una hoja F específica 
del procedimiento, como Input y UsrOpn, haciendo una apertura en falso 
(para que no se queje el compilador de que no hay operación de apertura) 
y definiendo la DS como LikeRec(NombreRegistro)

Un saludo.

Juan Carlos

---
https://paredes.info
juancar...@paredes.info

> 2018 09:20:04 +0100
> From: "alberto" <alberto.marti...@roler.es>
> Subject: Registro externo en procedimiento
> To: "forum.help400" <forum.help400@listas.combios.es>
> Message-ID:
> 
> <ofe4c8c25e.48325279-onc1258361.002c3094-c1258361.002dc...@arcadie.es>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Hola Foro.
> Me ha surgido una cosa nueva, que a ver cómo lo resolvéis vosotros:
> tengo definido dos registros externos como tal:
>      D  @regext      E DS                  EXTNAME(FESDTO)      ?
>      D  Cliexclos            107    601s 0 DIM(99)      ?
>      D               E DS                  EXTNAME(LARTTF1)      ?
>      D  TARE                  10    405P 3 DIM(99)
> 
> El segundo lo hago servir en el cuerpo principal del programa, y el
> primero @regext lo hago servir en un procedimiento, para me de el
> resultado de un Select *  y me cree un array con los campos que hay en
> 
> esas posiciones.
> En el procedimiento lo tengo definido así:
>  d@REG             DS                  lIKEDS(@REGEXT)
>       ..............
>    Exec SQL Fetch Next From @cursor into :@reg;
> Supongo que esto lo habéis hecho servir muchos de vosotros.
> El caso es que al compilar me da error en el que paso como parámetro.
> Del
> que hay en el cuerpo principal no se queja, pero con el otro no me
> deja
> compilar.
> En el procedimiento lo tengo definido como he dicho antes, pero vamos,
> que
> ya he probado varias combinaciones diferentes y no hay manera.
> Como muy poco, me da un error de nivel 20.pero no voy a aburrir con
> los
> errores diferentes que me da al compilar.
> Alguien se ha encontrado con algo parecido?
> Supongo que lo más rápido es pasar del procedimiento y hacer una
> subrutina
> de las de toda la vida, pero seguro que IBM ha resuelto esto y no me
> lo ha
> dicho.
> Saludos
> 
> El mié., 12 dic. 2018 a las 5:01,
> <forum.help400-requ...@listas.combios.es> escribió:
> 
>> Envíe los mensajes para la lista Forum.help400 a
>> forum.help400@listas.combios.es
>> 
>> Para subscribirse o anular su subscripción a través de la WEB
>> 
>> http://listas.combios.es/cgi-bin/mailman/listinfo/forum.help400
>> 
>> O por correo electrónico, enviando un mensaje con el texto "help"
>> en
>> el asunto (subject) o en el cuerpo a:
>> forum.help400-requ...@listas.combios.es
>> 
>> Puede contactar con el responsable de la lista escribiendo a:
>> forum.help400-ow...@listas.combios.es
>> 
>> Si responde a algún contenido de este mensaje, por favor, edite la
>> linea del asunto (subject) para que el texto sea mas especifico que:
>> "Re: Contents of Forum.help400 digest...". Además, por favor,
>> incluya
>> en la respuesta sólo aquellas partes del mensaje a las que está
>> respondiendo.
>> 
>> Asuntos del día:
>> 
>> 1. Registro externo en procedimiento (alberto)
>> 2. Re: Registro externo en procedimiento (Alex Martínez)
>> 3. RE: Registro externo en procedimiento (Javier Mora)
>> 4. Registro externo en procedimiento (alberto)
>> 
>> 
> ----------------------------------------------------------------------
>> 
>> Message: 1
>> Date: Wed, 12 Dec 2018 09:20:04 +0100
>> From: "alberto" <alberto.marti...@roler.es>
>> Subject: Registro externo en procedimiento
>> To: "forum.help400" <forum.help400@listas.combios.es>
>> Message-ID:
>> 
>> 
> <ofe4c8c25e.48325279-onc1258361.002c3094-c1258361.002dc...@arcadie.es>
>> Content-Type: text/plain; charset="iso-8859-1"
>> 
>> Hola Foro.
>> Me ha surgido una cosa nueva, que a ver cómo lo resolvéis
>> vosotros:
>> tengo definido dos registros externos como tal:
>> D  @regext      E DS                  EXTNAME(FESDTO)      ?
>> D  Cliexclos            107    601s 0 DIM(99)      ?
>> D               E DS                  EXTNAME(LARTTF1)      ?
>> D  TARE                  10    405P 3 DIM(99)
>> 
>> El segundo lo hago servir en el cuerpo principal del programa, y el
>> primero @regext lo hago servir en un procedimiento, para me de el
>> resultado de un Select *  y me cree un array con los campos que hay
>> en
>> esas posiciones.
>> En el procedimiento lo tengo definido así:
>> d@REG             DS                  lIKEDS(@REGEXT)
>> ..............
>> Exec SQL Fetch Next From @cursor into :@reg;
>> Supongo que esto lo habéis hecho servir muchos de vosotros.
>> El caso es que al compilar me da error en el que paso como
>> parámetro. Del
>> que hay en el cuerpo principal no se queja, pero con el otro no me
>> deja
>> compilar.
>> En el procedimiento lo tengo definido como he dicho antes, pero
>> vamos, que
>> ya he probado varias combinaciones diferentes y no hay manera.
>> Como muy poco, me da un error de nivel 20.pero no voy a aburrir con
>> los
>> errores diferentes que me da al compilar.
>> Alguien se ha encontrado con algo parecido?
>> Supongo que lo más rápido es pasar del procedimiento y hacer una
>> subrutina
>> de las de toda la vida, pero seguro que IBM ha resuelto esto y no me
>> lo ha
>> dicho.
>> Saludos
>> ------------ próxima parte ------------
>> Se ha borrado un adjunto en formato HTML...
>> URL:
>> 
> <
http://listas.combios.es/cgi-bin/mailman/private/forum.help400/attachments/20181212/065c3451/attachment-0001.html
>
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Wed, 12 Dec 2018 09:35:22 +0100
>> From: Alex Martínez <ajut...@gmail.com>
>> Subject: Re: Registro externo en procedimiento
>> To: "forum.help400" <forum.help400@listas.combios.es>
>> Message-ID:
>> 
>> <caecncbq7zsrfyene_dgygtgbnwyia1hoexmvf9cquyaa2bb...@mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Hola
>> 
>> Aquí puede influir bastante el nivel del compilador, pero haz la
>> prueba de
>> añadir QUALIFIED en la definción de la DS @reg
>> 
>> El mié., 12 dic. 2018 a las 9:23, alberto
>> (<alberto.marti...@roler.es>)
>> escribió:
>> 
>>> Hola Foro.
>>> Me ha surgido una cosa nueva, que a ver cómo lo resolvéis
>> vosotros:
>>> tengo definido dos registros externos como tal:
>>> D  @regext      E DS                  EXTNAME(FESDTO)
>>> ?
>>> D  Cliexclos            107    601s 0 DIM(99)
>>> ?
>>> D               E DS                  EXTNAME(LARTTF1)
>>> ?
>>> D  TARE                  10    405P 3 DIM(99)
>>> 
>>> El segundo lo hago servir en el cuerpo principal del programa, y
>> el
>>> primero @regext lo hago servir en un procedimiento, para me de el
>> resultado
>>> de un Select *  y me cree un array con los campos que hay en esas
>>> posiciones.
>>> En el procedimiento lo tengo definido así:
>>> d@REG             DS                  lIKEDS(@REGEXT)
>>> ..............
>>> Exec SQL Fetch Next From @cursor into :@reg;
>>> Supongo que esto lo habéis hecho servir muchos de vosotros.
>>> El caso es que al compilar me da error en el que paso como
>> parámetro. Del
>>> que hay en el cuerpo principal no se queja, pero con el otro no me
>> deja
>>> compilar.
>>> En el procedimiento lo tengo definido como he dicho antes, pero
>> vamos, que
>>> ya he probado varias combinaciones diferentes y no hay manera.
>>> Como muy poco, me da un error de nivel 20.pero no voy a aburrir
>> con los
>>> errores diferentes que me da al compilar.
>>> Alguien se ha encontrado con algo parecido?
>>> Supongo que lo más rápido es pasar del procedimiento y hacer una
>> subrutina
>>> de las de toda la vida, pero seguro que IBM ha resuelto esto y no
>> me lo ha
>>> dicho.
>>> Saludos
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd
>> )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>> ------------ próxima parte ------------
>> Se ha borrado un adjunto en formato HTML...
>> URL:
>> 
> <
http://listas.combios.es/cgi-bin/mailman/private/forum.help400/attachments/20181212/19223578/attachment-0001.htm
>
>> 
>> ------------------------------
>> 
>> Message: 3
>> Date: Wed, 12 Dec 2018 08:53:44 +0000
>> From: Javier Mora <jm...@musgrave.es>
>> Subject: RE: Registro externo en procedimiento
>> To: "forum.help400" <forum.help400@listas.combios.es>
>> Message-ID:
>> <a67e9e3cc7d5489abc822394b3a74aff@SRVCORREO.dominio.local>
>> Content-Type: text/plain; charset="iso-8859-1"
>> 
>> ¿Puedes poner el mensaje de error de compilación y en qué
>> sentencia? ¿En qué versión de sistema operativo estás?
>> 
>> El precompilador de SQL para ILE RPG no anda muy fino y depende de
>> cómo estén definidos los campos y estructuras te genera errores
>> del tipo "no utilizable". Creo (de memoria) que en las últimas
>> versiones del compilador (PTFs) este tema está solucionado, aunque
>> no estoy muy seguro.
>> 
>> Javier Mora
>> 
>> De: forum.help400-boun...@listas.combios.es
>> [mailto:forum.help400-boun...@listas.combios.es] En nombre de
>> alberto
>> Enviado el: miércoles, 12 de diciembre de 2018 9:20
>> Para: forum.help400
>> Asunto: Registro externo en procedimiento
>> 
>> Hola Foro.
>> Me ha surgido una cosa nueva, que a ver cómo lo resolvéis
>> vosotros:
>> tengo definido dos registros externos como tal:
>> D  @regext      E DS                  EXTNAME(FESDTO)
>> ?
>> D  Cliexclos            107    601s 0 DIM(99)
>> ?
>> D               E DS                  EXTNAME(LARTTF1)
>> ?
>> D  TARE                  10    405P 3 DIM(99)
>> 
>> El segundo lo hago servir en el cuerpo principal del programa, y el
>> primero @regext lo hago servir en un procedimiento, para me de el
>> resultado de un Select *  y me cree un array con los campos que hay
>> en esas posiciones.
>> En el procedimiento lo tengo definido así:
>> d@REG             DS                  lIKEDS(@REGEXT)
>> ..............
>> Exec SQL Fetch Next From @cursor into :@reg;
>> Supongo que esto lo habéis hecho servir muchos de vosotros.
>> El caso es que al compilar me da error en el que paso como
>> parámetro. Del que hay en el cuerpo principal no se queja, pero con
>> el otro no me deja compilar.
>> En el procedimiento lo tengo definido como he dicho antes, pero
>> vamos, que ya he probado varias combinaciones diferentes y no hay
>> manera.
>> Como muy poco, me da un error de nivel 20.pero no voy a aburrir con
>> los errores diferentes que me da al compilar.
>> Alguien se ha encontrado con algo parecido?
>> Supongo que lo más rápido es pasar del procedimiento y hacer una
>> subrutina de las de toda la vida, pero seguro que IBM ha resuelto
>> esto y no me lo ha dicho.
>> Saludos
>> ------------ próxima parte ------------
>> Se ha borrado un adjunto en formato HTML...
>> URL:
>> 
> <
http://listas.combios.es/cgi-bin/mailman/private/forum.help400/attachments/20181212/9934a98c/attachment-0001.htm
>
>> 
>> ------------------------------
>> 
>> Message: 4
>> Date: Wed, 12 Dec 2018 11:00:12 +0100
>> From: "alberto" <alberto.marti...@roler.es>
>> Subject: Registro externo en procedimiento
>> To: "forum.help400" <forum.help400@listas.combios.es>
>> Message-ID:
>> 
>> 
> <offb9430b4.e6c3c323-onc1258361.0035d63c-c1258361.0036e...@arcadie.es>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Alex, Javier, os respondo a los dos en el mismo email:
>> Este es mi AS de desarrollo, que está en V6r1(espero que por poco
>> tiempo).
>> Luego si puedo me pasaré el fuente al de producción (V7R1) y lo
>> intentaré
>> compilar.
>> Alex: no, con qualified me da el mismo error, ya lo había probado.
>> :(
>> tampoco me deja ponerlo despues del LikeDS.
>> Javier: Pues el error depende, porque he probado varias
>> combinaciones. En
>> el caso del ejemplo que he enviado, el error es directamente de SQL
>> diciendo que la variable @Reg no existe,
>> cuando ya véis que la estoy definiendo como Likeds.
>> Si por ejemplo defino el array dentro del procedimiento,  tal que
>> así:
>> d@REG             DS                  lIKEDS(@REGEXT)
>> D  Cliexclos            107    601s 0 DIM(99)
>> me da estos 3 errores:
>> *RNF0503 20      1 La longitud del elemento numérico es de más de
>> 63
>> dígitos;
>> toma el valor por omisión de 63.
>> *RNF3602 20      1 La entrada no está en blanco para una
>> definición de
>> campo;
>> toma el valor por omisión de blancos.
>> *RNF3703 20      1 No se ha especificado el subcampo o la
>> definición de
>> parámetro en un grupo.
>> 
>> De:     "Javier Mora" <jm...@musgrave.es>
>> Para:   "forum.help400" <forum.help400@listas.combios.es>
>> Fecha:  12/12/2018 10:06
>> Asunto: ** Newsletter ** RE: Registro externo en procedimiento
>> Enviado por:    forum.help400-boun...@listas.combios.es
>> 
>> ¿Puedes poner el mensaje de error de compilación y en qué
>> sentencia? ¿En
>> qué versión de sistema operativo estás?
>> 
>> El precompilador de SQL para ILE RPG no anda muy fino y depende de
>> cómo
>> estén definidos los campos y estructuras te genera errores del tipo
>> ?no
>> utilizable?. Creo (de memoria) que en las últimas versiones del
>> compilador
>> (PTFs) este tema está solucionado, aunque no estoy muy seguro.
>> 
>> Javier Mora
>> 
>> De: forum.help400-boun...@listas.combios.es [
>> mailto:forum.help400-boun...@listas.combios.es] En nombre de alberto
>> Enviado el: miércoles, 12 de diciembre de 2018 9:20
>> Para: forum.help400
>> Asunto: Registro externo en procedimiento
>> 
>> Hola Foro.
>> Me ha surgido una cosa nueva, que a ver cómo lo resolvéis
>> vosotros:
>> tengo definido dos registros externos como tal:
>> D  @regext      E DS                  EXTNAME(FESDTO)      ?
>> D  Cliexclos            107    601s 0 DIM(99)      ?
>> D               E DS                  EXTNAME(LARTTF1)      ?
>> D  TARE                  10    405P 3 DIM(99)
>> 
>> El segundo lo hago servir en el cuerpo principal del programa, y el
>> primero @regext lo hago servir en un procedimiento, para me de el
>> resultado de un Select *  y me cree un array con los campos que hay
>> en
>> esas posiciones.
>> En el procedimiento lo tengo definido así:
>> d@REG             DS                  lIKEDS(@REGEXT)
>> ..............
>> Exec SQL Fetch Next From @cursor into :@reg;
>> Supongo que esto lo habéis hecho servir muchos de vosotros.
>> El caso es que al compilar me da error en el que paso como
>> parámetro. Del
>> que hay en el cuerpo principal no se queja, pero con el otro no me
>> deja
>> compilar.
>> En el procedimiento lo tengo definido como he dicho antes, pero
>> vamos, que
>> ya he probado varias combinaciones diferentes y no hay manera.
>> Como muy poco, me da un error de nivel 20.pero no voy a aburrir con
>> los
>> errores diferentes que me da al compilar.
>> Alguien se ha encontrado con algo parecido?
>> Supongo que lo más rápido es pasar del procedimiento y hacer una
>> subrutina
>> de las de toda la vida, pero seguro que IBM ha resuelto esto y no me
>> lo ha
>> dicho.
>> Saludos ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>> 
>> ------------ próxima parte ------------
>> Se ha borrado un adjunto en formato HTML...
>> URL:
>> 
> <
http://listas.combios.es/cgi-bin/mailman/private/forum.help400/attachments/20181212/1c41c4fa/attachment.htm
>
>> 
>> ------------------------------
>> 
>> __________________________________________________
>> Forum.HELP400 es un servicio m&amp;amp;#225;s de ServerNEWS.
>> &amp;amp;#169; Publicaciones Help400, S.L. - Todos los derechos
>> reservados
>> http://www.help400.es
>> _____________________________________________________
>> 
>> Para darte de baja visita la siguente URL:
>> http://listas.combios.es/mailman/listinfo/forum.help400
>> 
>> Fin de Resumen de Forum.help400, Vol 146, Envío 9
>> *************************************************
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a