Ausführbare SAP-Mail mit BCS

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Ausführbare SAP-Mail mit BCS

Postby Josie2243 » Thu May 03, 2007 12:12 pm

Hallo zusammen,

ich suche eine Möglichkeit mittels BCS (cl_bcs) eine SAP-Mail zu versenden, die ausführbar ist.

Wie das ganze mit SO_NEW_DOCUMENT_SEND_API1 funktioniert ist mir klar, dort kann ich über den Parameter document_data die Transaktion die ausgeführt werden soll mit geben. Über den Parameter object_para kann ich für die Transaktion Werte mit geben.

Gibt es analog dazu etwas für BCS?
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: Ausführbare SAP-Mail mit BCS

Postby Tristan1443 » Fri Mar 08, 2013 12:16 pm

Diese Information würde mich auch brennend interessieren.
Ist dafür eine Lösung gefunden?
Tristan1443
.
.
 
Posts: 1
Joined: Fri Mar 08, 2013 12:16 pm

Re: Ausführbare SAP-Mail mit BCS

Postby Tron » Wed Mar 13, 2013 1:20 pm

Moin,
meint ihr so ?
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Report  YBC_EMAIL_CLASS
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT  YBC_EMAIL_CLASS.
  10. CLASS cl_bcs DEFINITION LOAD.
  11. DATA:  lo_send_request TYPE REF TO cl_bcs
  12.       ,lo_document     TYPE REF TO cl_document_bcs
  13.       ,lo_sender       TYPE REF TO if_sender_bcs
  14.       ,lo_recipient    TYPE REF TO if_recipient_bcs
  15.       ,lt_message_body TYPE bcsy_text
  16.       ,lx_document_bcs TYPE REF TO cx_document_bcs
  17.       ,lv_send         TYPE ad_smtpadr VALUE 'Tron@localhost'
  18.       ,lv_sent_to_all  TYPE os_boolean     .
  19.  
  20. data lt_att_content_hex type solix_tab.
  21.  
  22. "create send request
  23. lo_send_request = cl_bcs=>create_persistent( ).
  24.  
  25. "create message body and subject
  26. APPEND 'Dear Vendor,' TO lt_message_body.
  27. APPEND INITIAL LINE to lt_message_body.
  28. APPEND 'Please fill the attached .' TO lt_message_body.
  29. APPEND INITIAL LINE to lt_message_body.
  30. APPEND 'Thank You,' TO lt_message_body.
  31.  
  32. "put your text into the document
  33. lo_document = cl_document_bcs=>create_document(
  34.                  i_type = 'RAW'
  35.                  i_text = lt_message_body
  36.                  i_subject = 'Vendor Payment Form' ).
  37.  
  38.  
  39.   lo_document->add_attachment(
  40.     EXPORTING
  41.       i_attachment_type = 'PDF'
  42.       i_attachment_subject = 'Form'
  43.       i_att_content_hex = lt_att_content_hex ).
  44.  
  45.   CATCH cx_document_bcs INTO lx_document_bcs.
  46.  
  47. * Add attachment
  48. * Pass the document to send request
  49. lo_send_request->set_document( lo_document ).
  50.  
  51.  
  52. "Create sender
  53. lo_sender = cl_cam_address_bcs=>create_internet_address( lv_send ).
  54.  
  55. "Set sender
  56. lo_send_request->set_sender( lo_sender ).
  57.  
  58. "Create recipient
  59. lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
  60.  
  61. *Set recipient
  62. lo_send_request->add_recipient(
  63.      EXPORTING
  64.        i_recipient = lo_recipient i_express = 'X' ).
  65.  
  66. lo_send_request->add_recipient( lo_recipient ).
  67.  
  68. * Send email
  69. lo_send_request->send(
  70.   EXPORTING
  71.     i_with_error_screen = 'X'
  72.   RECEIVING
  73.     result = lv_sent_to_all ).
  74.  
  75. COMMIT WORK.
