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 =
*--- 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