锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

采用 cl_document_bcs 将 Meeting request 发送到 outlook 去

时间:2022-10-15 01:30:00 bcs电容开关103sr13a

*&---------------------------------------------------------------------* *& Report  ZTEST1 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*  REPORT  ZTEST1. DATA: text               TYPE bcsy_text. DATA: document           TYPE REF TO cl_document_bcs. DATA: sender             TYPE REF TO cl_sapuser_bcs. DATA: recipient          TYPE REF TO if_recipient_bcs. DATA: bcs_exception      TYPE REF TO cx_bcs. DATA: sent_to_all        TYPE os_boolean. DATA: it_content         TYPE soli_tab. DATA: it_attach          TYPE soli_tab. DATA: send_request       TYPE REF TO cl_bcs. DATA: l_subject          LIKE sodocchgi1-obj_descr,       l_sender_type      LIKE soextreci1-adr_typ,       l_recsize          TYPE i,       l_receiver         TYPE sy-subrc. DATA: lt_soli            TYPE soli_tab    . DATA: ls_soli            LIKE LINE OF lt_soli. DATA: lt_soli_new        TYPE soli_tab. DATA: ls_email           TYPE string."pa0105-usrid_long. DATA: ls_uname           TYPE string."pa0105-usrid. DATA: ls_pernr           TYPE string."pernr-pernr. DATA: ls_begin(10)       TYPE c. DATA: ls_end(10)         TYPE c. DATA: result        TYPE REF TO cl_document_bcs. DATA: BEGIN OF ls_data,   sender TYPE string,"lsoppvar-sender,  "sender   kbgda  TYPE ppvar-kbgda,      "begin date   kndda  TYPE ppvar-endda,      "end date   kbtim  TYPE ppvar-kbtim,      "begin time first day   ketim  TYPE ppvar-ketim,      "end time last day   kstxt  TYPE ppvar-kstxt,      "training text   b_ort  TYPE ppvar-b_ort,      "training location   rstxt  TYPE ppvar-rstxt,      "room text   amail  TYPE lsoppvar-amail,   "recipient eMail   astxt  TYPE ppvar-astxt,      "recipient END OF ls_data. FIELD-SYMBOLS:  LIKE ls_soli. ************************************************************************ * SELECTION SCREEN DEFINITION ************************************************************************ SELECTION-SCREEN BEGIN OF BLOCK group WITH FRAME TITLE text-001. PARAMETERS:  p_trnam   LIKE p1000-stext DEFAULT 'TRAINING NAME',              p_locnm   LIKE p1000-stext DEFAULT 'LOCATION',              p_begda   LIKE p1000-begda DEFAULT '20081101',              p_endda   LIKE p1000-endda DEFAULT '20081104',              p_ltype   LIKE LSO_BORKEY_PARTICIPATION-LEARNERTYPE DEFAULT 'P',              p_lid     LIKE LSO_BORKEY_PARTICIPATION-LEARNERID DEFAULT '10000137'. SELECTION-SCREEN END   OF BLOCK group. ************************************************************************ * INITIALIZATION ************************************************************************ INITIALIZATION. START-OF-SELECTION.   CASE p_ltype.     WHEN 'P'. * Move PERNR number to variable       ls_pernr = p_lid.     WHEN 'US'.       ls_uname = p_lid.       condense ls_uname.       select single pernr from pa0105 into ls_pernr where                                 usrid = ls_uname and                                 begda le sy-datum and                                 endda ge sy-datum and                                 subty = '0001'.   ENDCASE. * Read infotype 0105 and subtypes 0001 and 0010 * Sub type 0001 has username * sub type 0010 has e-mail   select single usrid_long from pa0105 into ls_email where                          pernr = ls_pernr and                          begda le sy-datum and                          endda ge sy-datum and                          subty = '0010'.   select single usrid from pa0105 into ls_uname where                          pernr = ls_pernr and                          begda le sy-datum and                          endda ge sy-datum and                          subty = '0001'.   PERFORM f_data. *&---------------------------------------------------------------------* *&      Form  f_data *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* FORM f_data . * Calendar logic begin   ls_soli-line = 'BEGIN:VCALENDAR'.   APPEND ls_soli TO lt_soli.   ls_soli-line = 'PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN'.   APPEND ls_soli TO lt_soli.   ls_soli-line = 'VERSION:1.0'.   APPEND ls_soli TO lt_soli.   ls_soli-line = 'METHOD:REQUEST'.   APPEND ls_soli TO lt_soli.   ls_soli-line = 'BEGIN:VEVENT'.   APPEND ls_soli TO lt_soli.   CONCATENATE 'ATTENDEE;CN=' ls_uname ';ROLE=REQ-PARTICIPANT;RSVP=RUE:MAILTO:' ls_email INTO ls_soli-line.
  APPEND ls_soli TO lt_soli.
  CONCATENATE 'DTSTART:' p_begda 'T140000Z' INTO ls_soli-line.
  APPEND ls_soli TO lt_soli.
  CONCATENATE 'DTEND:' p_endda 'T220000Z' INTO ls_soli-line.
  APPEND ls_soli TO lt_soli.
  CONCATENATE 'LOCATION:' p_locnm INTO ls_soli-line.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'TRANSP:OPAQUE'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'SEQUENCE:1'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'DESCRIPTION: Course Participation'.
  APPEND ls_soli TO lt_soli.
  CONCATENATE 'SUMMARY: Course Participation for ' ls_uname INTO ls_soli-line SEPARATED BY SPACE.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'PRIORITY:5'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'X-MICROSOFT-CDO-IMPORTANCE:1'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'CLASS:PUBLIC'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'END:VEVENT'.
  APPEND ls_soli TO lt_soli.
  ls_soli-line = 'END:VCALENDAR'.
  APPEND ls_soli TO lt_soli.
