función SO_DOCUMENT_SEND_API1 (envío mails)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • romario2
    Senior Member
    • abr
    • 233

    #1

    función SO_DOCUMENT_SEND_API1 (envío mails)

    Hola Foro,

    tengo que hacer una sustitución (user-exit) para este perform.

    PERFORM U999(ZRGGBS000) IF FOUND .

    Como este código es estandard, deduzco que no puedo tocarlo.

    Mi desarollo está en el FORM y lo que no se muy bien es como pasarle los parámetros.

    Os dejo el código , a ver si veis lo que me falta:









    FORM u999.

    *FORM u999 TABLES tab_contents_txt
    * it_attach
    * USING p_email
    * p_mtitle
    * p_format
    * p_filename
    * p_attdescription
    * p_sender_address
    * p_sender_addres_type
    * CHANGING p_error
    * p_reciever.


    DATA: int_error TYPE sy-subrc,
    int_receiver LIKE sy-subrc.


    DATA: w_doc_data LIKE sodocchgi1,
    chr_email LIKE somlreci1-receiver.

    DATA:

    tab_contents_txt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    tab_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
    tab_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

    * Missatge: S'ha donat d' alta l' actuació' PROJ-PSPID PROJ-ZZDESCRIPCIO

    DATA: chr_mtitle LIKE sodocchgi1-obj_descr.

    * Omplenem el document de dades
    w_doc_data-doc_size = 1.

    * paràmetres del missatge
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = chr_mtitle .
    w_doc_data-sensitivty = 'F'.

    * Fill the document data and get size of attachment
    * CLEAR w_doc_data.
    * READ TABLE it_attach INDEX w_cnt.
    * w_doc_data-doc_size =
    * ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
    * w_doc_data-obj_langu = sy-langu.
    * w_doc_data-obj_name = 'SAPRPT'.
    * w_doc_data-obj_descr = ld_mtitle.
    * w_doc_data-sensitivty = 'F'.
    * CLEAR t_attachment.
    * REFRESH t_attachment.
    * t_attachment[] = it_attach[].


    * cos del missatge
    CLEAR tab_packing_list.
    REFRESH tab_packing_list.
    tab_packing_list-transf_bin = space.
    tab_packing_list-head_start = 1.
    tab_packing_list-head_num = 0.
    tab_packing_list-body_start = 1.
    DESCRIBE TABLE tab_contents_txt LINES tab_packing_list-body_num.
    tab_packing_list-doc_type = 'RAW'.
    APPEND tab_packing_list.

    * Create attachment notification
    * t_packing_list-transf_bin = 'X'.
    * t_packing_list-head_start = 1.
    * t_packing_list-head_num = 1.
    * t_packing_list-body_start = 1.
    *
    * DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
    * t_packing_list-doc_type = ld_format.
    * t_packing_list-obj_descr = ld_attdescription.
    * t_packing_list-obj_name = ld_attfilename.
    * t_packing_list-doc_size = t_packing_list-body_num * 255.
    * APPEND t_packing_list.

    * destinatatis del mail
    CLEAR tab_receivers.
    REFRESH tab_receivers.
    tab_receivers-receiver = chr_email.
    tab_receivers-rec_type = 'U'.
    tab_receivers-com_type = 'INT'.
    * t_receivers-notif_del = 'X'.
    * t_receivers-notif_ndel = 'X'.
    APPEND tab_receivers.


    * break-point.
    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
    document_data = w_doc_data
    put_in_outbox = 'X'
    * SENDER_ADDRESS = SY-UNAME
    * SENDER_ADDRESS_TYPE = 'B'
    commit_work = 'X'
    * IMPORTING
    * SENT_TO_ALL =
    * NEW_OBJECT_ID =
    * SENDER_ID =
    TABLES
    packing_list = tab_packing_list
    * OBJECT_HEADER =
    * CONTENTS_BIN =
    contents_txt = tab_contents_txt
    * CONTENTS_HEX =
    * OBJECT_PARA =
    * OBJECT_PARB =
    receivers = tab_receivers
    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
    .

    * omplenem codi d' error
    int_error = sy-subrc.
    IF sy-subrc <> 0.

    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


    * control codi dels receptors del mail
    LOOP AT tab_receivers.
    int_receiver = tab_receivers-retrn_code.
    ENDLOOP.


    ENDFORM. "U999
  • conrad10ar
    Banned
    • mar
    • 296

    #2
    Hola,

    este link es probable que te sirva: sustituciones/validaciones SAP

    Saludos!

    Comentario

    • romario2
      Senior Member
      • abr
      • 233

      #3
      resolviendo

      Hola foro,

      ya llevo encarado este tema con el programa BCS_EXAMPLE_7
      Veo que se envía un mail correctamente a la SOST.
      Lo único que no me aparece es el contenido del mensaje.

      ¿Puede ser un tema de parametrización?

      Comentario

      • VLozano
        Senior Member
        • nov
        • 124

        #4
        De memoria no puedo ayudarte, y ahora no tengo tiempo de revisar antigüedades y adaptártelas para tu problema.

        Pero si estás desesperado, échale un ojo a ésto:

        I had to send again a mail through SAP. I used my older code and found it a lot heavy for my needs. I managed to create a Z function that allows me to send a simple mail without having to fill all &#8230;


        (espero que no sea considerado propaganda... además, está en inglés y hace meses o años que nadie lo toca, así que no es "competencia" de este foro :P)

        Hay un enlace en el pie de la página a una entrada mucho más antigua y mucho más compleja que quizá te ayuda si el siguiente paso del martirio es anexar un fichero al correo
        "Porque algunos sabemos que somos parte del problema"
        - Pequeña guía para escribir mensajes en foros técnicos -

        Comentario

        • romario2
          Senior Member
          • abr
          • 233

          #5
          gracias!

          Merci Vlozano,

          de momento estoy contento con el programa BCS_EXAMPLE_7. Ya lleva un excel incorporado. También resolví la incidencia que comentaba. Era un tema de parametrización o configuración de mi SAP GUI porque en el pc de una compañera si que puedo ver contenido del mail
          Ahora la duda que tengo es que veo que este programa procesa un mail y lo envie y yo lo que tengo que hacer es procesar un GRUPO de mails.


          Saludos!

          Comentario

          • jemsego
            Junior Member
            • oct
            • 7

            #6
            Solicitud

            Que tal Romario, soy muy nuevo en ABAP, me interesa crear mi programa para enviar un correo electrónico, de momento solo quiero que envíe un texto, me podrias pasar un manual o un ejemplo sencillo de esto porafvor?, o alguien que me lo pueda hacer llegar porfavor,de antemano Gracias.

            Comentario

            • romario2
              Senior Member
              • abr
              • 233

              #7
              buenas

              Hola,

              bienvenido al mundo del sap!

              Este programa de ejemplo te irá bien:

              ves a la se38 y busca este report

              BCS_EXAMPLE_7



              Saludos abaperos!

              Comentario

              • romario2
                Senior Member
                • abr
                • 233

                #8
                para Vlozano

                Hola Vlozano,

                en la cj20n el campo de estatus de usuario no es obligatorio,
                en cambio cuando activo mi user-exit, me aparece un mensaje de error
                como si este campo fuera obligatorio y no me deja guardar la subactuacion creada.

                Mensaje:

                "Para PEP xxxxxxx NO EXISTE NINGÚN OBJETO DE ESTATUS"

                Al tratar de leer el status de un objeto (PEP LSA.00087/04) se produjo
                un error de sistema: No existe ningún objeto de status para el número de
                objeto TM0000000001PR.

                es un tema de programación o bien de parametrización ?

                Comentario

                • VLozano
                  Senior Member
                  • nov
                  • 124

                  #9
                  Originalmente publicado por romario2
                  Hola Vlozano,

                  en la cj20n el campo de estatus de usuario no es obligatorio,
                  en cambio cuando activo mi user-exit, me aparece un mensaje de error
                  como si este campo fuera obligatorio y no me deja guardar la subactuacion creada.

                  Mensaje:

                  "Para PEP xxxxxxx NO EXISTE NINGÚN OBJETO DE ESTATUS"

                  Al tratar de leer el status de un objeto (PEP LSA.00087/04) se produjo
                  un error de sistema: No existe ningún objeto de status para el número de
                  objeto TM0000000001PR.

                  es un tema de programación o bien de parametrización ?
                  Dos cosas:

                  1- esto pertenece a otro hilo, el mensaje no tiene nada que ver con el envío de correos
                  2- el "Hola VLozano" sobra... aquí somos un montón de gente... que hayas tenido la desgracia de tener que leerme tanto no es motivo para que ignores al resto de mortales entre los que seguro hay muchos que saben mucho más que yo.

                  En todo caso, a mí me huele a parametrización, pero no soy experto en proyectos, así que lo dejo así :P
                  "Porque algunos sabemos que somos parte del problema"
                  - Pequeña guía para escribir mensajes en foros técnicos -

                  Comentario

                  • romario2
                    Senior Member
                    • abr
                    • 233

                    #10
                    programa envíos

                    Hola Vlozano,

                    -disculpa que abuse de tus conocimientos. En mi proyecto no tengo con quien comentar estas cosas.
                    -la duda está relacionada con la user del programa de envíos, que bien conoces ya ;-).
                    -tu respuesta coincide también con lo que yo intuía, parece un tema de parametrización.
                    - me portaré bien, y no enviaré más mails personales.

                    Una vez más, gracias por tu ayuda

                    Comentario

                    • funkeeiads
                      Member
                      • mar
                      • 47

                      #11
                      Tienes un ROLLBACK/COMMIT en el codigo?

                      Yo tuve el mismo problema.

                      Comentario

                      Trabajando...