{"id":251,"date":"2024-05-26T15:52:14","date_gmt":"2024-05-26T15:52:14","guid":{"rendered":"https:\/\/sapabap.dwimansolution.com\/?p=251"},"modified":"2024-05-26T16:09:11","modified_gmt":"2024-05-26T16:09:11","slug":"sap-abap-simple-send-email-with-internal-table-as-attachment-framework-tools","status":"publish","type":"post","link":"https:\/\/sapabap.dwimansolution.com\/index.php\/2024\/05\/26\/sap-abap-simple-send-email-with-internal-table-as-attachment-framework-tools\/","title":{"rendered":"SAP ABAP \u2013 Simple Send Email with Internal Table as Attachment (Framework Tools)"},"content":{"rendered":"\n<p>Bismillah..<\/p>\n\n\n\n<p>First, please copy paste this zcl_utilities2 to your class. Because we will use this class as tools to develop our email framework.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-ef0520d6-a6d3-42a1-b255-3c65dd877485\" href=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/zcl_utilities2.txt\">zcl_utilities2<\/a><a href=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/zcl_utilities2.txt\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-ef0520d6-a6d3-42a1-b255-3c65dd877485\">Download<\/a><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-10-1024x297.png\" alt=\"\" class=\"wp-image-143\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SE75 &#8211; Create Object for Body Text and Subject<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image.png\" alt=\"\" class=\"wp-image-131\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Create new objects ZEMAIL<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1.png\" alt=\"\" class=\"wp-image-132\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2.png\" alt=\"\" class=\"wp-image-133\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-1024x648.png\" alt=\"\" class=\"wp-image-134\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Then, create TextID for body and subject<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>* ==================================================================== *\n* Program......: ZABAP_EMAIL                                           *\n* Title........: Set body email                                        *\n* ==================================================================== *\nREPORT ZABAP_EMAIL.\n* -------------------------------------------------------------------- *\n*  G L O B A L   V A R I A B L E\n* -------------------------------------------------------------------- *\nDATA: gv_name     TYPE thead-tdname,\n      ok_code     TYPE syst-ucomm,\n      gv_subject  TYPE char72.\n\nDATA:\n  o_cont   TYPE REF TO cl_gui_custom_container,\n  o_editor TYPE REF TO cl_gui_textedit.\n\n* -------------------------------------------------------------------- *\n*  S T A R T   O F    S E L E C T I O N\n* -------------------------------------------------------------------- *\nSTART-OF-SELECTION.\n  CALL SCREEN 100.\n\n* -------------------------------------------------------------------- *\n*  S U B R O U T I N E S\n* -------------------------------------------------------------------- *\n\n*&amp;---------------------------------------------------------------------*\n*&amp; Module STATUS_0100 OUTPUT\n*&amp;---------------------------------------------------------------------*\n*&amp;\n*&amp;---------------------------------------------------------------------*\nMODULE status_0100 OUTPUT.\n  SET PF-STATUS 'ST_0100'.\n  SET TITLEBAR 'TI_0100'.\n\n  IF o_editor IS NOT BOUND.\n    PERFORM f_create_editor.\n  ENDIF.\n\n\nENDMODULE.\n\n\n*&amp;---------------------------------------------------------------------*\n*&amp;      Module  USER_COMMAND_0100  INPUT\n*&amp;---------------------------------------------------------------------*\n*       text\n*----------------------------------------------------------------------*\nMODULE user_command_0100 INPUT.\n  CASE ok_code.\n    WHEN '&amp;SAVE'.\n      PERFORM f_save.\n    WHEN '&amp;LOAD'.\n      PERFORM f_load.\n  ENDCASE.\nENDMODULE.\n\n\n*&amp;---------------------------------------------------------------------*\n*&amp;      Module  USER_COMMAND_EXIT  INPUT\n*&amp;---------------------------------------------------------------------*\n*       text\n*----------------------------------------------------------------------*\nMODULE user_command_exit INPUT.\n  LEAVE TO SCREEN 0.\nENDMODULE.\n\n\n*&amp;---------------------------------------------------------------------*\n*&amp; Form f_save\n*&amp;---------------------------------------------------------------------*\n*&amp; text\n*&amp;---------------------------------------------------------------------*\n*&amp; --&gt;  p1        text\n*&amp; &lt;--  p2        text\n*&amp;---------------------------------------------------------------------*\nFORM f_save .\n  DATA: lt_text_string  TYPE STANDARD TABLE OF string.\n  DATA: lt_lines  TYPE bbpt_tline.\n  DATA: lv_string TYPE string.\n\n  DATA(lv_ans) = zcl_utilities2=&gt;popup_to_confirm( 'Are you sure want to save?' ).\n  CHECK lv_ans EQ '1'.\n\n  DATA: lt_text TYPE TABLE OF char128.\n  o_editor-&gt;get_text_as_stream( IMPORTING text = lt_text ).\n\n  CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'\n    TABLES\n      text_stream = lt_text\n      itf_text    = lt_lines.\n\n\n  zcl_utilities2=&gt;set_text_email( EXPORTING im_id = zcl_utilities2=&gt;gc_textid_body\n                                            im_name = gv_name\n                                            im_t_lines = lt_lines ).\n\n  \" save subject\n  CLEAR: lt_lines.\n  APPEND INITIAL LINE TO lt_lines ASSIGNING FIELD-SYMBOL(&lt;lfs_lines&gt;).\n  &lt;lfs_lines&gt;-tdformat = '*'.\n  &lt;lfs_lines&gt;-tdline = gv_subject.\n\n  zcl_utilities2=&gt;set_text_email( EXPORTING im_id = zcl_utilities2=&gt;gc_textid_subject\n                                            im_name = gv_name\n                                            im_t_lines = lt_lines ).\n\nENDFORM.\n\n\n*&amp;---------------------------------------------------------------------*\n*&amp; Form f_create_editor\n*&amp;---------------------------------------------------------------------*\n*&amp; text\n*&amp;---------------------------------------------------------------------*\n*&amp; --&gt;  p1        text\n*&amp; &lt;--  p2        text\n*&amp;---------------------------------------------------------------------*\nFORM f_create_editor .\n  zcl_utilities2=&gt;create_text_editor(\n    EXPORTING\n      im_cont_name = 'CONT_EDITOR'\n*     im_text      =\n    CHANGING\n      co_cont      = o_cont\n      co_editor    = o_editor\n  ).\nENDFORM.\n\n\n*&amp;---------------------------------------------------------------------*\n*&amp; Form f_load\n*&amp;---------------------------------------------------------------------*\n*&amp; text\n*&amp;---------------------------------------------------------------------*\n*&amp; --&gt;  p1        text\n*&amp; &lt;--  p2        text\n*&amp;---------------------------------------------------------------------*\nFORM f_load .\n  DATA: lv_string TYPE string.\n  zcl_utilities2=&gt;get_text_email( EXPORTING im_id = zcl_utilities2=&gt;gc_textid_body im_name = gv_name IMPORTING ev_string = lv_string ).\n  IF lv_string IS NOT INITIAL.\n    o_editor-&gt;set_textstream( lv_string ).\n  ENDIF.\n\n  \" load subject\n  CLEAR: lv_string.\n  zcl_utilities2=&gt;get_text_email( EXPORTING im_id = zcl_utilities2=&gt;gc_textid_subject im_name = gv_name IMPORTING ev_string = lv_string ).\n  gv_subject = lv_string.\n\nENDFORM.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Screen 0100 like this<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-5-1024x556.png\" alt=\"\" class=\"wp-image-136\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>and create status<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-7-1024x523.png\" alt=\"\" class=\"wp-image-138\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">HOW TO USE IT<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">1. Create Your Text <\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-9.png\" alt=\"\" class=\"wp-image-141\"\/><\/figure>\n\n\n\n<p><em>&amp;1 will be replaced with parameter variable im_param1<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Insert this example code to your send email program<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>      DATA(lv_xstring) = zcl_utilities2=&gt;get_xstring_from_itab( &lt;itab_email_content&gt; ).\n      zcl_utilities2=&gt;send_email( EXPORTING im_transid = 'EXAMPLE001'\n                                            im_attc_filename = 'Attachmentxxx'\n                                            im_attachment = lv_xstring\n                                            it_to = VALUE #( ( 'test@email.com' ) )\n                                            it_cc = VALUE #( ( 'testcc@email.com' ) )\n                                            im_param1 = 'param1'\n                                            ).<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Result<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"388\" src=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1024x388.png\" alt=\"\" class=\"wp-image-254\" srcset=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1024x388.png 1024w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-300x114.png 300w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-768x291.png 768w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-850x322.png 850w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image.png 1252w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"462\" height=\"712\" src=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1.png\" alt=\"\" class=\"wp-image-256\" srcset=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1.png 462w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1-195x300.png 195w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-1-300x462.png 300w\" sizes=\"(max-width: 462px) 100vw, 462px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Then I insert some escape code<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  LOOP AT lt_lines ASSIGNING FIELD-SYMBOL(&lt;lfs_lines>).\n    REPLACE ALL OCCURRENCES OF '&lt;(>&amp;&lt;)>' IN &lt;lfs_lines> WITH '&amp;'.\n  ENDLOOP.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Then here the <strong>final result<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"810\" height=\"857\" src=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2.png\" alt=\"\" class=\"wp-image-257\" srcset=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2.png 810w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2-284x300.png 284w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2-768x813.png 768w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-2-300x317.png 300w\" sizes=\"(max-width: 810px) 100vw, 810px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"755\" src=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-1024x755.png\" alt=\"\" class=\"wp-image-260\" srcset=\"https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-1024x755.png 1024w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-300x221.png 300w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-768x567.png 768w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3-850x627.png 850w, https:\/\/sapabap.dwimansolution.com\/wp-content\/uploads\/2024\/05\/image-3.png 1052w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Bismillah.. First, please copy paste this zcl_utilities2 to your class. Because we will use this class as tools to develop our email framework. SE75 &#8211; Create Object for Body Text and Subject Create new objects ZEMAIL Then, create TextID for body and subject Screen 0100 like this and create status HOW TO USE IT 1&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/posts\/251"}],"collection":[{"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/comments?post=251"}],"version-history":[{"count":3,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/posts\/251\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/posts\/251\/revisions\/261"}],"wp:attachment":[{"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/media?parent=251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/categories?post=251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sapabap.dwimansolution.com\/index.php\/wp-json\/wp\/v2\/tags?post=251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}