* End of Calendar
* Call this function module to convert data created for calendar entry
*
  CALL FUNCTION 'SO_RAW_TO_RTF'
    TABLES
      OBJCONT_OLD = lt_soli[]
      OBJCONT_NEW = lt_soli_new[].
  l_subject = 'Course Participation'.
  ls_soli-line = 'This is to notify following course has been approved'.
  APPEND ls_soli TO it_content.
  CLEAR ls_soli.
  APPEND ls_soli TO it_content.
  CONCATENATE 'Training Name: ' p_trnam INTO ls_soli-line.
  APPEND ls_soli TO it_content.
  CLEAR ls_soli.
  APPEND ls_soli TO it_content.
  write p_begda to ls_begin.
  write p_endda to ls_end.
  CONCATENATE 'Begin Date: ' ls_begin INTO ls_soli-line.
  APPEND ls_soli TO it_content.
  CLEAR ls_soli.
  APPEND ls_soli TO it_content.
  CONCATENATE 'End Date: ' ls_end INTO ls_soli-line.
  APPEND ls_soli TO it_content.
  CLEAR ls_soli.
  APPEND ls_soli TO it_content.
  CONCATENATE 'Location Name: ' p_locnm INTO ls_soli-line.
  APPEND ls_soli TO it_content.
  CLEAR ls_soli.
  APPEND ls_soli TO it_content.
  TRY.
* Create persistent send request
      send_request = cl_bcs=>create_persistent( ).
      document = cl_document_bcs=>create_document(
                                    i_type    = 'RAW'
                                    i_text = it_content[]
                                    i_subject = l_subject ).
      DESCRIBE TABLE lt_soli.
      CALL METHOD document->add_attachment
        EXPORTING
          i_attachment_type    = 'VCS'
          i_attachment_subject = 'Course'
          i_att_content_text   = lt_soli_new[].
* Add document to send request
      CALL METHOD send_request->set_document( document ).
* Get sender object
      sender = cl_sapuser_bcs=>create( sy-uname ).
* Add sender
      CALL METHOD send_request->set_sender
        EXPORTING
          i_sender = sender.
*     ------ add recipient (e-mail address) ----------------------
*     create recipient

*  Enter a valid e-mail address
      recipient = cl_cam_address_bcs=>create_internet_address(
                                        ls_email ).
*     add recipient with its respective attributes to send request
      CALL METHOD send_request->add_recipient
        EXPORTING
          i_recipient  = recipient
          i_express    = 'U'
          i_copy       = ' '
          i_blind_copy = ' '
          i_no_forward = ' '.
********Trigger e-mails immediately****************************
      send_request->set_send_immediately( 'X' ).
      CALL METHOD send_request->send(
        EXPORTING
          i_with_error_screen = 'X'
        RECEIVING
          result              = sent_to_all ).
      IF sent_to_all = 'X'.
        WRITE 'Document Sent Successfully'.
      ENDIF.
      COMMIT WORK.
    CATCH cx_document_bcs INTO bcs_exception.
      WRITE: 'Error Occurred'.
      WRITE: 'Error Type', bcs_exception->error_type.
      EXIT.
  ENDTRY.
ENDFORM.                    " f_data
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章