Created
December 13, 2018 07:02
-
-
Save fahridon/c69aacf2646d90be9ca4dd019574e922 to your computer and use it in GitHub Desktop.
ABAP: Send Email in HTML format from SAP
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
*---------------------------------------------------------------------* | |
* V A R I A B L E S * | |
*---------------------------------------------------------------------* | |
DATA: | |
t_header TYPE STANDARD TABLE OF w3head WITH HEADER LINE, "Header | |
t_fields TYPE STANDARD TABLE OF w3fields WITH HEADER LINE, "Fields | |
t_html TYPE STANDARD TABLE OF w3html, "Html | |
wa_header TYPE w3head, | |
w_head TYPE w3head. | |
DATA:BEGIN OF it_data OCCURS 0, | |
updkz LIKE zpp_t_prodord_l-updkz, " Icron güncelleme göst. | |
aufnr LIKE zpp_t_prodord_l-aufnr, " Sipariş | |
matnr LIKE zpp_t_prodord_l-matnr, " Malzeme | |
menge LIKE zpp_t_prodord_l-menge, " Miktar | |
meins LIKE zpp_t_prodord_l-meins, " ÖB | |
beden LIKE zpp_t_prodord_l-beden, " Matris | |
zzmakina LIKE zpp_t_prodord_l-zzmakina, " Makina Kodu | |
type LIKE zpp_t_prodord_l-type, " Mesaj Tipi | |
message LIKE zpp_t_prodord_l-message, " Mesaj | |
crnam LIKE zpp_t_prodord_l-crnam, " Yaratan | |
crdat LIKE zpp_t_prodord_l-crdat, " Y.Tarihi | |
crtim LIKE zpp_t_prodord_l-crtim, " Y.Saati | |
END OF it_data, | |
wa_data LIKE LINE OF it_data. | |
* Data Declarations | |
DATA: lt_mailsubject TYPE sodocchgi1. | |
DATA: lt_mailrecipients TYPE STANDARD TABLE OF somlrec90 WITH HEADER | |
LINE. | |
DATA: lt_mailtxt TYPE STANDARD TABLE OF soli WITH HEADER | |
LINE. | |
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. | |
*---------------------------------------------------------------------* | |
* S E L E C T I O N S C R E E N * | |
*---------------------------------------------------------------------* | |
*SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-000. | |
*PARAMETERS : P_WERKS LIKE T001W-WERKS OBLIGATORY. | |
*SELECT-OPTIONS : S_MATNR FOR MARA-MATNR. | |
*SELECTION-SCREEN END OF BLOCK BL1 . | |
*---------------------------------------------------------------------* | |
* E V E N T S * | |
*---------------------------------------------------------------------* | |
*---------------------------------------------------------------------* | |
INITIALIZATION. | |
*---------------------------------------------------------------------* | |
*---------------------------------------------------------------------* | |
AT SELECTION-SCREEN OUTPUT. | |
*---------------------------------------------------------------------* | |
*---------------------------------------------------------------------* | |
AT SELECTION-SCREEN. | |
*---------------------------------------------------------------------* | |
* Validate Input At Selection Screen | |
*PERFORM screen_validation. | |
*---------------------------------------------------------------------* | |
START-OF-SELECTION. | |
*---------------------------------------------------------------------* | |
PERFORM build_data. | |
PERFORM send_mail. | |
*---------------------------------------------------------------------* | |
END-OF-SELECTION. | |
*&---------------------------------------------------------------------* | |
*& Form BUILD_DATA | |
*&---------------------------------------------------------------------* | |
FORM build_data . | |
DATA: lv_date1 TYPE sy-datum. | |
DATA: lv_date2 TYPE sy-datum. | |
lv_date1 = sy-datum . | |
lv_date2 = sy-datum - 1. | |
* başarılı olmayan üretim siparişi işlemleri | |
SELECT log~updkz | |
log~aufnr | |
log~matnr | |
log~menge | |
log~meins | |
log~beden | |
log~zzmakina | |
log~type | |
log~message | |
log~crnam | |
log~crdat | |
log~crtim | |
FROM zpp_t_prodord_l AS log | |
INTO TABLE it_data | |
WHERE type NE 'S' | |
AND ( ( log~crdat EQ lv_date1 AND log~crtim LE sy-uzeit ) | |
OR ( log~crdat EQ lv_date2 AND log~crtim GE sy-uzeit ) ). | |
* mak no boş olan siparişler | |
SELECT log~updkz | |
log~aufnr | |
log~matnr | |
log~menge | |
log~meins | |
log~beden | |
log~zzmakina | |
log~type | |
log~message | |
log~crnam | |
log~crdat | |
log~crtim FROM zpp_t_prodord_l AS log | |
INNER JOIN aufk | |
ON log~aufnr EQ aufk~aufnr | |
APPENDING TABLE it_data | |
WHERE ( ( log~crdat EQ lv_date1 AND log~crtim LE sy-uzeit ) | |
OR ( log~crdat EQ lv_date2 AND log~crtim GE sy-uzeit ) ) | |
AND aufk~loekz EQ '' | |
AND aufk~zzmakina EQ ''. | |
LOOP AT it_data INTO wa_data. | |
IF wa_data-type EQ 'S'. | |
wa_data-type = 'E'. | |
wa_data-message = 'SAP üretim siparişi Makine No boş olamaz!'. | |
MODIFY it_data FROM wa_data. | |
ENDIF. | |
ENDLOOP. | |
IF it_data[] IS INITIAL. | |
WRITE: / 'Kayıt bulunamadı!'. | |
ENDIF. | |
ENDFORM. " BUILD_DATA | |
*&---------------------------------------------------------------------* | |
*& Form SEND_MAIL | |
*&---------------------------------------------------------------------* | |
FORM send_mail . | |
CHECK it_data[] IS NOT INITIAL. | |
*-Fill the Column headings and Properties | |
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE. | |
*Merge işlemi | |
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' | |
EXPORTING | |
i_program_name = sy-repid | |
i_internal_tabname = 'IT_DATA' | |
i_inclname = sy-repid | |
CHANGING | |
ct_fieldcat = gt_fieldcat[] | |
EXCEPTIONS | |
inconsistent_interface = 1 | |
program_error = 2 | |
OTHERS = 3. | |
LOOP AT gt_fieldcat. | |
w_head-text = gt_fieldcat-seltext_s. | |
IF gt_fieldcat-fieldname = 'MESSAGE'. | |
w_head-text = 'Hata Mesajı'. | |
ENDIF. | |
*-Populate the Column Headings | |
CALL FUNCTION 'WWW_ITAB_TO_HTML_HEADERS' | |
EXPORTING | |
field_nr = sy-tabix | |
text = w_head-text | |
fgcolor = 'black' | |
bgcolor = 'orange' | |
TABLES | |
header = t_header. | |
*-Populate Column Properties | |
CALL FUNCTION 'WWW_ITAB_TO_HTML_LAYOUT' | |
EXPORTING | |
field_nr = sy-tabix | |
fgcolor = 'black' | |
size = '3' | |
TABLES | |
fields = t_fields. | |
ENDLOOP. | |
*-Title of the Display | |
wa_header-text = 'SAP Icron RFC hata detayları.' . | |
wa_header-font = 'Arial'. | |
wa_header-size = '2'. | |
*-Preparing the HTML from Intenal Table | |
REFRESH t_html. | |
CALL FUNCTION 'WWW_ITAB_TO_HTML' | |
EXPORTING | |
table_header = wa_header | |
TABLES | |
html = t_html | |
fields = t_fields | |
row_header = t_header | |
itable = it_data. | |
* Recipients | |
SELECT smtp_addr AS receiver | |
FROM zpp_t_mailgrup INTO TABLE t_mail | |
WHERE pgmna EQ 'ZPP_R_ICRON_MAIL_HATA'. | |
IF t_mail[] IS INITIAL. | |
lt_mailrecipients-receiver = 'user@domain.com.tr'. | |
lt_mailrecipients-rec_type = 'U'. | |
APPEND lt_mailrecipients . | |
CLEAR lt_mailrecipients . | |
ELSE. | |
LOOP AT t_mail INTO ls_mail. | |
lt_mailrecipients-receiver = ls_mail-receiver. | |
lt_mailrecipients-rec_type = 'U'. | |
APPEND lt_mailrecipients . | |
CLEAR lt_mailrecipients . | |
ENDLOOP. | |
ENDIF. | |
* Subject. | |
lt_mailsubject-obj_name = 'PENTI FABRIKA'. | |
lt_mailsubject-obj_langu = sy-langu. | |
lt_mailsubject-obj_descr = 'SAP Icron Örgü Üretim Siparişi Hata'. | |
* Mail Contents | |
lt_mailtxt[] = t_html[]. | |
* Send Mail | |
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1' | |
EXPORTING | |
commit_work = '' | |
put_in_outbox = 'X' | |
document_data = lt_mailsubject | |
document_type = 'HTM' | |
TABLES | |
object_content = lt_mailtxt | |
receivers = lt_mailrecipients | |
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 EQ 0. | |
COMMIT WORK AND WAIT. | |
SUBMIT rsconn01 WITH mode = 'INT' AND RETURN. | |
WRITE: / 'Mail gönderildi...'. | |
ELSE. | |
WRITE: / 'hata:',sy-subrc. | |
ENDIF. | |
ENDFORM. " SEND_MAIL |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment