Write, Ayuda

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • abfv
    Senior Member
    • feb
    • 144

    #1

    Write, Ayuda

    Hola a todos, por favor si alguien me puede dar una mano ya que no se que estoy haciendo mal.

    Ejecuto un reporte que llama a una Dynpro en esta se hace un call transaction y quiero mostrar con WRITE la tabla de mensajes de errores, pero no me muestra nada, sin embargo al debuggear, la tabla tiene datos y la sentencia se ejecuta normalmente.

    Saludos a todos.
  • sconoredhot
    Senior Member
    • feb
    • 341

    #2
    Podrías pegar el código para que podamos analizar el problema?

    Gracias
    Sebas

    Desarrollador ABAP.

    Comentario

    • andyoscky
      Miembro Honorario
      • mar
      • 73

      #3
      Si queres mostrar el log de un mensaje usa mejor la funcion message prepare
      call function 'MESSAGE_PREPARE'
      exporting
      language = sy-langu
      msg_id = l_msgid
      msg_no = l_number
      importing
      msg_text = p_l_text
      exceptions
      function_not_completed = 1
      message_not_found = 2
      others = 3.

      write : / p_l_text.

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Como estas mostrando un dynpro y quieres visualizar una lista, debes dejar de lado un dialogo y pasar a un modo lista de la siguiente manera (colocarlo en el PBO)

        Código:
        SUPRESS DIALOG.
        LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
        [COLOR="Blue"]* Despues de esta sentencia comienzo a escribir[/COLOR]
        WRITE: 'Escribir en Dialogo'.
        David Carballido Córdova

        Comentario

        • abfv
          Senior Member
          • feb
          • 144

          #5
          WRITE en DYNPRO

          David, esto anda barbaro, pero puedo volver a la DYNPRO?



          Originalmente publicado por DavidXD_XD
          Como estas mostrando un dynpro y quieres visualizar una lista, debes dejar de lado un dialogo y pasar a un modo lista de la siguiente manera (colocarlo en el PBO)

          Código:
          SUPRESS DIALOG.
          LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
          [COLOR="Blue"]* Despues de esta sentencia comienzo a escribir[/COLOR]
          WRITE: 'Escribir en Dialogo'.

          Comentario

          • andyoscky
            Miembro Honorario
            • mar
            • 73

            #6
            con call screen xxx no te vuelve al dynpro ?

            Comentario

            • abfv
              Senior Member
              • feb
              • 144

              #7
              WRITE en DYNPRO

              El problema es que tengo un reporte, este luego de un select option llama a una dynpro, desde la dynpro llamo a un CALL TRANSACTION a la tx:ME22N, en este proceso se genera la tabla de mensajes de error que quiero mostrar. Con la opción que me paso David se muestra el mensaje, pero luego de salir me manda a la pantalla principal del reporte y no a la Dynpro.

              Saludos.

              Originalmente publicado por andyoscky
              con call screen xxx no te vuelve al dynpro ?

              Comentario

              • abfv
                Senior Member
                • feb
                • 144

                #8
                Gracias a todos.
                Ya está le quite "AND RETURN TO SCREEN 0" y listo

                SUPRESS DIALOG.
                LEAVE TO LIST-PROCESSING .
                * Despues de esta sentencia comienzo a escribir
                WRITE: 'Escribir en Dialogo'.

                Comentario

                • DavidXD_XD
                  Moderator
                  • ago
                  • 1255

                  #9
                  Claro que puedes ... create un status con un boton que tenga codigo de funcion RW, y volveras a la dynpro cuando lo clickees
                  David Carballido Córdova

                  Comentario

                  • Austin
                    Junior Member
                    • abr
                    • 3

                    #10
                    Si pero no...

                    Hola a tod@s!
                    Tenía muchas ganas de poder aportar (por fin) algo a este foro que tanto me ayuda ... y es lo siguiente...

                    Tras probar 1 y otra vez lo que he encontrado en este hilo... y que no me funcionara... (porque no podía volver a recuperar el control ya que el F3 ó F15 no funcionaban...) he encontrado esto en la ayuda de SAP... y es lo que realmnete me funciona...

                    DENTRO DEL PBO.

                    MODULE supress_dialog OUTPUT.

                    IF NOT gv_total IS INITIAL.
                    LEAVE TO LIST-PROCESSING." AND RETURN TO SCREEN 1000.
                    SET PF-STATUS space.
                    SUPPRESS DIALOG.
                    ENDIF.

                    ENDMODULE. " SUPRESS_DIALOG OUTPUT

                    Controlo con una V.Global para que me deje jugar antes con otras funciones.

                    Muchas gracias a tod@s!!!

                    Comentario

                    • nievesmp
                      Member
                      • abr
                      • 95

                      #11
                      data: messtab like bdcmsgcoll occurs 0 with header line.



                      call transaction '......' using bdcdata
                      * MODE 'E'
                      * mode 'A'
                      mode 'P'
                      messages into messtab.

                      loop at messtab.

                      if messtab-msgtyp = 'E'.


                      Luego imprimes la tabla messtab, según los campos que quieras imprimir, si solo los del tipo 'E' o todos o bien, debugeas para ver el contenido de la tabla messtab.


                      Al ver la tabla messtab en debugg, puedes luego sustituir algunos campo por por ejem. el numero de registro, o bien concatenas el campo id_coment en una variable antes del write.

                      Espero te sirva.

                      Comentario

                      • jfacero
                        Junior Member
                        • sep
                        • 4

                        #12
                        Y si en la dynpro has puesto un status con un par de botones, cuando vuelves a la pantalla donde haces el write te mantiene esos botones y no responde a ningun boton de la pantalla standar, como las pelotitas verde, amarilla y roja.

                        Sabeis como hacer que vuelva al status que suelen tener las pantallas donde se hacen los write?

                        Gracias!

                        Comentario

                        Trabajando...