Habilitar envió por mail

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • yapbig
    Senior Member
    • may
    • 261

    #1

    Habilitar envió por mail

    ¿Cómo hago para que en la privisualización de un formulario SapScript me aparezca habilitada la opción de enviar por mail? ¿Es un parámetro de la función OPEN_FORM de la estructura ITCPO?

    mandar por mail.JPG

    Saludos..., Desde ya muchísimas
    Gustavo A. Biglia
    Consultor SAP FI
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, pues asi es ... es un parametro de impresion propio del sapscript

    TDNOPRINT : Sin salida impresora desde visualización impresión
    TDDEVICE : Dipsositivo de salida

    En dispositivo de salida (TDDEVICE) colocale el nombre MAIL y en la opcion TDNOPRINT debe ir en blanco, ambos campos pertenecen a la estructura ITCPP, esa estructura va dentro de los parametros de impresion, veras que aparecera activa la opcion que quieres, espero te pueda ayudar
    David Carballido Córdova

    Comentario

    • yapbig
      Senior Member
      • may
      • 261

      #3
      TDDIVICE no existe como componente de la estructura ITCPO existe el parámetro DIVICE, pero si le asigno al mismo MAIL me pido otros parámetros como el destinatario y etc... y lo que se quiere es que se llame a la aplicación de correo adjuntando el archivo de salida de la impresión y que ahí pida los demás datos del correo: título, destinatario, etc...
      La idea es que desde la pre-visualización de la impresión aparezca habilitada la opción: texto->Enviar mail

      Adjuntar al Mail.JPG

      Crear y Enviar Documento.JPG
      Gustavo A. Biglia
      Consultor SAP FI

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Hola, esa previsualizacion del sapscript para poder visualizarlo llamas a la funcion OPEN_FORM, dentro de ella tiene un parametro de entrada llamada OPTIONS, ahi puedes copiar el primer parametro: TDNOPRINT

        Pues tienes razon el segundo parametro no se encuentra dentro de la ITCPO, una chispoteada, ese creo q se encuentra en la estructura ITCPP, esa estructura es de manejo interno dentro de los smartforms, pues estuve debuggeando y encontre este codigo para el START_FORM

        Código:
        if itcpp-tdnoprint = true.                                  
          perform exclude using: 'SPRI', 'SFAX', 'STLX', 'SEML'.    
        else.                                                       
          case itcpp-tddevice.                                      
            when device_printer.                                    
              perform exclude using: 'SPIC', 'SFAX', 'STLX', 'SEML'.
            when device_mail.                                       
              perform exclude using: 'SPIC', 'SPRI', 'SFAX', 'STLX'.
            when device_telefax.                                    
              perform exclude using: 'SPIC', 'SPRI', 'STLX', 'SEML'.
            when device_telex.                                      
              perform exclude using: 'SPIC', 'SPRI', 'SFAX', 'SEML'.
            when device_screen.                                     
              perform exclude using: 'SPRI', 'SFAX', 'STLX', 'SEML'.
          endcase.                                                  
        endif.
        Como veras al comienzo pregunta si el parametro de no imprimir y visualizar es en blanco, como presionast el boton de visualizar impresion, se blanquea ese parametro y excluye dentro del status los botones 'SPRI', 'SFAX', 'STLX', 'SEML', el SEML es el envio de mail ... pues al parecer parece que no deja enviar mails cuando se esta visualizando el documento ... alguien ha lidiado con ese tema???? aver q dicen los demas
        David Carballido Córdova

        Comentario

        • yapbig
          Senior Member
          • may
          • 261

          #5
          Ahora me deja habilitado el botón y me crea una orden de Mail, pero no sé como seguir. ¿Con qué transacción puedo ver, administrar, rastrear que es lo que pasó con esta Orden de Mail?

          enviar mail.JPG

          orden de mail.JPG

          Desde ya muchísimas gracias por toda la ayuda
          Gustavo A. Biglia
          Consultor SAP FI

          Comentario

          • yapbig
            Senior Member
            • may
            • 261

            #6
            Sigo renegando con esto estuve haciendo un trace con ST05 para ver las tablas del SAPOffice y pude comprobar que se están grabando todas las tablas, pero el correo sigo sin poder verlo con la TRX SOST
            En la fución OPEN_FORM cuando del DIVICE = 'MAIL' hay que pasarle algunos objetos, los cuales estoy seteando de la siguiente forma:

            FORM SETEAR_MAIL USING P_COMNR.


            DATA: MESSAGETYPE,
            RETURNCODE LIKE SY-SUBRC.

            * Deklaration einer Container-Datenstruktur zur Laufzeit.
            SWC_CONTAINER CONTAINER. " Container

            ************************************************** **********************
            * Anlegen eines Senders (BOR-Objekt-ID) *
            ************************************************** **********************

            * Erzeugen einer Objektreferenz auf den Objekttyp 'RECIPIENT'
            * Die weitere Verarbeitung findet dann für die Objektreferenz
            * 'sender' statt.
            SWC_CREATE_OBJECT SENDER " Objektreferenz
            'RECIPIENT' " Name eines Objekttyps
            SPACE. " objektspezifischer Schlüssel

            * Initialisieren des zuvor deklarierten Containers.
            SWC_CLEAR_CONTAINER CONTAINER. " Container

            * Unter dem Elementnamen 'AddressString' wird die Adresse des
            * aufrufenden internen Benutzers in die Container-Instanz
            * container eingetragen.
            SWC_SET_ELEMENT CONTAINER " Container
            'AddressString' " Elementname
            SY-UNAME. " Wert des Elements

            * Unter dem Elementnamen 'TypeId' wird der Adreßtyp 'interner
            * Benutzer' in die Container-Instanz container eingetragen.
            SWC_SET_ELEMENT CONTAINER " Container
            'TypeId' " Elementname
            'B'. " Wert des Elements

            * Aufruf der Objektmethode 'FindAddress'.
            SWC_CALL_METHOD SENDER " Objektreferenz
            'FindAddress' " Name der Methode
            CONTAINER. " Container

            * 'Das Element ist nicht im Container enthalten'.
            IF SY-SUBRC NE 0.
            IF NOT MESSAGETYPE IS INITIAL.
            RETURNCODE = 1.
            ELSE.
            MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO.
            ENDIF.
            EXIT.
            ENDIF.

            * Ermittlung der BOR-Objekt-ID.
            SWC_OBJECT_TO_PERSISTENT SENDER
            SENDER_ID.

            ************************************************** **********************
            * Anlegen eines Empfängers (BOR-Objekt-ID) *
            ************************************************** **********************

            * Erzeugen einer Objektreferenz auf den Objekttyp 'RECIPIENT'.
            * Die weitere Verarbeitung findet dann für die Objektreferenz
            * 'recipient' statt.
            SWC_CREATE_OBJECT RECIPIENT " Objektreferenz
            'RECIPIENT' " Name eines Objekttyps
            SPACE. " objektspezifischer Schlüssel

            * Initialisieren des zuvor deklarierten Containers.
            SWC_CLEAR_CONTAINER CONTAINER. " Container

            * Unter dem Elementnamen 'AddressString' wird die Faxnummer bzw.
            * die Internet-Adresse des Empfängers in die Container-Instanz
            * container eingetragen.
            SWC_SET_ELEMENT CONTAINER " Container
            'AddressString' " Elementname
            P_COMNR. " Wert des Elements

            * Unter dem Elementnamen 'TypeId' wird der Adreßtyp 'Fax' oder 'Mail'
            * in die Container-Instanz container eingetragen.
            * CASE FCODE.
            * WHEN 'FAX'.
            * SWC_SET_ELEMENT CONTAINER " Container
            * 'TypeId' " Elementname
            * 'F'. " Wert des Elements
            * WHEN 'MAIL'.
            SWC_SET_ELEMENT CONTAINER " Container
            'TypeId' " Elementname
            'U'. " Wert des Elements
            * ENDCASE.

            * Aufruf der Objektmethode 'CreateAddress'.
            SWC_CALL_METHOD RECIPIENT " Objektreferenz
            'CreateAddress' " Name der Methode
            CONTAINER. " Container

            * 'Anlegen des Adreßteils eines Recipient-Objekts' nicht möglich.
            IF SY-SUBRC NE 0.
            IF NOT MESSAGETYPE IS INITIAL.
            RETURNCODE = 2.
            ELSE.
            MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO.
            ENDIF.
            EXIT.
            ENDIF.

            * Ermittlung der BOR-Objekt-ID.
            SWC_OBJECT_TO_PERSISTENT RECIPIENT
            RECIPIENT_ID.

            * Initialisieren des zuvor deklarierten Containers.
            SWC_CLEAR_CONTAINER CONTAINER. " Container

            * Unter dem Elementnamen 'StatusInfoByMail' wird festgelegt, wann
            * ein Mail zur Statusrückmeldung gesendet werden soll.
            SWC_SET_ELEMENT CONTAINER " Container
            'StatusInfoByMail' " Elementname
            'E'. " Wert des Elements

            * Aufruf der Objektmethode 'SetStatusInfoByMail'.
            SWC_CALL_METHOD RECIPIENT " Objektreferenz
            'SetStatusInfoByMail'" Name der Methode
            CONTAINER. " Container

            * 'Das Element ist nicht im Container vorhanden'.
            IF SY-SUBRC NE 0.
            IF NOT MESSAGETYPE IS INITIAL.
            RETURNCODE = 2.
            ELSE.
            MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO.
            ENDIF.
            EXIT.
            ENDIF.

            ************************************************** **********************
            * Aufruf von SAPscript. *
            ************************************************** **********************

            * Der Schnittstellenparameter MAIL_APPL_OBJECT des FB OPEN_FORM wird
            * mit der BOR-Objekt-ID des Anwendungsobjekts von der aus das Senden
            * initiiert wird verknüpft.

            * Initialisieren des zuvor deklarierten Containers.
            SWC_CLEAR_CONTAINER CONTAINER. " Container

            REFRESH RECIPIENT_TAB.

            * Auflösen des Recipient-Objekts in "flache" Recipient-Objekte.
            SWC_CALL_METHOD RECIPIENT " Objektreferenz
            'Expand' " Name der Methode
            CONTAINER. " Container

            IF SY-SUBRC NE 0.
            IF NOT MESSAGETYPE IS INITIAL.
            RETURNCODE = 3.
            ELSE.
            MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO.
            ENDIF.
            EXIT.
            ENDIF.

            * Die "flachen" Recipient-Objekte werden aus dem Container gelesen.
            SWC_GET_TABLE CONTAINER " Container
            'ResultTable' " Elementname
            RECIPIENT_TAB. " Wert des Elements

            IF SY-SUBRC NE 0.
            REFRESH RECIPIENT_TAB.
            ENDIF.

            * Für jedes "flache" Recipient-Objekt erfolgt ein Aufruf von SAPscript.
            LOOP AT RECIPIENT_TAB.

            * BOR-Objekt-ID des Handles wird ermittelt.
            SWC_OBJECT_TO_PERSISTENT RECIPIENT_TAB
            RECIPIENT_ID.

            ENDLOOP.

            ENDFORM. " SETEAR_MAIL

            ¿Alguna idea de cuál puede llegar a ser el problema, porque el proceso como no me arroja ningún error me tiene super desorientado y ya no sé por donde buscar o a que apuntar?

            Gracias totales...
            Gustavo A. Biglia
            Consultor SAP FI

            Comentario

            • yapbig
              Senior Member
              • may
              • 261

              #7
              Sigo sin poder resolver este tema. Las tablas del SapOffice que se graban son las siguientes:
              SOFFLOIO
              SOFFPHIO
              SOFFCONT1
              SOFFPHF
              SOOD
              SOC3
              SOES
              SWT_LOGCAT
              SOOS
              SOST

              Se graban todas estas, pero la única que no se graba es la SOSC que es una de las tablas principales que lee la TRX SOST

              Por favor si alguien puede orientarme sobre este tema, desde ya muchísimas gracias...
              Gustavo A. Biglia
              Consultor SAP FI

              Comentario

              Trabajando...