Content Tabelle komprimieren
Beim Verschicken von HTML Mails mit SAP entsteht überlicherweise eine Content Tabelle mit vielen Zeilen. Die Zeilen der Tabelle sind nur minimal gefüllt. Wenn der Mailtext lang wird kann das zu sehr grossen Emails führen, weil die Zeilen immer komplett übertragen werden.
Mit dem folgenden Funktionsbaustein kann man diese Tabelle komprimieren. Ich habe den Code als Beispiel im Internet gefunden und in als Funktionsbaustein implementiert, weil ich häufiger über das Problem stolpere.
function z_compress_content. constants: con_line_len type i value 255. types: t_line like soli. data: lc_txt type t_line, lc_curr type t_line, li_len1 type i, li_len2 type i, li_val type i, lc_substr type t_line, lt_txt like soli occurs 10 with header line, ls_txt like soli, ls_curr like soli. loop at content_tab into ls_txt. lc_curr = ls_curr. lc_txt = ls_txt. li_len1 = strlen( lc_curr ). li_len2 = strlen( lc_txt ). li_val = li_len1 + li_len2. if li_val <= con_line_len. concatenate lc_curr lc_txt into lc_curr. ls_curr = lc_curr. else. li_val = con_line_len - li_len1. if li_val &tt; 0. lc_substr = lc_txt+0(li_val). concatenate lc_curr lc_substr into lc_curr. endif. ls_curr = lc_curr. append ls_curr to lt_txt. lc_curr = lc_txt+li_val. li_len2 = strlen( lc_substr ). if li_len2 < li_val. concatenate '' lc_curr into lc_curr separated by space. endif. ls_curr = lc_curr. endif. endloop. append ls_curr to lt_txt. content_tab[] = lt_txt[]. endfunction.