Created
December 13, 2018 10:31
-
-
Save fahridon/43fe1ebfd3144204b790cefe70224c2c to your computer and use it in GitHub Desktop.
ABAP: Send HTML table mail.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DATA: | |
BEGIN OF it_boyaraf OCCURS 0, | |
matnr LIKE mchb–matnr, | |
meins LIKE mara–meins, | |
clabs LIKE mchb–clabs, | |
mustr LIKE zmme_002–mustr, | |
bmatnr LIKE mchb–matnr, | |
dikis_gr_1_dz LIKE zpd_036–dikis_gr_1_dz, | |
kg LIKE mchb–clabs, | |
renk LIKE zpd_057–boya_notu, | |
lgort LIKE zpd_057–boya_notu, | |
END OF it_boyaraf, | |
wa_boyaraf LIKE LINE OF it_boyaraf. | |
DATA: | |
BEGIN OF t_mail OCCURS 0, | |
receiver TYPE zpp_t_mailgrup–smtp_addr, | |
END OF t_mail, | |
ls_mail LIKE LINE OF t_mail. | |
DATA: | |
w_docdata TYPE sodocchgi1, | |
w_objtxt TYPE solisti1, | |
w_objbin TYPE solisti1, | |
w_objpack TYPE sopcklsti1, | |
w_reclist TYPE somlreci1, | |
w_lines TYPE i, | |
* Table declaration | |
t_objbin TYPE TABLE OF solisti1, " Attachment data | |
t_objtxt TYPE TABLE OF solisti1, " Message body | |
t_objpack TYPE TABLE OF sopcklsti1, " Packing list | |
t_reclist TYPE TABLE OF somlreci1, " Receipient list | |
t_objhead TYPE TABLE OF solisti1. " Header | |
DATA: dat_1f TYPE sy–datum. | |
DATA: mcarpan(12). | |
DATA : | |
lt_salesorders TYPE STANDARD TABLE OF zsd_s_mt_ikitarih INITIAL | |
SIZE 0, | |
wa_salesorders LIKE LINE OF lt_salesorders. | |
DATA: | |
BEGIN OF lt_salesorders2 OCCURS 0, | |
orgu LIKE mchb–matnr, | |
renk LIKE cawnt–atwtb, | |
END OF lt_salesorders2, | |
wa_salesorders2 LIKE LINE OF lt_salesorders2. | |
DATA: | |
BEGIN OF lt_salesorders3 OCCURS 0, | |
orgu LIKE mchb–matnr, | |
renk LIKE cawnt–atwtb, | |
END OF lt_salesorders3, | |
wa_salesorders3 LIKE LINE OF lt_salesorders3. | |
DATA lv_matnr TYPE mchb–matnr. | |
DATA lv_clabs TYPE mchb–clabs. | |
DATA lv_kg TYPE mchb–clabs. | |
DATA lv_lgort TYPE mchb–lgort. | |
dat_1f = sy–datum – 30. | |
* Fabrika mail | |
* Document Description | |
w_docdata–obj_name = text–001. “'Boya İlk Defa Boyanacak Ürün Raporu'. | |
w_docdata–obj_descr = text–000. " 'Miktarı 30 Kg olan yeni ürünler'. | |
* Message Body | |
w_objtxt–line = '<html> <body>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<p> Boya İlk Defa Boyanacak Ürün Raporu </p>'. | |
APPEND w_objtxt TO t_objtxt. | |
* table display | |
w_objtxt–line = '<table style="MARGIN: 10px" bordercolor="blue" '. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = ' cellspacing="0″ cellpadding="5″ width="500″'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = ' border="1″><tbody><tr>'. | |
APPEND w_objtxt TO t_objtxt. | |
* table header | |
w_objtxt–line = '<th bgcolor="yellow" nowrap>Raf Ürün</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow">Birim</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow" nowrap>Toplam Adet</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow">Müşteri</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow">Boya Ürün</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow" nowrap>PD 1 DZ Dkş.Grm.</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow">KG</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow" nowrap>Renk Listesi</th>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<th bgcolor="yellow" nowrap>Depo</th></tr>'. | |
APPEND w_objtxt TO t_objtxt. | |
SELECT smtp_addr AS receiver | |
FROM zpp_t_mailgrup INTO TABLE t_mail | |
WHERE tcode EQ 'ZMMR002'. | |
SELECT b~matnr m~meins z~mustr t~matnr AS bmatnr | |
SUM( b~clabs ) AS clabs b~lgort | |
INTO CORRESPONDING FIELDS OF TABLE it_boyaraf | |
FROM mchb AS b | |
INNER JOIN mara AS m ON m~matnr EQ b~matnr | |
LEFT OUTER JOIN zmme_002 AS z ON z~matnr EQ b~matnr | |
LEFT OUTER JOIN stpo AS s ON s~idnrk EQ b~matnr | |
INNER JOIN mast AS t ON t~stlnr EQ s~stlnr | |
INNER JOIN mara AS f ON f~matnr EQ t~matnr | |
WHERE b~lvorm EQ space AND m~lvorm EQ space | |
AND b~lgort IN ('4002','5001') | |
AND f~matkl EQ 'Y-BOY' | |
AND b~clabs NE 0 AND m~lvorm EQ space | |
AND NOT EXISTS | |
( SELECT matnr FROM zpp_t_ias_boya WHERE matnr EQ t~matnr ) | |
AND NOT EXISTS | |
( SELECT n~matnr FROM zpp_t_boya_psb AS n | |
INNER JOIN rkpf AS r ON n~rsnum = r~rsnum | |
WHERE n~matnr EQ t~matnr ) | |
GROUP BY b~matnr m~meins z~mustr t~matnr b~lgort | |
ORDER BY b~matnr b~lgort. | |
IF sy–subrc <> 0. | |
WRITE: text–004.“'Hata.'. | |
ELSE. | |
CALL FUNCTION 'ZPP_RFC_SD_IKI_TARIH_ARASI' | |
TABLES | |
t_salesorders = lt_salesorders | |
EXCEPTIONS | |
no_entry = 1 | |
OTHERS = 2. | |
IF sy–subrc <> 0. | |
* pl sip yok | |
ENDIF. | |
CLEAR: lt_salesorders2, lt_salesorders3. | |
LOOP AT lt_salesorders INTO wa_salesorders. | |
wa_salesorders2–orgu = wa_salesorders–orgu. | |
wa_salesorders2–renk = wa_salesorders–renk. | |
COLLECT wa_salesorders2 INTO lt_salesorders2. | |
CLEAR wa_salesorders2. | |
ENDLOOP. | |
SELECT a~matnr AS orgu a~j_3akordx AS renk | |
INTO CORRESPONDING FIELDS OF TABLE lt_salesorders3 | |
FROM mean AS a | |
INNER JOIN zmrp_t002 AS b ON b~matnr = a~matnr | |
* and a~j_3akordx = b~renk “sipi olmayan gelmesin | |
WHERE a~ean11 LIKE '%' AND a~j_3akordx <> '' | |
AND b~xloek <> 'X'. | |
LOOP AT lt_salesorders3 INTO wa_salesorders3. | |
wa_salesorders2–orgu = wa_salesorders3–orgu+2(6). | |
wa_salesorders2–renk = wa_salesorders3–renk+3(5). | |
COLLECT wa_salesorders2 INTO lt_salesorders2. | |
CLEAR wa_salesorders2. | |
ENDLOOP. | |
LOOP AT it_boyaraf INTO wa_boyaraf. | |
SELECT SINGLE dikis_gr_1_dz INTO wa_boyaraf–dikis_gr_1_dz | |
FROM zpd_036 WHERE urun_kodu EQ wa_boyaraf–matnr+0(6). | |
wa_boyaraf–kg = | |
( wa_boyaraf–dikis_gr_1_dz * wa_boyaraf–clabs ) / 12000. | |
LOOP AT lt_salesorders2 INTO wa_salesorders2. | |
IF wa_salesorders2–orgu = wa_boyaraf–matnr+0(6). | |
IF wa_boyaraf–renk =''. | |
wa_boyaraf–renk = wa_salesorders2–renk. | |
ELSE. | |
CONCATENATE wa_boyaraf–renk wa_salesorders2–renk | |
INTO wa_boyaraf–renk SEPARATED BY ', '. | |
ENDIF. | |
ENDIF. | |
ENDLOOP. | |
MODIFY it_boyaraf FROM wa_boyaraf. | |
CLEAR wa_boyaraf. | |
ENDLOOP. | |
DELETE it_boyaraf WHERE renk = space. | |
DELETE it_boyaraf WHERE renk = 'RENKSIZ'. | |
CLEAR: lv_matnr, lv_clabs, lv_lgort. | |
LOOP AT it_boyaraf INTO wa_boyaraf. | |
IF lv_matnr = wa_boyaraf–matnr. | |
wa_boyaraf–clabs = wa_boyaraf–clabs + lv_clabs. | |
wa_boyaraf–kg = wa_boyaraf–kg + lv_kg. | |
CONCATENATE wa_boyaraf–lgort lv_lgort | |
INTO wa_boyaraf–lgort SEPARATED BY ', '. | |
MODIFY it_boyaraf FROM wa_boyaraf. | |
CLEAR wa_boyaraf. | |
DELETE it_boyaraf WHERE matnr = lv_matnr | |
AND lgort = lv_lgort AND clabs = lv_clabs AND kg = lv_kg. | |
ENDIF. | |
lv_matnr = wa_boyaraf–matnr. | |
lv_clabs = wa_boyaraf–clabs. | |
lv_kg = wa_boyaraf–kg. | |
lv_lgort = wa_boyaraf–lgort. | |
ENDLOOP. | |
LOOP AT it_boyaraf INTO wa_boyaraf. | |
IF wa_boyaraf–kg <> 0. | |
IF wa_boyaraf–kg < 30. | |
DELETE TABLE it_boyaraf FROM wa_boyaraf. | |
ENDIF. | |
ENDIF. | |
ENDLOOP. | |
LOOP AT it_boyaraf INTO wa_boyaraf. | |
CONCATENATE '<tr style="background-color:#eeeeee;"><td>' | |
wa_boyaraf–matnr | |
'</td>' | |
INTO w_objtxt. | |
APPEND w_objtxt TO t_objtxt. | |
CONCATENATE '<td>' wa_boyaraf–meins '</td> ' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
mcarpan = wa_boyaraf–clabs. | |
CONCATENATE '<td>' mcarpan '</td>' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
CONCATENATE '<td nowrap>' wa_boyaraf–mustr'</td>' | |
INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
CONCATENATE '<td>' wa_boyaraf–bmatnr'</td>' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
mcarpan = wa_boyaraf–dikis_gr_1_dz. | |
CONCATENATE '<td>' mcarpan'</td>' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
mcarpan = wa_boyaraf–kg. | |
CONCATENATE '<td>' mcarpan'</td>' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
CONCATENATE '<td nowrap>' wa_boyaraf–renk '</td>' INTO | |
w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
CONCATENATE '<td>' wa_boyaraf–lgort'</td>' INTO w_objtxt–line. | |
APPEND w_objtxt TO t_objtxt. | |
ENDLOOP. | |
* table close | |
w_objtxt–line = '</tbody> </table>'. | |
APPEND w_objtxt TO t_objtxt. | |
* Signature with background color | |
w_objtxt–line = '<br><br>'. | |
APPEND w_objtxt TO t_objtxt. | |
w_objtxt–line = '<p> Saygılar.</p>'. | |
APPEND w_objtxt TO t_objtxt. | |
* HTML close | |
w_objtxt–line = '</body> </html> '. | |
APPEND w_objtxt TO t_objtxt. | |
* Document data | |
DESCRIBE TABLE t_objtxt LINES w_lines. | |
READ TABLE t_objtxt INTO w_objtxt INDEX w_lines. | |
w_docdata–doc_size = ( w_lines – 1 ) * 255 + strlen( w_objtxt ). | |
* Packing data | |
CLEAR w_objpack–transf_bin. | |
w_objpack–head_start = 1. | |
w_objpack–head_num = 0. | |
w_objpack–body_start = 1. | |
w_objpack–body_num = w_lines. | |
* we will pass the HTML, since we have created the message | |
* body in the HTML | |
w_objpack–doc_type = 'HTML'. | |
APPEND w_objpack TO t_objpack. | |
*fabrika alıcı | |
LOOP AT t_mail INTO ls_mail. | |
w_reclist–receiver = ls_mail–receiver. | |
w_reclist–rec_type = 'U'. | |
APPEND w_reclist TO t_reclist. | |
CLEAR: w_reclist, ls_mail. | |
ENDLOOP. | |
* Send Mail | |
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' | |
EXPORTING | |
document_data = w_docdata | |
put_in_outbox = 'X' | |
commit_work = 'X' | |
TABLES | |
packing_list = t_objpack | |
object_header = t_objhead | |
contents_txt = t_objtxt | |
receivers = t_reclist | |
EXCEPTIONS | |
too_many_receivers = 1 | |
document_not_sent = 2 | |
document_type_not_exist = 3 | |
operation_no_authorization = 4 | |
parameter_error = 5 | |
x_error = 6 | |
enqueue_error = 7 | |
OTHERS = 8. | |
IF sy–subrc <> 0. | |
WRITE: text–002. " 'Fabrika Mail hata!'. | |
ELSE. | |
WRITE: text–003."'Fabrika Mail gönderildi.'. | |
ENDIF. | |
ENDIF. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment