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.

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

14 views

Abap Native SQL de DateTime ile sorgu

DATA:
LRC_ROOT  TYPE REF TO CX_ROOT,
LFD_TEXT  TYPE STRING,
l_time TYPE char8,
tp_time1(19TYPE c,
tp_time2(19TYPE c.

CONCATENATE s_uzeit+0(2s_uzeit+2(2s_uzeit+4(2)
INTO l_time SEPARATED BY ‘:’.

CONCATENATE s_crdatlow+0(4s_crdatlow+4(2s_crdatlow+6(2)
INTO   tp_time1 SEPARATED BY ‘-‘.

CONCATENATE tp_time1 l_time INTO tp_time1 SEPARATED BY space.

CONCATENATE s_crdathigh+0(4s_crdathigh+4(2s_crdathigh+6(2)
INTO   tp_time2 SEPARATED BY ‘-‘.

CONCATENATE tp_time2 l_time INTO tp_time2 SEPARATED BY space.
TRY.

EXEC SQL.
OPEN FOR
SELECT Sicil,Giris,Cikis
FROM VwPdks
WHERE Giris >= :tp_time1
AND Cikis <= :tp_time2
ENDEXEC.

DO.

EXEC SQL.
FETCH NEXT into :ls_pdksSicil,
:ls_pdksGiris,
:ls_pdksCikis
ENDEXEC.

IF SYSUBRC 0.
APPEND ls_pdks TO lt_pdks.
CLEAR ls_pdks.
ELSE.
EXIT.
ENDIF.
ENDDO.

CATCH CX_ROOT INTO LRC_ROOT.
LFD_TEXT LRC_ROOT->GET_TEXT).
MESSAGE ID ‘ZPP’ TYPE ‘E’ NUMBER ‘000’
WITH LFD_TEXT SYMSGV2 SYMSGV3 SYMSGV4.

ENDTRY .

6 views

Uygulama 1 – Projesi Dökumanları

Proje Kapsamı:
Üretimde kullanılacak malzemelerin üretim bölgesinde bulunan raflara mobil el terminali ile okutularak Mobil Barkotlu Depo Programı kullanılarak raflara giriş ve çıkışları yapılacak. Böylece sürekli olarak raflardaki adreslerde hangi ürünlerden ne kadar var anlık olarak takip edilebilecek.
Detaylı Açıklama:
Uygulama asp.net ile c# kullanılarak bir web sayfası olarak hazırlanacak.
Mobil Barkotlu Depo Programı’nın kullanılacağı yerde mobil cihazlar var ve bu cihazlarda kurulu olan endüstriyel bir web gezgini ile SAP ERP sistemini kullanmaktalar. Aynı endüstriyel gezgine Mobil Barkotlu Depo Programı’nın bağlantısı da eklenerek kullanıcıların kolaylıkla üretim için SAP ERP sistemini veya depo işlemleri için Mobil Barkotlu Depo Programı’na erişmeleri sağlanacak.
Web sayfaları mobil cihazlara göre hazırlanacak ufak ekranlar olarak tasarlanacak ancak bağlantı adresi masa üstü bilgisayardan da açılabilecek. Böylece tek bir program ara yüzü ile hem mobil kullanıcıların istekleri hem de masaüstü kullanıcıların istekleri karşılanmış olacak.
Uygulama güvenliği için ilk ekranda istenen kullanıcı adı ve parolası SAP ERP sistemindeki kullanıcı adı ve parolasına bir fonksiyon ile bakarak çalışacak, SAP ERP sistemine erişimi olmayan kişinin Mobil Barkotlu Depo Programı’na da erişme izni olmayacak.
Bir barkod depoya ilk defa geliyorsa bilgiler SAP ERP sisteminden, ilk defa gelmiyorsa kendi veri tabanından getirilecek. Barkod hareketleri yapılırken alınan barkod veya depoya yerleştirilen barkod içinden malzeme alındığı için kullanıcıya miktar düzeltme yetkisi verilecek.
Kullanıcı giriş yaparken ilk önce raf adresini sonra da ürünün barkodunu okutacak ve ekrana gelen ürün bilgilerinde eğer miktar düzeltme gerektirmiyorsa giriş onaylanıp kayıt tamamlanacak.
Kullanıcı çıkış yapıyorsa sadece ürün barkodu okutulacak ve ekrana gelen bilgiler içinden sadece miktar düzeltmesi izni olduğundan düzeltip işlemi onaylayarak çıkış işlemini yapacak.

Uygulamada yerine getirilecek işlevler:
1. Depo raf adresleri ve gönderen veya alıcı depo adresleri tanıtma ekranı,
2. Depo raf adresine barkotlu giriş ve çıkış ekranı,
3. Depo raporları:
a. Tarih, ürün kıstası ile giriş çıkış hareketleri raporu ekrana ve pdf.
b. Anlık adresli stok durumu raporu ekrana ve pdf.
c. Depoda yer alan ürünün barkod etiketini çıktısı ekrana ve pdf.
Teslim Edilecekler:
Analiz Raporu
Tasarım Raporu
Gerçekleştirim Raporu
Test Raporu
Program Kaynak Kodu
Veri tabanı tablo oluşturma kodları
Programın Derlenmiş Hali
Örnek veriler içeren veri tabanı yedeği
Program Kurulum Kılavuzu
Program Kullanım Kılavuzu

pdfler:

01 Uygulama Öneri Formu

02 Uygulama Analiz Formu

03 Uygulama Tasarım Raporu

04 Uygulama Gerçekleştirim Raporu

05 Uygulama Test Raporu

09 Uygulama Kurulum Rehberi

10 Uygulama Kullanım Klavuzu

147 views