Programa con ALV lanzado en fondo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • cramr
    Member
    • oct
    • 68

    #1

    Programa con ALV lanzado en fondo

    Buenas tardes,

    Veréis, tengo un programa que hace una carga/modificación de equipos. Debo mostrar al final de la ejecución un log indicando el equipo, si ha ido bien, si ha surgido un error, descripción del error.

    La cuestión es que como se desea que el log tenga el formato en cuestión, con esos campos en concreto, me veo obligado a utilizar un ALV y no una estructura del tipo BAPIRET2, por ejemplo.

    Si lo lanzo online, me lo muestra correctamente. Si lo lanzo en fondo, me genera una orden spool, pero en un campo me muestra correctamente sus datos, pero en otro campos, ambos definidos igual, de tipo CHAR, no se por que, pero no me muestra ningún valor.

    Alguna idea de como solucionar esto? He leido que con el GRID no sale, pero con el LIST si, pero yo ejecuto con el ALV_LIST_DISPLAY y nada. En la llamada a la función le indico los siguientes parámetros:

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = lv_repid
    IS_LAYOUT = wa_layout
    IT_FIELDCAT = wt_fieldcat
    TABLES
    t_outtab = table_log
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    .

    También he leido de asignar el valor 'A' al parámetro de salvar (SAVE) pero nada.


    Muchas gracias
  • ppchico
    Senior Member
    • oct
    • 144

    #2
    Me da a mi, que esto es un tema de la ejecución en fondo. Estás seguro que la tabla tiene informados estos campos... imaginemos que estamos creando el equipo, igual te está dando error, y no devuelve el dato de número de equipo, y por eso no lo muestra. Has probado a poner un break point de sistema y debbugear en fondo el punto donde muestras el ALV, y ver si está informado el campo??

    Me da a mi que ese dato no va a estar relleno!!

    Ya me cuentas!
    Un Saludo,
    Javier.

    Comentario

    • cramr
      Member
      • oct
      • 68

      #3
      El campo se esta informando seguro ya que es una lógica muy sencilla.

      Me estoy fijando que al pintarlo con un WRITE me pasa lo mismo. Pierde el valor de dicho campo en la tabla interna. Al lanzar online tanto con write como por alv list, me lo pinta bien, pero en fondo nada...

      Que leches puede ser?


      Gracias

      Comentario

      • Tu amo
        Member
        • oct
        • 40

        #4
        Yo tambien pienso igual que ppchico, suena a otra cosa
        Intenta un debug del job con /jdbg y ve si se llenan los campos o no

        Comentario

        • cramr
          Member
          • oct
          • 68

          #5
          vale, teneis razón...no sabía eso de debuguear un job, muchas gracias.

          Veréis, estoy intentado leer un fichero que está en local, con al función GUI_UPLOAD. Y no lo cargo. He leido que todas las funciones GUI no funcionan en fondo, o todas las que tienen la excepción NO BATCH.

          Entonces ahora tengo el dilema, si quiero leer un fichero en local, pero no puedo utilizar esta funcion en fondo, cuandos se ejecute en fondo que hago??? o entonces debería el usuario poner el fichero en cuestión siempre en el servidor?


          Muchas gracias

          Comentario

          • DCErick
            Moderator
            • mar
            • 1090

            #6
            Originalmente publicado por cramr
            vale, teneis razón...no sabía eso de debuguear un job, muchas gracias.

            Veréis, estoy intentado leer un fichero que está en local, con al función GUI_UPLOAD. Y no lo cargo. He leido que todas las funciones GUI no funcionan en fondo, o todas las que tienen la excepción NO BATCH.

            Entonces ahora tengo el dilema, si quiero leer un fichero en local, pero no puedo utilizar esta funcion en fondo, cuandos se ejecute en fondo que hago??? o entonces debería el usuario poner el fichero en cuestión siempre en el servidor?


            Muchas gracias
            Yo cuando quieor cargar archivos planos en un job uso OPEN DATASET y pues los archivos los tengo en una carpeta compartida '\\IP\CarpetaCompartida\FileName.txt'

            Saludos,
            -------------------
            ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

            Comentario

            • ppchico
              Senior Member
              • oct
              • 144

              #7
              Originalmente publicado por cramr
              vale, teneis razón...no sabía eso de debuguear un job, muchas gracias.

              Veréis, estoy intentado leer un fichero que está en local, con al función GUI_UPLOAD. Y no lo cargo. He leido que todas las funciones GUI no funcionan en fondo, o todas las que tienen la excepción NO BATCH.

              Entonces ahora tengo el dilema, si quiero leer un fichero en local, pero no puedo utilizar esta funcion en fondo, cuandos se ejecute en fondo que hago??? o entonces debería el usuario poner el fichero en cuestión siempre en el servidor?


              Muchas gracias
              Efectivamente, el proceso en fondo no puede interactuar con el equipo del usuario. Si los datos provienen de un fichero, este deberá guardarse en el servidor, o como mucho almacenarlo en una tabla... aunque es preferible el tema del servidor!

              Un Saludo,
              Javier.

              Comentario

              • cramr
                Member
                • oct
                • 68

                #8
                pues nada, segun veo que se hace con otros, como es para una unica carga, pues si se hace en fondo, se subira el fichero al servidor y listo

                Gracias

                Comentario

                Trabajando...