ABAP mail gönderme programı

Bir internal tablodaki kayıtların html formatında mail olarak atılması.

abap_mail

*************************************************************************************************

REPORT  ZPP_R_BOYARAF_ILK_30KG_MAIL.
DATA:
BEGIN OF it_boyaraf OCCURS 0,
matnr like mchbmatnr,
meins LIKE marameins,
clabs LIKE mchbclabs,
mustr LIKE ZMME_002mustr,
bmatnr like mchbmatnr,
dikis_gr_1_dz like zpd_036dikis_gr_1_dz,
kg LIKE mchbclabs,
renk LIKE ZPD_057BOYA_NOTU,
lgort LIKE ZPD_057BOYA_NOTU,
END OF it_boyaraf,
wa_boyaraf LIKE LINE OF it_boyaraf.
DATA:
BEGIN OF t_mail OCCURS 0,
receiver TYPE ZPP_T_MAILGRUPSMTP_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 sydatum.
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 mchbmatnr,
renk like CAWNTATWTB,
END OF lt_salesorders2,
wa_salesorders2 LIKE LINE OF lt_salesorders2.
DATA:
BEGIN OF lt_salesorders3 OCCURS 0,
orgu like mchbmatnr,
renk like CAWNTATWTB,
END OF lt_salesorders3,
wa_salesorders3 LIKE LINE OF lt_salesorders3.

data lv_matnr type mchbmatnr.  “16.11.2015 Fahri Dönmez
data lv_clabs type mchbCLABS.  “16.11.2015 Fahri Dönmez
data lv_kg type mchbCLABS.  “16.11.2015 Fahri Dönmez
data lv_lgort type mchblgort.  “16.11.2015 Fahri Dönmez

dat_1f sydatum – 30.

* Fabrika mail
* Document Description
w_docdataobj_name  text001“‘Boya İlk Defa Boyanacak Ürün Raporu’.
w_docdataobj_descr =   text000”  ‘Miktarı 30 Kg olan yeni ürünler’.

* Message Body
w_objtxtline ‘<html> <body>’.
APPEND w_objtxt TO t_objtxt.

w_objtxtline ‘<p> Boya İlk Defa Boyanacak Ürün Raporu </p>’.
APPEND w_objtxt TO t_objtxt.
*   table display
w_objtxtline ‘<table style=”MARGIN: 10px” bordercolor=”blue” ‘.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘ cellspacing=”0″ cellpadding=”5″ width=”500″‘.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘ border=”1″><tbody><tr>’.
APPEND w_objtxt TO t_objtxt.
*   table header
w_objtxtline ‘<th bgcolor=”yellow” nowrap>Raf Ürün</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow”>Birim</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow” nowrap>Toplam Adet</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow”>Müşteri</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow”>Boya Ürün</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow” nowrap>PD 1 DZ Dkş.Grm.</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow”>KG</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<th bgcolor=”yellow” nowrap>Renk Listesi</th>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<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
sumb~clabs as clabs  b~lgort
INTO CORRESPONDING FIELDS OF TABLE it_boyaraf
from  mchb AS b
INNER JOIN mara as on m~matnr eq b~matnr
LEFT OUTER JOIN ZMME_002 as on z~matnr eq b~matnr
left OUTER JOIN stpo as on s~idnrk eq b~matnr
inner JOIN mast as on t~stlnr eq  s~stlnr
INNER JOIN mara as 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 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 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 sysubrc <> 0.
WRITEtext004.“‘Hata.’.
ELSE.

CALL FUNCTION ‘ZPP_RFC_SD_IKI_TARIH_ARASI’
TABLES
T_SALESORDERS lt_salesorders
EXCEPTIONS
NO_ENTRY      1
OTHERS        2.
IF sysubrc <> 0.
*  pl sip yok
ENDIF.
CLEARlt_salesorders2lt_salesorders3.
LOOP AT lt_salesorders INTO wa_salesorders.
wa_salesorders2orgu wa_salesordersorgu.
wa_salesorders2renk wa_salesordersrenk.
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 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_salesorders2orgu wa_salesorders3orgu+2(6).
wa_salesorders2renk wa_salesorders3renk+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_boyarafdikis_gr_1_dz
from zpd_036 where urun_kodu eq wa_boyarafmatnr+0(6).
wa_boyarafkg =
wa_boyarafdikis_gr_1_dz *  wa_boyarafclabs 12000.

