procesar envío GRUPO de mails

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

    #1

    procesar envío GRUPO de mails

    Hola,

    el programa BCS_EXAMPLE_7 me envía un mail de una sola dirección a la transacción sost.

    En el código leo:

    PARAMETERS:
    mailto TYPE ad_smtpadr
    default 'pepito@ozu.es'.


    ** (objecte recipient)
    recipient = cl_cam_address_bcs=>create_internet_address( mailto ).

    * afegeix objecte recipient a la petició d' enviament
    send_request->add_recipient( recipient ).

    * ---------- envia documento ---------------------------------------
    sent_to_all = send_request->send( i_with_error_screen = 'X' ).

    COMMIT WORK.

    Ahora lo que necesito es hacer lo mismo pero que se envíe a todo un grupo
    de usuarios, que tengo guardados en una tabla Z.


    Saludos abaperos
  • VLozano
    Senior Member
    • nov
    • 124

    #2
    Yo te doy una pista, pero tú te comprometes a mirarte el programa más a fondo. Así la próxima vez te ahorras la pregunta

    Código:
    *     add recipient object to send request
          send_request->add_recipient( recipient ).
    Pista: intenta hacerlo DOS veces.
    Código:
    *     add recipient object to send request
          send_request->add_recipient( recipient1 ).
          send_request->add_recipient( recipient2 ).
    Y ahora lo que tienes que hacer en agradecimiento a la pista :P

    haz doble-clic sobre el método add_recipient. Aparecerá una definición de método con otro CALL METHOD... haz doble-clic sobre ese método. Hacia el final del código que aparece hay un INSERT. Échale un ojo, y sabrás por qué mi pista debería funcionar
    "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

      #3
      thanks a lot!

      Uauuu!
      Vlozano muchas gracias!
      Prometo que voy a hacer los deberes
      Ten en cuenta que no tengo casi idea de programar en Abap Objects, suelo programar en el Abap clásico, el secuencial.


      Hasta la próxima

      Comentario

      • romario2
        Senior Member
        • abr
        • 233

        #4
        insertar tabla en objeto recipiente

        Hola Vlozano,

        he hecho la investigación:

        He llegado a la sentencia que comentabas
        INSERT re INTO TABLE recipients.

        Veo que el método inserta registros en la tabla recipients.

        Con abap clásico sería hacer algo así:

        tab_intern2 [] = tab_intern1 [] .

        Pero en Objects no se como se hace EL CÓDIGO...en teoría tengo que entregar hoy el desarrollo

        Imagino que si le inserto los registros de mi tabla interna, luego este metodo irá procesando todos los mails, verdad?

        Gracias de antemano

        Comentario

        • romario2
          Senior Member
          • abr
          • 233

          #5
          sigue la incidencia

          Hola foro,
          Hola Vlozano,

          sigo sin encontrar la solución.
          Incluso la colgé en el SDN



          Si me puedes echar un cable, te lo agradecería

          Comentario

          • VLozano
            Senior Member
            • nov
            • 124

            #6
            Échale un vistazo a tu código
            Código:
            PARAMETERS:
            mailto TYPE ad_smtpadr
            default 'pepito@ozu.es'.
            
            
            ** (objecte recipient)
            recipient = cl_cam_address_bcs=>create_internet_address( mailto ).
            
            * afegeix objecte recipient a la petició d' enviament
            send_request->add_recipient( recipient ).
            Si vas a la SE11 (o haces doble clic sobre el tipo del parámetro "mailto", verás que es un tipo de datos char de 241 posiciones.

            Por tanto, cualquier destinatario que quieras añadir puedes meterlo "a palote" (o mediante una variable del tipo ad_smtpadr):
            Código:
            recipient = cl_cam_address_bcs=>create_internet_address( 'estostest@estostest.text' ).
            send_request->add_recipient( recipient )
            "Porque algunos sabemos que somos parte del problema"
            - Pequeña guía para escribir mensajes en foros técnicos -

            Comentario

            • PabloGP
              Junior Member
              • sep
              • 21

              #7
              Yo lo suelo hacer así.

              DATA: BEGIN OF TI_CORREO OCCURS 0,
              EMAIL_USER(30),
              END OF TI_CORREO.

              DATA WA_CORREO LIKE LINE OF TI_CORREO.


              APPEND WA_CORREO-EMAIL_USER = 'aaaaaa@hotmail.com'.
              APPEND WA_CORREO-EMAIL_USER = 'bbbbbb@hotmail.com'.
              APPEND WA_CORREO-EMAIL_USER = 'cccccc@hotmail.com'.

              LOOP AT TI_CORREO.
              CLEAR RECLIST.
              RECLIST-RECEIVER = TI_CORREO-EMAIL_USER.
              RECLIST-EXPRESS = 'X'.
              RECLIST-REC_TYPE = 'U'.
              APPEND RECLIST.
              ENDLOOP.

              *.- ES: Funcion que envia del email
              *.- EN: Function: Sending the document
              CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
              EXPORTING
              DOCUMENT_DATA = DOC_CHNG
              PUT_IN_OUTBOX = 'X'
              COMMIT_WORK = 'X'
              TABLES
              PACKING_LIST = OBJPACK
              OBJECT_HEADER = OBJHEAD
              CONTENTS_BIN = OBJBIN
              CONTENTS_TXT = OBJTXT
              RECEIVERS = RECLIST
              EXCEPTIONS
              TOO_MANY_RECEIVERS = 1
              DOCUMENT_NOT_SENT = 2
              OPERATION_NO_AUTHORIZATION = 4
              OTHERS = 99.

              Pruebalo y me comentas.

              Un saludo.

              Comentario

              • PabloGP
                Junior Member
                • sep
                • 21

                #8
                Con las prisas puse mal los APPEND....

                WA_CORREO-EMAIL_USER = 'aaaaaa@hotmail.com'.
                APPEND WA_CORREO TO TI_CORREO.
                WA_CORREO-EMAIL_USER = 'bbbbbb@hotmail.com'.
                APPEND WA_CORREO TO TI_CORREO.
                WA_CORREO-EMAIL_USER = 'cccccc@hotmail.com'.
                APPEND WA_CORREO TO TI_CORREO.

                Tu imagino que haras un Select a tu tabla Z para rellenar la tabla interna.

                Comentario

                • romario2
                  Senior Member
                  • abr
                  • 233

                  #9
                  Gracias

                  Muchas gracias PabloGP y Vlozano!

                  Voy a probar vuestros consejos, ya os diré algo cuando lo tenga


                  Saludos abaperos !

                  Comentario

                  • romario2
                    Senior Member
                    • abr
                    • 233

                    #10
                    buenas

                    Hola Vlozano,

                    yo tengo una tabla interna con 1 campo que es el de direcciones de mail.
                    Esa variable de tipo char no creo que funcione para una lista de mails.
                    Desconozco el código que hay que hacer en Abap Objetos para enchufar esos mails y que se procese bien el método. Miré dentro del método e hize alguna prueba, sin resultado.

                    Saludos !

                    Comentario

                    • VLozano
                      Senior Member
                      • nov
                      • 124

                      #11
                      Código:
                      DATA: mymail TYPE ad_smtpadr.
                      
                      LOOP AT mitabla INTO w_mitabla.
                        mymail = w_mitabla-micampo.
                        recipient = cl_cam_address_bcs=>create_internet_address( mymail ).
                        send_request->add_recipient( recipient ).
                      "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

                        #12
                        fantástico

                        Ahí acertaste Vlozano!

                        tenía un código muy parecido al tuyo, incluso con TRY CATCH , para capturar los errores, pero me faltaba una asignación:

                        mymail = w_mitabla-micampo.

                        Ya está solucionado Muchas gracias!! Y buen finde!

                        Comentario

                        Trabajando...