No, ya los borr� cuando cree los m�dulos. -----Mensaje original----- De: Pinedo Pedro [mailto:pedro.pinedo@;amcor-flexibles-europe.com] Enviado el: jueves, 24 de octubre de 2002 10:41 Para: [EMAIL PROTECTED] Asunto: RE: Llamada entre dos Procedimientos ILE.
�No se habran quedado los *pgm sin borrar y daran problemas? Pedro Pinedo Analista-Programador Amcor Flexibles Europa Tobepal Logro�o (Espa�a) [EMAIL PROTECTED] > -----Mensaje original----- > De: Sergi Yague [SMTP:[EMAIL PROTECTED]] > Enviado el: jueves, 24 de octubre de 2002 08:14 > Para: [EMAIL PROTECTED] > Asunto: RE: Llamada entre dos Procedimientos ILE. > > > El principal problema es que casca en el Modulo "A". Comento que no puedo ver el >Modulo "B" en el debug, porque supongo que es un s�ntoma de que algo no hago bien. >Ambos m�dulos, primero los he creado como *PGM y funcionaban correctamente, el >problema me ha surgido cuando los he transformado a *MODULE, le estoy pasando el >debug, y yo dir�a que lo que esta pasando, no se corresponde con el problema que >realmente debo tener. Si desde el modulo "A" llamo al "B" con un CALLB, no recibo >bien el par�metro, pero en cambio si que consigo ver con el debug el programa que >llama al modulo "A", el modulo "A" y el modulo "B". Me casca concretamente porque >intenta grabar un registro duplicado en el subfichero, cuando es la primera vez que >entra a grabar en el subfichero. El primer programa de tipo *PGM solo lo tengo >temporalmente, para probar ambos modulos. > > Gracias por vuestra comprensi�n. > > -----Mensaje original----- > De: [EMAIL PROTECTED] [mailto:Alex.Corretge@;Frape.Behrgroup.COM] > Enviado el: jueves, 24 de octubre de 2002 8:50 > Para: [EMAIL PROTECTED] > Asunto: RE: Llamada entre dos Procedimientos ILE. > > > Hola Sergi, por lo que comentas entiendo que el *PGM est� correctamente > enlazado con la �ltima versi�n de *MODULE que tienes. Y el problema lo > tienes en que no puedes ver el debug? > > En modalidad de debug haz DSPMODSRC y te mostrar� el fuente que est�s > debugando, por omisi�n el *EntryPoint del *PGM, con F14=Trabajar con lista > de m�dulos puedes seleccionar los fuentes de otros m�dulos del mismo > programa o de otros programas y a�adirle break-points. > > Si est�s haciendo un trace con F10, para ver lo que sucede en el interior > de los m�dulos has de apretar F22=Ejecuci�n pasos internos y entonces te > vas pasando por los fuentes de todos los m�dulos. > > Bueno no se si me he explicado bi�n, bueno de hecho no se ni si te he > entendio y estoy respondiendo a lo que tu preguntas... me falta otro caf� ; > -) > > fins aviat.... > �lex Corretg� > > > > > > > "Sergi Yague" <[EMAIL PROTECTED]>@QUIJOTE.COMBIOS.ES con fecha 23/10/2002 > 17:46:33 > > Por favor, responda a [EMAIL PROTECTED] > > Tram�s per: [EMAIL PROTECTED] > > > Destinataris: <[EMAIL PROTECTED]> > C�pia: > > Classificat: |----------------| > | ( ) Important | > | ( ) urgent | > | ( ) hist�ric | > | ( ) temporal | > | ( ) bretolada | > | ( ) particular | > |----------------| > Assumpte: RE: Llamada entre dos Procedimientos ILE. > > > > > Lo he montado de la siguiente manera: > > El primer programa es temporal, es de tipo *PGM creado con un CRTBNDRPG = > y lo unico que hace es pasar por parametro al primer modulo "A" las = > sentencias SQL. > > /COPY NEWAPLICA/QPROTOSRC,PTCABDET > DSENTENCIA S 100A > DRETORN S 1A > * > * > C EVAL SENTENCIA =3D 'SELECT CPENUCPED, = > CPCLIEPED, + > C CPNPECPED, CPNOMEPED + > C FROM NEWAPLICA/PFCABEPEDI' > C EVAL RETORN =3D PR_CABDET(SENTENCIA) > C EVAL *INLR =3D *ON > =1A > > El modulo "A" muestra un fichero de cabeceras en un subfichero. Lo he = > creado con un CRTSQLRPGI con *MODULE. Como retorna un parametro la = > llamada el modulo "B" la hago con una asignaci=F3n.> > > MODULA "A" > ******************************************************** > * 20/10/2002 Sergi. * > * PGM PARA MOTRAR TODAS LAS CABECERAS DEL FICHERO * > * PFCABEPEDI Y POR CADA CABECERA MUESTRA EL DETALLE * > * DEL FICHERO PFDETAPEDI. * > ******************************************************** > HDATEDIT(*DMY/) BNDDIR('DIENLACE01') > * > FPTCABDET CF E WORKSTN > F SFILE(SFLSFL:NRR) > F INDDS(Indicadores) > * > /COPY NEWAPLICA/QESTRUCSRC,ESINDICADO > D ActivarPagi N OVERLAY(Indicadores:80) > D Noizq N OVERLAY(Indicadores:82) > D Noder N OVERLAY(Indicadores:83) > D DeleteSfl N OVERLAY(Indicadores:91) > D HayRegSfl1 N OVERLAY(Indicadores:97) > D HayRegSfl3 N OVERLAY(Indicadores:98) > D Arriba N OVERLAY(Indicadores:17) > D Abajo N OVERLAY(Indicadores:18) > D MostrarPie N OVERLAY(Indicadores:66) > * > D NRR S 5S 0 > D SSQL S 100A > /COPY NEWAPLICA/QPROTOSRC,PTCABDET > /COPY NEWAPLICA/QPROTOSRC,PTCABDET1 > PPR_CABDET B EXPORT > DPR_CABDET PI 1A > D SentenciaSql 100A VALUE > * > D PPSALIR S 1A INZ('N') > * > C/EXEC SQL PREPARE S1 FROM :SentenciaSql > C/END-EXEC > * > C/EXEC SQL > C+ DECLARE CUR1 DYNAMIC SCROLL CURSOR FOR S1 > C/END-EXEC > * > * BLOQUE PRINCIPAL > * > C MOVEL *BLANKS XLIBXFIL 20 > C MOVEL *BLANKS PMBR 10 > C EXSR DLTSFL > C EXSR OBRECURFIT > C EXSR LLEGIRFIT > C EXSR TANCARFI > C IF NRR > 0 > C EVAL HayRegSfl1 =3D *ON > C ELSE > C EVAL HayRegSfl1 =3D *OFF > C ENDIF > C EVAL MOSTRARPIE =3D *ON > C WRITE PIE > C EXFMT SFLCTL > C DOW NOT Salir > C IF MdtoSistema > C CALL 'QUSCMDLN' > C ENDIF > C EXSR TRATASFL3 > C IF PPSALIR =3D 'S' > C LEAVE > C ELSE > C WRITE PIE > C EXFMT SFLCTL > C ENDIF > C ENDDO > C RETURN 'A' > * > * Fin de programa > * > C MOVE *ON *INLR > ******************************************************** > * Subrutina para declarar cursor para PFCABEPEDI * > ******************************************************** > C OBRECURFIT BEGSR > * > C/EXEC SQL > C+ OPEN CUR1 > C/END-EXEC > * > C ENDSR > ******************************************************** > * Subrutina para cargar los registros recuperados * > ******************************************************** > C LLEGIRFIT BEGSR > C DO 9999 > C/EXEC SQL > C+ FETCH NEXT FROM CUR1 INTO :PPENUCPED, > C+ :PPCLIEPED,> > C+ :PPNPECPED, > C+ :PPNOMEPED > C/END-EXEC > C SQLSTT IFEQ '02000' > C LEAVE > C ENDIF > * > C* EVAL PPENUCPED =3D WPENUCPED > C* EVAL PPCLIEPED =3D WPCLIEPED > C* EVAL PPNPECPED =3D WPNPECPED > C* EVAL PPNOMEPED =3D WPNOMEPED > C ADD 1 NRR > C WRITE SFLSFL > * > C ENDDO > * > C ENDSR > ******************************************************** > * Subrutina para cerrar los cursores utilizados * > ******************************************************** > C TANCARFI BEGSR > C/EXEC SQL > C+ CLOSE CUR1 > C/END-EXEC > C ENDSR > ********************************************************** > * Subrutina para tratar selecci=A2n detalle de una CABECERA* > ********************************************************** > C TRATASFL3 BEGSR > * > C READC SFLSFL = > 95 > C EVAL PPSALIR =3D 'N' > C DOW NOT *IN95 AND PPSALIR =3D 'N' > C IF PSELEC =3D 'X' > C EXSR SENTENCIES > C EVAL PPSALIR =3D PR_CABDET1(SSQL) > C ELSE > C LEAVE > C ENDIF > C EVAL Anterior =3D *OFF > C EVAL PSELEC =3D ' ' > C UPDATE SFLSFL > C READC SFLSFL = > 95 > C ENDDO > > C ENDSR > ******************************************************** > * Subrutina para cerrar los cursores utilizados * > ******************************************************** > C SENTENCIES BEGSR > C > C > C EVAL SSQL =3D 'SELECT DPENPEPED, = > DPNUMFPED,+ > C DPCODPPED, DPCANTPED, DPPRECPED, + > C DPIMPOPED, DPDTOCPED, DPCONCPED, + > C DPFOPAPED, DPIVAAPED FROM + > C NEWAPLICA/PFDETAPEDI WHERE + > C PPENUCPED =3D DPENUCPED' > C ENDSR > ******************************************************** > * Subrutina para inicializar el subfichero * > ******************************************************** > C DLTSFL BEGSR > C IF NRR > 0 > C EVAL DeleteSfl =3D *ON > C Z-ADD 0 NRR 5 0 > C WRITE SFLCTL > C EVAL DeleteSfl =3D *OFF > C ENDIF > C ENDSR > PPR_CABDET E > =1A > > Para cada cabecera el modulo "B" muestra su detalle en otro subfichero. > Esta creado de la misma manera que el modulo "A". Al pasarle el debug, = > no consigo ver el modulo "B". La unica manera de poder ver los dos = > mudulos es llamando el modulo "B" con un CALLB, lo que passa es que el = > parametro no se passa correctamente. =09 > =09 > Modulo "B"=20 > > ******************************************************** > * 20/10/2002 Sergi. * > * PGM PARA MOTRAR TODAS LAS CABECERAS DEL FICHERO * > * PFCABEPEDI Y POR CADA CABECERA MUESTRA EL DETALLE * > * DEL FICHERO PFDETAPEDI. *> > ******************************************************** > * > F*IFICHERO IF E K DISK USROPN > F* EXTFILE(XLIBXFIL) = > EXTMBR(PMBR) > FPFDETAPEDIIF E K DISK > FPTCABDET CF E WORKSTN > F SFILE(SFLSFL2:NRR2) > F INDDS(Indicadores) > D NRR2 S 5S 0 > /COPY NEWAPLICA/QESTRUCSRC,ESINDICADO > D ActivarPagi N OVERLAY(Indicadores:80) > D Noizq N OVERLAY(Indicadores:82) > D Noder N OVERLAY(Indicadores:83) > D DeleteSfl N OVERLAY(Indicadores:91) > D HayRegSfl2 N OVERLAY(Indicadores:98) > D Arriba N OVERLAY(Indicadores:17) > D Abajo N OVERLAY(Indicadores:18) > D MostrarPie N OVERLAY(Indicadores:65) > * > /COPY NEWAPLICA/QPROTOSRC,PTCABDET1 > PPR_CABDET1 B EXPORT > DPR_CABDET1 PI 1A > D SentenciaSql 100A VALUE > * > D WPENPEPED S 7S 0 > D WPNUMFPED S 7A > D WPCODPPED S 7A > D WPCANTPED S 5S 0 > D WPPRECPED S 8S 2 > D WPIMPOPED S 11S 2 > D WPDTOCPED S 5S 2 > D WPCONCPED S 4A > D WPFOPAPED S 2A > D WPIVAAPED S 5S 2 > * > D PSALIR S 1A > * > * BLOQUE PRINCIPAL > * > C MOVEL *BLANKS XLIBXFIL 20 > C MOVEL *BLANKS PMBR 10 > C*** EVAL XLIBXFIL =3D 'NEWAPLICA/PFDETAPEDI' > C*** EVAL PMBR =3D 'PFDETAPEDI' > C* OPEN MIFICHERO > C EXSR OBRECURFIT > C EXSR LLEGIRFIT > C EXSR TANCARFI > C IF NRR2 > 0 > C EVAL HayRegSfl2 =3D *ON > C ELSE > C EVAL HayRegSfl2 =3D *OFF > C ENDIF > C IF NOT SALIR AND NOT ANTERIOR > C IF HAYREGSFL2 > C EXSR TRATASFL3 > C ENDIF > C WRITE PIE > C EXFMT SFLCTL2 > C IF MdtoSistema > C CALL 'QUSCMDLN' > C ENDIF > C ENDIF > C IF SALIR > C EVAL PSALIR =3D 'S' > C ENDIF > C EXSR DLTSFL > C RETURN PSALIR > * > * Fin de programa > * > C MOVE *ON *INLR > ******************************************************** > * Subrutina para declarar cursor para PFDETAPEDI * > ******************************************************** > C OBRECURFIT BEGSR > * > C/EXEC SQL PREPARE S1 FROM :SentenciaSql > C/END-EXEC > * > C/EXEC SQL > C+ DECLARE CUR2 DYNAMIC SCROLL CURSOR FOR S1 > C/END-EXEC > * > C/EXEC SQL > C+ OPEN CUR2 > C/END-EXEC > * > C ENDSR > ******************************************************** > * Subrutina para cargar los registros recuperados * > ********************************************************> > C LLEGIRFIT BEGSR > C DO 9999 > C/EXEC SQL > C+ FETCH NEXT FROM CUR2 INTO :WPENPEPED, > C+ :WPNUMFPED, > C+ :WPCODPPED, > C+ :WPCANTPED, > C+ :WPPRECPED, > C+ :WPIMPOPED, > C+ :WPDTOCPED, > C+ :WPCONCPED, > C+ :WPFOPAPED, > C+ :WPIVAAPED > C/END-EXEC > C SQLSTT IFEQ '02000' > C LEAVE > C ENDIF > * > C EVAL PPENPEPED =3D WPENPEPED > C EVAL PPNUMFPED =3D WPNUMFPED > C EVAL PPCODPPED =3D WPCODPPED > C EVAL PPCANTPED =3D WPCANTPED > C EVAL PPPRECPED =3D WPPRECPED > C EVAL PPIMPOPED =3D WPIMPOPED > C EVAL PPDTOCPED =3D WPDTOCPED > C EVAL PPCONCPED =3D WPCONCPED > C EVAL PPFOPAPED =3D WPFOPAPED > C EVAL PPIVAAPED =3D WPIVAAPED > C ADD 1 NRR2 > C WRITE SFLSFL2 > * > C ENDDO > * > C ENDSR > ******************************************************** > * Subrutina para cerrar los cursores utilizados * > ******************************************************** > C TANCARFI BEGSR > C/EXEC SQL > C+ CLOSE CUR2 > C/END-EXEC > C ENDSR > ********************************************************** > * Subrutina para tratar selecci=A2n detalle de una * > ********************************************************** > C TRATASFL3 BEGSR > * > C READC SFLSFL2 = > 95 > C DOW NOT *IN95 > C IF PSELEC =3D 'X' > C* CALL 'PGDETALLE' > C IF NOT SALIR > C EVAL Anterior =3D *OFF > C EVAL PSELEC =3D ' ' > C UPDATE SFLSFL2 > C READC SFLSFL2 = > 95 > C ELSE > C LEAVE > C ENDIF > C ENDIF > C ENDDO > > C ENDSR > ******************************************************** > * Subrutina para inicializar el subfichero * > ******************************************************** > C DLTSFL BEGSR > C IF NRR2 > 0 > C EVAL DeleteSfl =3D *ON > C Z-ADD 0 NRR2 5 0 > C WRITE SFLCTL > C EVAL DeleteSfl =3D *OFF > C ENDIF > C ENDSR > PPR_CABDET1 E > =1A > > =BFCu=E1l debo utilizar? =BFcallB? =BFLa asignaci=F3n? Os recuerdo que = > los dos modulos primero los cree como tipo *PGM, y estan bien probados y = > funcionan. Siento enviar los fuentes, y una explicaci=F3n tan larga, = > pero es que estoy deseperado y fustrado. > > Muchas gracias por las molestias. > > _____________________________________________________ > Forum.HELP400 es un servicio m�s de NEWS/400. > � Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________> > > Para darte de baja, env�a el mensaje resultante de pulsar > mailto:forum.help400-request@;combios.es?body=LEAVE > > > > > > > > _____________________________________________________ > Forum.HELP400 es un servicio m�s de NEWS/400. > � Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja, env�a el mensaje resultante de pulsar > mailto:forum.help400-request@;combios.es?body=AVE > > _____________________________________________________ > Forum.HELP400 es un servicio m�s de NEWS/400. > � Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja, env�a el mensaje resultante de pulsar > mailto:forum.help400-request@;combios.es?body=LEAVE _____________________________________________________________________ AMCOR FLEXIBLES EUROPE - LEADING THROUGH INNOVATION _____________________________________________________________________ CAUTION - This message may contain privileged and confidential information intended only for the use of the addressee named above. If you are not the intended recipient of this message you are hereby notified that any use, dissemination, distribution or reproduction of this message is prohibited. If you have received this message in error please notify AMCOR FLEXIBLES EUROPE immediately. Any views expressed in this message are those of the individual sender and may not necessarily reflect the views of AMCOR FLEXIBLES EUROPE. _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:forum.help400-request@;combios.es?body=AVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:forum.help400-request@;combios.es?body=LEAVE