GeSHi ©

Beispiel 2
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Report  YBC_EMAIL_CLASS
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT  ybc_email_class3.
  10. TYPE-POOLS: ixml.
  11. DATA t_att_content_hex TYPE solix_tab.
  12. DATA lo_send_request TYPE REF TO cl_bcs VALUE IS INITIAL.
  13. DATA: lt_message_body TYPE bcsy_text VALUE IS INITIAL,
  14.             lo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL.
  15. DATA: lx_document_bcs TYPE REF TO cx_document_bcs VALUE IS INITIAL.
  16. DATA: lo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL.
  17.  
  18. DATA file_name TYPE ibipparms-path.
  19. DATA file_name1 TYPE string.
  20.  
  21. *TO GET THE FILE NAME IN PRESENTATION SERVER
  22. CALL FUNCTION 'F4_FILENAME'
  23.   EXPORTING
  24.     program_name  = syst-cprog
  25.     dynpro_number = syst-dynnr
  26.     field_name    = ' '
  27.   IMPORTING
  28.     file_name     = file_name.
  29. DATA it_mail_hex TYPE solix_tab.
  30. file_name1 = file_name.
  31.  
  32. CALL FUNCTION 'GUI_UPLOAD'
  33.   EXPORTING
  34.     filename                = file_name1
  35.     filetype                = 'BIN'
  36.     data_tab                = it_mail_hex
  37.   EXCEPTIONS
  38.     file_open_error         = 1
  39.     file_read_error         = 2
  40.     no_batch                = 3
  41.     gui_refuse_filetransfer = 4
  42.     invalid_type            = 5
  43.     no_authority            = 6
  44.     unknown_error           = 7
  45.     bad_data_format         = 8
  46.     header_not_allowed      = 9
  47.     separator_not_allowed   = 10
  48.     header_too_long         = 11
  49.     unknown_dp_error        = 12
  50.     access_denied           = 13
  51.     dp_out_of_memory        = 14
  52.     disk_full               = 15
  53.     dp_timeout              = 16
  54.     OTHERS                  = 17.
  55. IF sy-subrc <> 0.
  56.   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  57.           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  58.  
  59.  
  60.  
  61. CLASS cl_bcs DEFINITION LOAD.
  62. lo_send_request = cl_bcs=>create_persistent( ).
  63.  
  64. * MESSAGE BODY AND SUBJECT
  65. APPEND 'Dear,' TO lt_message_body.
  66. APPEND ' ' TO lt_message_body.
  67. APPEND 'Please find the attached form.'
  68. TO lt_message_body.
  69. APPEND ' '
  70. TO lt_message_body.
  71. APPEND 'Thank You,'
  72. TO lt_message_body.
  73.  
  74. *CREATING DOCUMENT
  75. lo_document = cl_document_bcs=>create_document(
  76. i_type = 'RAW'
  77. i_text = lt_message_body
  78. i_subject = 'Mail Attachment Sample Example'
  79. ).
  80. t_att_content_hex = it_mail_hex.
  81. *CREATE ATTCHMENT AS PDF
  82.     lo_document->add_attachment(
  83.     EXPORTING
  84.     i_attachment_type = 'PDF'
  85.     i_attachment_subject = 'Example Application for mail attachment'
  86.     i_att_content_hex = t_att_content_hex ).
  87.   CATCH cx_document_bcs INTO lx_document_bcs.
  88.  
  89.  
  90. * ADD ATTACHMENT
  91. * PASS THE DOCUMENT TO SEND REQUEST
  92. lo_send_request->set_document( lo_document ).
  93. DATA: lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL,
  94. l_send TYPE adr6-smtp_addr VALUE 'yourmailid@gmail.com'.
  95.  
  96.  
  97. *SET SENDER:
  98. *           THIS IS NECESSARY ONLY IF YOU WANT TO SET THE SENDER
  99. *           DIFFERENT FROM ACTUAL USER (SY-UNAME). OTHERWISE SENDER IS
  100. *           SET AUTOMATICALLY WITH ACTUAL USER.
  101.  
  102. lo_sender = cl_sapuser_bcs=>create( sy-uname ).
  103. lo_send_request->set_sender(
  104. EXPORTING
  105. i_sender = lo_sender ).
  106.  
  107. ** CREATE RECIPIENT
  108. **ADD RECIPIENT (E-MAIL ADDRESS)
  109. *lo_recipient = cl_cam_address_bcs=>create_internet_address(
  110. *                          'Tron@localhost' ).
  111. *
  112. ** SET RECIPIENT
  113. *lo_send_request->add_recipient(
  114. *EXPORTING
  115. *i_recipient = lo_recipient
  116. *i_express = 'X'           ).
  117.  
  118.  
  119. * CREATE RECIPIENT
  120. *ADD RECIPIENT (INTERNAL USER)
  121. lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
  122.  
  123. * SET RECIPIENT
  124. lo_send_request->add_recipient(
  125. EXPORTING
  126. i_recipient = lo_recipient
  127. i_express = 'X'           ).
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134. * SEND EMAIL
  135. DATA: lv_sent_to_all(1) TYPE c VALUE IS INITIAL.
  136. lo_send_request->send(
  137. EXPORTING
  138. i_with_error_screen = 'X'
  139. RECEIVING
  140. result = lv_sent_to_all ).
  141. COMMIT WORK.
