Como enviar un formulario SAPscript???

Colapsar
Este tema está cerrado
X
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Alicia

    #1

    Como enviar un formulario SAPscript???

    Hola a todos los integrantes de este foro, alguien sabe como o conoce de alguna función que me permita enviar un formulario sapscript (La orden de compra) a un correo electrónico?, es urgente!!! , de antemano muchas gracias..


    Saludos,

    Alicia
  • reijimher
    El más rápido del oeste
    • mar
    • 93

    #2
    Hola Alicia, para enviar un formulario a través del correo electrónico, primero tienes que convertirlo a formato PDF, esto lo puedes lograr por la función que a continuación te describo:

    1 -
    ************************************************** ***************************
    * VERIFICA EL TIPO DE SPOOL QUE TENEMOS
    ************************************************** ***************************

    call function 'RSPO_GET_TYPE_SPOOLJOB'
    exporting
    rqident = spool_id
    importing
    is_otf = i_otf
    exceptions
    can_not_access = 1
    others = 2.
    if sy-subrc <> 0.
    message id 'Z1' type 'E' number 000
    with text-002.
    elseif i_otf eq 'X'.

    ************************************************** ***************************
    * Generar PDF de OTF
    ************************************************** ***************************
    call function 'CONVERT_OTFSPOOLJOB_2_PDF'
    exporting
    src_spoolid = spool_id
    importing
    pdf_bytecount = pbyte
    tables
    pdf = t_pdf
    exceptions
    err_no_otf_spooljob = 1
    err_no_spooljob = 2
    err_no_permission = 3
    err_conv_not_possible = 4
    err_bad_dstdevice = 5
    user_cancelled = 6
    err_spoolerror = 7
    err_temseerror = 8
    err_btcjob_open_failed = 9
    err_btcjob_submit_failed = 10
    err_btcjob_close_failed = 11
    others = 12.
    else. " Generar PDF de Abap

    call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
    exporting
    src_spoolid = spool_id
    importing
    pdf_bytecount = pbyte
    tables
    pdf = t_pdf
    exceptions
    err_no_abap_spooljob = 1
    err_no_spooljob = 2
    err_no_permission = 3
    err_conv_not_possible = 4
    err_bad_destdevice = 5
    user_cancelled = 6
    err_spoolerror = 7
    err_temseerror = 8
    err_btcjob_open_failed = 9
    err_btcjob_submit_failed = 10
    err_btcjob_close_failed = 11
    others = 12.
    if sy-subrc eq 0.
    * Iniciamos la traducción por error en la funcion de conversion ABAP-PDF
    loop at t_pdf into i_pdf.
    translate i_pdf using ',.'.
    modify t_pdf from i_pdf.
    endloop.
    endif.
    endif. "De if sy-subrc


    ************************************************** ********************************************

    2- Bajas el PDF Generado a Disco

    concatenate subdir '\' p_file '.PDF' into w_archivo.


    call function 'WS_DOWNLOAD'
    exporting
    bin_filesize = pbyte
    filename = w_archivo
    filetype = 'BIN'
    tables
    data_tab = t_pdf
    exceptions
    invalid_filesize = 1
    invalid_table_width = 2
    invalid_type = 3
    no_batch = 4
    unknown_error = 5
    gui_refuse_filetransfer = 6.

    if sy-subrc <> 0.
    message id 'Z1' type 'E' number '000' with text-003.
    endif.

    endform. " BAJAR_ARCHIVO

    ************************************************** ********************************************
    3- Buscas las Direcciones de Email en el Maestro de Proveedores

    select single * from lfa1 where lifnr eq report_iii-lifnr.
    if sy-subrc = 0.
    select single * from adr6 where addrnumber = lfa1-adrnr.
    if sy-subrc = 0.
    p_to = adr6-smtp_addr.
    else.
    p_to = space.
    message i999 with text-012 lfa1-adrnr text-013.
    endif.
    endif.

    ************************************************** ************************************************
    4- Envías el Correo a través de las siguiente instrucciones

    data: appoutlook type ole2_object.
    data: appout2 type ole2_object.
    data: appitem type ole2_object.
    data: namespace type ole2_object.
    data: attachments type ole2_object.
    data: frace01(45), frace02(45).
    * Crear objeto OLE : outlook.application
    create object appoutlook 'outlook.application' .
    * Mensajes vía MAPI
    call method of appoutlook 'GetNameSpace' = namespace
    exporting #1 = 'MAPI'.
    * Crea objeto nuevo ITEM ( nuevo mensaje )
    call method of appoutlook 'CreateItem' = appitem
    exporting #1 = '0'.
    * Propiedades TO , SUBJECT y BODY
    set property of appitem 'To' = 'xxxxxxx@xxx.com'.


    concatenate p_subj 'OI' into p_subj separated by space.
    set property of appitem 'Subject' = p_subj.

    set property of appitem 'Body' = ‘Adjunto, Pedidos’.
    * Se adjunta el archivo
    if not w_archivo is initial.
    call method of appitem 'Attachments' = attachments.
    call method of attachments 'Add'
    exporting #1 = w_archivo.
    endif.

    * Envíar directamente
    call method of appitem 'Send'.
    *Se muestra la pantalla del outlook
    ******** CALL METHOD OF appitem 'Display'.
    * Libera Espacio del objeto
    free object attachments.
    free object appitem.
    free object namespace.
    * Cierra Outlook ( solo si se quiere que quede cerrado )
    ***CALL METHOD OF appoutlook 'Quit'.
    free object appoutlook.


    Espero que esto te ayude


    Saludos....

    Reiner Jiménez

    Comentario

    • tracer
      Administrator
      • feb
      • 503

      #3
      Hola Alicia,

      No te preocupes es muy fácil y solo requiere unas pocas lineas de código abap . Para enviar un formulario sapscript por email, tienes que incluir estas funciones en el programa que adjuntarán al correo tu formulario como un pdf.

      *--- Define la dirección email del destinatario
      LW_COMM_VALUES-ADSMTP-SMTP_ADDR =
      john.smith@yahoo.com

      *--- Define el Título
      LW_SNAST-TDCOVTITLE = SY-TITLE


      *--- Define los detalles del emisor y del destinatario
      CALL FUNCTION 'CONVERT_COMM_TYPE_DATA'
      EXPORTING
      PI_COMM_TYPE = 'INT'
      PI_COMM_VALUES = LW_COMM_VALUES
      PI_REPID = SY-REPID
      PI_SNAST = LW_SNAST
      PI_MAIL_SENDER = SY-UNAME
      IMPORTING
      PE_ITCPO = GW_ITCPO
      PE_MAIL_RECIPIENT = LW_RECIPIENT
      PE_MAIL_SENDER = LW_SENDER
      EXCEPTIONS
      COMM_TYPE_NOT_SUPPORTED = 1
      RECIPIENT_CREATION_FAILED = 2
      SENDER_CREATION_FAILED = 3
      OTHERS = 4.


      Los objetos usados aquí se definen como sigue:

      LW_COMM_VALUES TYPE SZADR_COMM_VALUES
      LW_SENDER TYPE SWOTOBJID
      LW_RECIPIENT TYPE SWOTOBJID
      LW_SNAST TYPE SNAST


      Esto te dará los detalles del emisor y del. Ahora todo lo que tienes que hacer es llamar a la función OPEN_FORM como sigue:

      CALL FUNCTION 'OPEN_FORM'
      EXPORTING
      DEVICE = 'MAIL' <--- Note: Device is PRINTER for printing
      DIALOG = SPACE
      FORM = SAPscript form name
      LANGUAGE = SY-LANGU
      OPTIONS = GW_ITCPO
      MAIL_SENDER = LW_SENDER
      MAIL_RECIPIENT = LW_RECIPIENT
      EXCEPTIONS
      CANCELED = 1
      DEVICE = 2
      FORM = 3
      OPTIONS = 4
      UNCLOSED = 5
      MAIL_OPTIONS = 6
      ARCHIVE_ERROR = 7
      INVALID_FAX_NUMBER = 8
      MORE_PARAMS_NEEDED_IN_BATCH = 9
      SPOOL_ERROR = 10
      CODEPAGE = 11
      OTHERS = 12.



      Varios comentarios:

      - Recuerda poner el COMMIT WORK después de la llamada al CLOSE_FORM.

      - Comprueba con tu equipo de BASIS que tiene corriendo el proceso de envió a email externos cada 5 minutos que llama al programa RSCONN01.

      - Si envías correos a direcciones de Hotmail o Yahoo, debes poner alguna dirección de e-mail host en la transaccion SCOT, de lo contrario sus servidores lo rechazarán o lo consideraran como correo no deseado o malicioso. DE echo si chequeas el log de SCOT --> Utilities --> Overview of send orders --> Trace --> Choose tendrás una entrada que reza: "error 550 relaying is prohibited."

      Pregunta a tu exchange administrator para permitir que SAP server IP address confie en tu exchange server y podras enviar correos a cualquier dirección de email.

      Espero que te sea útil ya nos contaras.
      Un saludo, vista, suerte y al toro
      Si precisas una mano, recuerda que yo tengo dos.

      Comentario

      • tracer
        Administrator
        • feb
        • 503

        #4
        Otros tres puntos para

        reijimher
        El mas r&#225;pido del oeste.

        que se me ha adelantado antes de escribir el post que por cierto me parece muy correcto .
        Si precisas una mano, recuerda que yo tengo dos.

        Comentario

        • Alicia

          #5
          Gracias!!!!

          reijimher, Tracer muchas gracias por la ayuda dejenme decirles que ya una de sus respuestas dio resultado, mañana voy a probar la solución de Tracer, nuevamente muchas gracias, espero poder colaborales algún día...

          Saludos

          Alicia

          Comentario

          • Octaviano
            Junior Member
            • mar
            • 18

            #6
            Buenos Dias a Todos en el Pequeño y Gran Mundo de SAp..!
            Dejenme informarles que Yo soy ell Abap de Alicia, que tal..?

            y como ella les dijo antes, muchas gracias reijimher y tracer, la solución dada por reijimher nos funcionó perfectamente en 4.7, ahora la de tracer estoy por probarla por que no entiendo muy bien, de todas formas estaré intentandolo..!

            Ahora, tendo dos pregunticas para reijimher si no es mucha molestia, claro si otro sabe, bien recibido será..!
            1.- en la instrucción:
            set property of appitem 'Body' = ‘Adjunto, Pedidos’.
            que debe ser colocado? una variable tipo char que contenga un texto para acompañar el correo..? xq con el texto directo como por ejemplo ‘Adjunto, Pedidos’ me da el error "comma without preceding colon (after SET ?)".

            2.- Sabes como adjuntar a este correo, un archivo adicional al de la orden de compra distinto a PDF..?

            Gracias de antemano..!

            Comentario

            • vlcavazos3FBN
              Junior Member
              • jul
              • 1

              #7
              Ayuda

              Necesito Mandar Un Formlario Pdf Por Mail

              Y Vi Este Mensaje Pero Me Marca Error En Los Ole2_object

              Alguien Me Puede Decir Como Solucionar Esto?

              Gracias

              Comentario

              • CarlosjulioMM
                Junior Member
                • abr
                • 9

                #8
                Especificaciones Sapscript Pedido de Compra y Peticion de oferta

                Tracer o quien primerlo lea este mensaje:

                Me pueden ayudar con carácter urgente a ubicar los formatos de especificaciones de los sapscript de Pedidos de Compra y Peticiones de Oferta, donde aparecen las tablas, Estructuras y nombres de los campos técnicos.

                Igual si tienen especificaciones de las cargas de Maestro de Materiales y Carga de ordenes de compra vigentes en SAP.

                Agradezco su valiosa ayuda,

                Cordialmente

                CJ



                Originalmente publicado por tracer
                Otros tres puntos para

                reijimher
                El mas rápido del oeste.

                que se me ha adelantado antes de escribir el post que por cierto me parece muy correcto .

                Comentario

                • zehiter
                  Member
                  • oct
                  • 92

                  #9
                  Enviar texto dentro de correo electronico

                  Hola

                  Yo tengo la solución de Tracer y me funciona perfectamente bien, le envío a mi proveedor un correo electrónico con la orden de compra adjunta en formato PDF desde la tx ME22N.

                  Solo que ahora tengo un detalle que no logro solucionar :S.. quiero enviar un texto como cuerpo en el correo, que diga por ejemplo: "Le envio la orden de compra adjunto a este correo para su revision. Gracias" pero no logro ingresar este texto

                  Estoy usando las funciones:
                  ADDR_GET_NEXT_COMM_TYPE
                  CONVERT_COMM_TYPE_DATA
                  OPEN_FORM

                  Tracer o alguién que haya usado este mismo código podria darme una idea?

                  Saludos


                  Originalmente publicado por tracer
                  Hola Alicia,

                  No te preocupes es muy fácil y solo requiere unas pocas lineas de código abap . Para enviar un formulario sapscript por email, tienes que incluir estas funciones en el programa que adjuntarán al correo tu formulario como un pdf.

                  *--- Define la dirección email del destinatario
                  LW_COMM_VALUES-ADSMTP-SMTP_ADDR =
                  john.smith@yahoo.com

                  *--- Define el Título
                  LW_SNAST-TDCOVTITLE = SY-TITLE


                  *--- Define los detalles del emisor y del destinatario
                  CALL FUNCTION 'CONVERT_COMM_TYPE_DATA'
                  EXPORTING
                  PI_COMM_TYPE = 'INT'
                  PI_COMM_VALUES = LW_COMM_VALUES
                  PI_REPID = SY-REPID
                  PI_SNAST = LW_SNAST
                  PI_MAIL_SENDER = SY-UNAME
                  IMPORTING
                  PE_ITCPO = GW_ITCPO
                  PE_MAIL_RECIPIENT = LW_RECIPIENT
                  PE_MAIL_SENDER = LW_SENDER
                  EXCEPTIONS
                  COMM_TYPE_NOT_SUPPORTED = 1
                  RECIPIENT_CREATION_FAILED = 2
                  SENDER_CREATION_FAILED = 3
                  OTHERS = 4.


                  Los objetos usados aquí se definen como sigue:

                  LW_COMM_VALUES TYPE SZADR_COMM_VALUES
                  LW_SENDER TYPE SWOTOBJID
                  LW_RECIPIENT TYPE SWOTOBJID
                  LW_SNAST TYPE SNAST


                  Esto te dará los detalles del emisor y del. Ahora todo lo que tienes que hacer es llamar a la función OPEN_FORM como sigue:

                  CALL FUNCTION 'OPEN_FORM'
                  EXPORTING
                  DEVICE = 'MAIL' <--- Note: Device is PRINTER for printing
                  DIALOG = SPACE
                  FORM = SAPscript form name
                  LANGUAGE = SY-LANGU
                  OPTIONS = GW_ITCPO
                  MAIL_SENDER = LW_SENDER
                  MAIL_RECIPIENT = LW_RECIPIENT
                  EXCEPTIONS
                  CANCELED = 1
                  DEVICE = 2
                  FORM = 3
                  OPTIONS = 4
                  UNCLOSED = 5
                  MAIL_OPTIONS = 6
                  ARCHIVE_ERROR = 7
                  INVALID_FAX_NUMBER = 8
                  MORE_PARAMS_NEEDED_IN_BATCH = 9
                  SPOOL_ERROR = 10
                  CODEPAGE = 11
                  OTHERS = 12.



                  Varios comentarios:

                  - Recuerda poner el COMMIT WORK después de la llamada al CLOSE_FORM.

                  - Comprueba con tu equipo de BASIS que tiene corriendo el proceso de envió a email externos cada 5 minutos que llama al programa RSCONN01.

                  - Si envías correos a direcciones de Hotmail o Yahoo, debes poner alguna dirección de e-mail host en la transaccion SCOT, de lo contrario sus servidores lo rechazarán o lo consideraran como correo no deseado o malicioso. DE echo si chequeas el log de SCOT --> Utilities --> Overview of send orders --> Trace --> Choose tendrás una entrada que reza: "error 550 relaying is prohibited."

                  Pregunta a tu exchange administrator para permitir que SAP server IP address confie en tu exchange server y podras enviar correos a cualquier dirección de email.

                  Espero que te sea útil ya nos contaras.
                  Un saludo, vista, suerte y al toro

                  Comentario

                  • Ariel-StaFe
                    Senior Member
                    • nov
                    • 321

                    #10
                    Envio de SAPSCRIPT en formato PDF x Mail

                    Estimados:
                    Estoy con este tema.
                    Me incliné por probar con la opción de Tracer pero no logro que envíe el mail.
                    Me da Exceptions = 6 = MAIL_OPTIONS
                    Al salir de la funcion OPEN_FORM

                    La estructura GW_ITCPO al salir de la funcion CONVERT_COMM_TYPE_DATA"
                    queda en blanco.
                    (pruebo con la impresion comun en lugar de enviar por mail, y tambien dicha estructura queda en blanco)

                    El resto esta todo igual.
                    Alguien me podria dar una mano ?
                    Que me puede estar faltando ?

                    Muchas gracias.
                    Saludos
                    Ariel-StaFe
                    Analista Programador Abap Senior
                    Santa Fe Capital
                    Pcia de Santa Fe
                    Argentina

                    Comentario

                    • Ariel-StaFe
                      Senior Member
                      • nov
                      • 321

                      #11
                      Sapscript - Envio PDF x Mail

                      Gente:
                      Solo para dejar cerrado mi tema.
                      Les comento que no podia enviar mails por el firewall de mi empresa.
                      Lo resolvimos guardando en disco C los PDF y enviandolos con un programa externo
                      Saludos
                      Ariel-StaFe
                      Analista Programador Abap Senior
                      Santa Fe Capital
                      Pcia de Santa Fe
                      Argentina

                      Comentario

                      • josetaerre
                        Junior Member
                        • nov
                        • 1

                        #12
                        Buen día Tracer.

                        Una consulta. Y como hacer la relación del formulario con el pedido de compra? no veo como le indicas cual será el pedido que enviará...

                        Saludos

                        Comentario

                        • SidV
                          Usuario Avanzado
                          • oct
                          • 1761

                          #13
                          Originalmente publicado por josetaerre
                          Buen día Tracer.

                          Una consulta. Y como hacer la relación del formulario con el pedido de compra? no veo como le indicas cual será el pedido que enviará...

                          Saludos
                          Bienvenido al foro... pero...
                          Qué tiene que ver tu duda con "enviar PDF x mail" ?

                          Por favor, considera abrir un nuevo tema para dudas que no tienen que ver con el tema que se conversa.

                          Comentario

                          • ngm
                            Junior Member
                            • jun
                            • 16

                            #14
                            Enviar por email un formulario

                            Buenas tardes,
                            una consulta ya me funciona el envio del formulario por email, ahora me gustaria saber como haria para colocar un texto en el detalle del email.

                            Gracias!!!

                            Comentario

                            • SidV
                              Usuario Avanzado
                              • oct
                              • 1761

                              #15
                              Originalmente publicado por ngm
                              Buenas tardes,
                              una consulta ya me funciona el envio del formulario por email, ahora me gustaria saber como haria para colocar un texto en el detalle del email.

                              Gracias!!!
                              Abre un nuevo tema haciendo referencia a este tema, y brinda más detalles de lo que quieres, así los ABAPers te pueden ayudar mejor.

                              Saludos

                              Comentario

                              Trabajando...