En este post os voy a explicar como podemos generar y enviar mediante email citas para que agreguen al nuestro calendario de Outlook. Es algo sencillo y a la vez muy util que nos puede dar mucho juego a la hora de hacer nuestros desarrollos.
Muchas veces nos envian email o nos apuntamos a Webinars que nos permiten agregar el evento a nuestro calendario de Outlook directamente, pues bien, nosotros podemos hacer lo mismo mediante código.
Para realizar este ejemplo vamos a utilizar la clase CL_APPOINTMENT. A continuación os dejo el código de ejemplo:
INCLUDE <cntn01>.
TYPE-POOLS: sccon.
DATA lo_appointment TYPE REF TO cl_appointment.
DATA ls_participant TYPE scspart.
DATA lv_address TYPE swc_object.
DATA ls_address_container LIKE swcont OCCURS 0 WITH HEADER LINE.
DATA lt_text TYPE so_txttab.
DATA ls_text LIKE LINE OF lt_text.
DATA lv_location LIKE scsappt-room.
DATA lo_send_request TYPE REF TO cl_bcs.
DATA lv_sent_to_all TYPE os_boolean.
CREATE OBJECT lo_appointment.
* Add multiple attendees
CLEAR ls_participant.
swc_create_object lv_address 'ADDRESS' space.
swc_set_element ls_address_container 'AddressString' 'email@email.com'.
swc_set_element ls_address_container 'TypeId' 'U'.
swc_call_method lv_address 'Create' ls_address_container.
CHECK sy-subrc = 0.
* * get key and type of object
swc_get_object_key lv_address ls_participant-objkey.
CHECK sy-subrc = 0.
swc_get_object_type lv_address ls_participant-objtype.
CHECK sy-subrc = 0.
MOVE sccon_part_sndmail_with_ans TO ls_participant-send_mail.
ls_participant-comm_mode = 'INT'.
lo_appointment->add_participant( participant = ls_participant ).
* Sample Appointment for All-Day-Event
lo_appointment->set_date( date_from = fini
date_to = ffin ).
* Make appointment appear "busy"
lo_appointment->set_busy_value( sccon_busy_busy ).
* Set Location
lo_appointment->set_location_string( 'Location' ).
* Set Organizer
lo_appointment->set_organizer( sy-uname ).
* "Type of Meeting" (value picked from table SCAPPTTYPE)
lo_appointment->set_type( 'ABSENT' ).
* Make this an all day event
lo_appointment->set_view_attributes( show_on_top = 'X').
* Set Meeting body text
ls_text = 'This is the Body Text of the Appointment'.
APPEND ls_text TO lt_text.
lo_appointment->set_text( lt_text ).
* Set Meeting Subject
lo_appointment->set_title( 'This is the Appointment Subject' ).
* Important to set this one to space. Otherwise SAP will send a not user-friendly e-mail
lo_appointment->save( send_invitation = space ).
* Now that we have the appointment, we can send a good one for outlook by switching to BCS
lo_send_request = lo_appointment->create_send_request( ).
* don't request read/delivery receipts
lo_send_request->set_status_attributes( i_requested_status = 'N'
i_status_mail = 'N' ).
* Send it to the world
lv_sent_to_all = lo_send_request->send( i_with_error_screen = 'X' ).
COMMIT WORK AND WAIT.
Como veis el código es muy sencillo. Si lo ejecutamos veremos como nos llega una cita a nuestro Outllook, o al de las personas que pongamos como destinatarios de la misa.
Como reto o duda que planteo, estoy intentando que en la misma cita puedan ir adjuntos documentos (Por ejemplo PDF). Aun no lo he conseguido, pero os animo a intentarlo y si sois capaces a compartirlo con todo el mundo.
Un lugar para compartir conocimiento con todas las personas interesadas en el universo SAP
Suscribirse a:
Enviar comentarios (Atom)
Integración SAP
Cuando hablamos de SAP como sistema integrado que cubre toda la casuística de nuestro negocio estamos siendo bastante osados. Casi cualquier...
-
En este post un ejemplo de creación de un ALV con objetos en SAP. Para crear un ALV OO tenemos que crearnos una nueva DYNPRO y dentro de ...
-
En este post vamos a hablar de una utilidad vital dentro de SAP y de cualquier sistema informatico que se precio, LOS MENSAJES. En SAP los...
No hay comentarios:
Publicar un comentario