MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 22/03/06, 14:00:16
Alicia
 
Mensajes: n/a
Question 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
  #2  
Viejo 22/03/06, 15:12:40
reijimher reijimher is offline
El más rápido del oeste
 
Fecha de Ingreso: mar 2006
Localización:
Mensajes: 93
Thumbs up

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
  #3  
Viejo 22/03/06, 15:22:00
Avatar de tracer
tracer tracer is offline
Administrator
 
Fecha de Ingreso: feb 2006
Localización: España (Madrid)
Mensajes: 503
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
__________________
Si precisas una mano, recuerda que yo tengo dos.
  #4  
Viejo 22/03/06, 15:24:02
Avatar de tracer
tracer tracer is offline
Administrator
 
Fecha de Ingreso: feb 2006
Localización: España (Madrid)
Mensajes: 503
__________________
Si precisas una mano, recuerda que yo tengo dos.
  #5  
Viejo 22/03/06, 21:03:34
Alicia
 
Mensajes: n/a
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
  #6  
Viejo 23/03/06, 12:25:36
Octaviano Octaviano is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 18
Thumbs up

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..!
  #7  
Viejo 25/07/06, 20:50:10
vlcavazos3FBN vlcavazos3FBN is offline
Junior Member
 
Fecha de Ingreso: jul 2006
Mensajes: 1
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
  #8  
Viejo 26/08/06, 14:14:08
CarlosjulioMM CarlosjulioMM is offline
Junior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 9
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



  #9  
Viejo 16/05/11, 21:16:59
Avatar de zehiter
zehiter zehiter is offline
Member
 
Fecha de Ingreso: oct 2007
Localización: Aguascalientes, Mexico
Mensajes: 92
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


  #10  
Viejo 27/09/11, 17:51:17
Ariel-StaFe Ariel-StaFe is offline
Senior Member
 
Fecha de Ingreso: nov 2007
Localización: Santa Fe - Argentina
Mensajes: 321
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
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 14:20:44.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web