LOOP at lt_salesorders2 INTO wa_salesorders2.
if wa_salesorders2orgu wa_boyarafmatnr+0(6).
if wa_boyarafrenk =.
wa_boyarafrenk wa_salesorders2renk.
else.
CONCATENATE wa_boyarafrenk wa_salesorders2renk
INTO wa_boyarafrenk 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’.
CLEARlv_matnrlv_clabslv_lgort.
LOOP at it_boyaraf INTO wa_boyaraf.
if lv_matnr wa_boyarafMATNR.
wa_boyarafCLABS wa_boyarafCLABS + lv_clabs.
wa_boyarafkg wa_boyarafkg + lv_kg.
CONCATENATE wa_boyaraflgort lv_lgort
INTO wa_boyaraflgort 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_boyarafMATNR.
lv_clabs wa_boyarafCLABS.
lv_kg wa_boyarafkg.
lv_lgort wa_boyaraflgort.
ENDLOOP.
LOOP at it_boyaraf INTO wa_boyaraf.
if wa_boyarafkg <> 0.
if wa_boyarafkg < 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_boyarafmatnr
‘</td>’
INTO w_objtxt.
APPEND w_objtxt TO t_objtxt.
CONCATENATE ‘<td>’ wa_boyarafmeins ‘</td> ‘ INTO w_objtxtline.
APPEND w_objtxt TO t_objtxt.
mcarpan wa_boyarafclabs.
CONCATENATE ‘<td>’ mcarpan ‘</td>’ INTO w_objtxtline.
APPEND w_objtxt TO t_objtxt.

CONCATENATE ‘<td nowrap>’ wa_boyarafmustr‘</td>’
INTO w_objtxtline.

APPEND w_objtxt TO t_objtxt.

CONCATENATE ‘<td>’ wa_boyarafbmatnr‘</td>’ INTO w_objtxtline.

APPEND w_objtxt TO t_objtxt.
mcarpan wa_boyarafdikis_gr_1_dz.
CONCATENATE ‘<td>’ mcarpan‘</td>’ INTO w_objtxtline.

APPEND w_objtxt TO t_objtxt.
mcarpan wa_boyarafkg.
CONCATENATE ‘<td>’ mcarpan‘</td>’ INTO w_objtxtline.

APPEND w_objtxt TO t_objtxt.

CONCATENATE ‘<td nowrap>’  wa_boyarafrenk  ‘</td>’ INTO
w_objtxtline.

APPEND w_objtxt TO t_objtxt.
CONCATENATE ‘<td>’ wa_boyarafLGORT‘</td>’ INTO w_objtxtline.

APPEND w_objtxt TO t_objtxt.
ENDLOOP.

*   table close
w_objtxtline ‘</tbody> </table>’.
APPEND w_objtxt TO t_objtxt.

*   Signature with background color
w_objtxtline ‘<br><br>’.
APPEND w_objtxt TO t_objtxt.
w_objtxtline ‘<p> Saygılar.</p>’.
APPEND w_objtxt TO t_objtxt.
*   HTML close
w_objtxtline ‘</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_docdatadoc_size =
w_lines – 255 STRLENw_objtxt ).

* Packing data
CLEAR w_objpacktransf_bin.
w_objpackhead_start 1.
w_objpackhead_num   0.
w_objpackbody_start 1.
w_objpackbody_num   w_lines.
*   we will pass the HTML, since we have created the message
*   body in the HTML
w_objpackdoc_type   ‘HTML’.
APPEND w_objpack TO t_objpack.

*fabrika alıcı

loop at t_mail INTO ls_mail.
w_reclistreceiver ls_mailreceiver.
w_reclistrec_type ‘U’.
APPEND w_reclist TO t_reclist.
CLEAR:  w_reclistls_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 sysubrc <> 0.
WRITEtext002” ‘Fabrika Mail hata!’.
ELSE.
WRITEtext003.“‘Fabrika Mail gönderildi.’.
ENDIF.
ENDIF.

*************************************************************************************************

ABAP mail gönderme programı” üzerine 2 düşünce

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.