Mandar un alv por correo en un job

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jtristan
    Senior Member
    • oct
    • 240

    #1

    Mandar un alv por correo en un job

    Hola,

    queremos ejecutar un programa abap a través de un job, y que el resultado del alv se mandé por correo.
    ¿Hay que hacer algo en el alv para que el job sepa que tiene que mandar el informe por correo?

    Muchas gracias.
    Un saludo.
  • Floren
    Senior Member
    • abr
    • 209

    #2
    Hola,

    Lo sencillo sería picar el código en el report para enviar el mail, ¿no?

    Un saludo
    Florentín Navarrete Moya
    SAP HCM Consultant
    Mail: administracion@blogdefloren.com
    Blog: www.blogdefloren.com

    Comentario

    • jtristan
      Senior Member
      • oct
      • 240

      #3
      Esa es la duda que tenía. NO sabía si indicando en el job que se quiere mandar algo por mail ya él recogía el resultado y lo generaba o había que crear código para ello.
      Voy a buscar entonces cómo mandar algo por mail desde código.

      Muchas gracias.

      Comentario

      • Jonathan Barrio Rodriguez
        Senior Member
        • oct
        • 199

        #4
        La opción que yo he usado para esto es usar los datos del ALV en un formulario SMARTFORM, luego pasarlo a PDF y a continuación agregar el dicho PDF a un Mail.

        SALUDOS.
        Barrio Rodriguez, Jonathan.
        _____________________________________
        "No sigas a quien haya encontrado la verdad sino a quien la busque"

        Comentario

        • abaper_biz
          Junior Member
          • oct
          • 27

          #5
          Puede ser con esta funcion

          Hola, podrias utilizar esta funcion que permite enviar reportes alv en formato XLS o PDF.

          *-----------------------------------------------------------
          DESCRIBE TABLE objtxt LINES w_lines.
          CLEAR reclist.
          reclist-receiver = 'destinatario@correo.com'.
          reclist-express = 'X'.
          reclist-rec_type = 'U'.
          reclist-copy = 'X'.
          APPEND reclist. " aqui va la lista de destinatarios.


          CONCATENATE
          'Sociedad' 'Usuario' 'Fecha Venc' 'Ejercicio' 'Solicitud'
          'Secuencia' 'Cliente' 'Razón Social'
          'Importe ' 'Banco' INTO
          i_contents_bin SEPARATED BY con_tab.


          CONCATENATE con_cret i_contents_bin INTO i_contents_bin.
          APPEND i_contents_bin.
          APPEND i_contents_bin.
          APPEND i_contents_bin.
          APPEND i_contents_bin.




          DESCRIBE TABLE objtxt LINES w_lines.
          objpack-transf_bin = ' '.
          objpack-head_start = 1.
          objpack-head_num = 0.
          objpack-body_start = 1.
          objpack-body_num = w_lines * 255.
          objpack-doc_type = 'RAW'.
          objpack-obj_name = 'File.Xls'.
          objpack-obj_descr = 'Aqui ingresas el mensaje del correo '.
          APPEND objpack.
          DESCRIBE TABLE i_contents_bin LINES objpack-body_num.
          objpack-transf_bin = 'X'.
          objpack-head_start = 1.
          objpack-head_num = 1.
          objpack-body_start = 1.
          objpack-doc_size = objpack-body_num * 255.
          objpack-doc_type = 'XLS'. " --> aqui le indicas el formato
          APPEND objpack.
          *------------------------------------------------

          CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          EXPORTING
          document_data = doc_chng "-> este es el asunto del mail
          put_in_outbox = 'X' "-> salida a sapoffice.
          commit_work = 'X'
          TABLES
          packing_list = objpack
          object_header = objhead
          contents_bin = i_contents_bin " contenido del alv.
          contents_txt = objtxt " nombre archivo adjunto
          receivers = reclist " lista de destinatarios
          EXCEPTIONS
          too_many_receivers = 1
          document_not_sent = 2
          document_type_not_exist = 3
          operation_no_authorization = 4
          parameter_error = 5
          x_error = 6
          enqueue_error = 7
          OTHERS = 8.


          Espero te sirva el ejemplo
          Jhon Riders Juscamaita Rico
          --------------------------------------------
          CONSULTOR SAP / ABAP4 DEVELOPER

          Comentario

          • Atlas
            Senior Member
            • ago
            • 107

            #6
            Puedes recuperar el spool on una funcion sap en una tabla interna y esta tabla mandarla por mail con la funcion de enviar mails en formato ALI ( lista abap ).Pero para ello tienes que generar el job por codigo (l resultado es el listado tal cual)

            Si puedes generar un segundo paso del job, podrias hacer un programa que recuperara y madara este listado (el resultado es tal cual tambien)

            Si el caso es mandar el mail en el propio programa y es este programa es el que se lanza por job simplemente pasandole la tabla del alv como adjunto en formato dat ( el resultado es un fichero de texto tabulado, que se puede habrir con excel, pero no es el listado tal cual)
            Editado por última vez por Atlas; 17/04/2009, 20:51:07.

            Comentario

            • jtristan
              Senior Member
              • oct
              • 240

              #7
              Muchas gracias a todos.
              Voy a probar la función que inicialmente lo veo más sencillo, sobre todo con ese ejemplo tan completo, jeje.

              Comentario

              • marianoa
                Member
                • jun
                • 77

                #8
                ese alv generalmente se levanta del spool cuando lo generas, el tema es que no se si te va a dejar mandarlo por mail mediante un job, ya que sap restringe salida de datos a otros sistemas mediante jobs (como por ejemplo bajarlo a PC). Esto sucede porque no verifica a donde se manda y que se manda.
                Saludos

                Comentario

                Trabajando...