Hola a todos:

Adjunto os envio un sencillo y simple programa de servicio y un CL, suficiente para demostrar un problema que tambien se me da en otros *SRVPGM mas complejos que estoy utilizando.

El problema consiste en que una vez que el programa de servicio ha sido activado (alguien lo llama) no refleja ningun cambio de fecha de sesi�n mediante un CHGJOB JOB(*) DATE(ddmmaa) y como resultado de ello cualquier referencia posterior a UDATE dentro de dicho programa de servicio toma como valor la fecha de sesion inicial.

Probar a ejecutarlo y vereis como el segundo y siguientes CHGJOB de fecha no tiene efecto.

El *SRVPGM TESTUDATE visualiza la fecha de la sesion UDATE en la funcion DarFecha.

EL CL TESTCL solicita un CHGJOB DATE(ddmmaa) y despues llama la funci�n DarFecha. Para finalizar hay q pulsar F12 en CHGJOB.

�alguna idea d como conseguir q el *SRVPGM se "entere" que se ha cambiado la fecha de sesi�n? La opci�n de reprogramar el programa de servicio puede resultarme muy costosa: tened en cuenta que esto es un ejemplo y los verdaderos programas de servicio donde se da este programa son varios y utilizados por cientos de programas...

�alguna forma de descargar y volver a carga un *SRVPGM? �Como refrescarlo?

Para compilar seguir los siguientes pasos:

CRTRPGMOD MODULE(libl/TESTUDATE) SRCFILE(LIB/QRPGLESRC)

CRTSRVPGM SRVPGM(libl/TESTUDATE) MODULE(libl/TESTUDATE)

CRTCLMOD MODULE(libl/TESTCL) SRCFILE(libl/QCLLESRC) SRCMBR(TESTCL)

CRTPGM PGM(libl/TESTCL) MODULE(libl/TESTCL) BNDSRVPGM(libl/TESTUDATE)

Un saludo
--------------------------
De todo sobre el AS/400 en
http://www.ajut400.com




_________________________________________________________________
�nete al mayor servicio mundial de correo electr�nico: http://www.hotmail.com
            PGM
REPETIR:
            ?          CHGJOB ?*JOB(*) ??DATE(*same)
            MONMSG     MSGID(CPF6801) EXEC(RETURN)

            CALLPRC    PRC(darfecha)

            GOTO       CMDLBL(REPETIR)

            ENDPGM

    h nomain datedit(*DMY.)

    d DarFecha        pr

    p DarFecha        b                   Export
    d                 pi

    D Mensaje         s             50    inz('La fecha de sesion es:')

    D MsgLen          s              9b 0
    D MsgId           s              7    inz(' ')
    D Msgf            s             20    inz
    D ErrCod          s             10u 0 inz(0)

    c                   eval      Mensaje = %trim(Mensaje) + ' ' +
    c                             %editc( udate : 'Y' )

    c                   eval      MsgLen = %size( Mensaje )

    C                   call      'QUILNGTX'
    C                   parm                    Mensaje
    C                   parm                    MsgLen
    C                   parm                    MsgId
    C                   parm                    Msgf
    C                   parm                    ErrCod

    p                 e


Responder a