GeSHi ©


gruß Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: Ausführbare SAP-Mail mit BCS

Postby Josie2243 » Thu Mar 14, 2013 10:34 am

Tron hat geschrieben:meint ihr so ?


Nein ;-)

Wenn man eine SAP-Mail versendet, kann man diese im SAP Workplace ausführbar machen. Das Ausführen ist ein Call Transaktion mit Parameter übergabe. Funktioniert m.W. nicht per eMail.

Wie man dies über die FuBas hinbekommt ist mir klar, aber über BCS leider nicht.
Ausführbare SAP-Mails sind manchmal ganz praktisch, um z.B. den User direkt in den Beleg zu schicken, nur die FuBas sind etwas unpraktisch (z.B. Längenbegrenzung der Parameter-IDs). Deshalb besteht die Hoffnung, dass dies mit BCS etwas besser umsetzbar ist.
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Re: Ausführbare SAP-Mail mit BCS

Postby Ursula4506 » Thu Mar 14, 2013 12:09 pm

Hallo Zusammen,
es geht, indem man einen SAP Link Datei als Anlage verschickt.
Man kann ja aus dem SAP Menü per rechtem Mausklick sich solche Dateien erzeugen und auf dem Desktop ablegen ("Verknüpfung erstellen auf dem Desktop").
Dabei entsteht eine Datei, die beispielhaft so aussieht:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. [System]
  2. Name=Z99
  3. Client=201
  4. [User]
  5. Name=UNAME
  6. Language=E
  7. Command=SE38 RS38M-PROGRAMM=ZABAP;
  8. Title=ABAP Editor
  9. Type=Transaction
  10.  
GeSHi ©


Man muss also eigentlich nur ein solches Textfile programmtechnisch erzeugen und als attachment an die Mail anhängen. Parameter können per Semikolon getrennt mitgegeben werden, dabei muss man die Feldnamen auf dem Dynpro der aufgerufenen Transaktion mitgeben (siehe Beispiel).

Bei Doppelklick auf die Datei ( extension .sap!) muss der Anwender noch evtl. ein paar Sicherheitsabfragen beantworten ("Wollen Sie wirklich zulassen..."), dann folgt der Anmeldeschirm des entsprechenden Systems usw. usf.

Gruß
Frank
Ursula4506
...
...
 
Posts: 286
Joined: Fri Apr 15, 2005 8:40 am


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 2 guests