SAP ABAP
SAP ve ABAP konularında,makaleler,örnekler ve güncel bilgiler içeren yazılarım.
Spool PDF Download
DATA: lv_spool LIKE tsp01-rqident.
* Submit Report
SUBMIT zreport
WITH p_matnr = i_matnr
TO SAP-SPOOL
WITHOUT SPOOL DYNPRO
DESTINATION space
NEW LIST IDENTIFICATION 'X'
IMMEDIATELY space
WITH p_pdf = 'X'
AND RETURN.
IMPORT lv_spool FROM MEMORY ID 'ZMEMORY'.
FREE MEMORY ID 'ZMEMORY'.
* Spool to PDF conversions
DATA: gd_spool_nr LIKE tsp01-rqident,
gd_destination LIKE rlgrap-filename,
gd_bytecount LIKE tst01-dsize,
gd_buffer TYPE string.
DATA: gd_subject LIKE sodocchgi1-obj_descr,
it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
gd_sender_type LIKE soextreci1-adr_typ,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des.
* Binary store for PDF
DATA: BEGIN OF it_pdf_output OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF it_pdf_output.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = lv_spool
no_dialog = ''
dst_device = ''
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
CHECK sy-subrc = 0.
data: filename like RLGRAP-FILENAME .
CONCATENATE 'C:\Users\Kaan Ozdogan\Desktop\'
i_matnr '.pdf' INTO filename .
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
bin_filesize = gd_bytecount
filename = filename
filetype = 'BIN'
TABLES
data_tab = it_pdf_output.
ABAP İki Tarih Arası Gün Hesaplama
Girilen iki tarih arasında gün hesaplama fonksiyonu.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
i_date_from = lv_erdat
* I_KEY_DAY_FROM =
i_date_to = sy-datum
* I_KEY_DAY_TO =
* I_FLG_SEPARATE = ' '
IMPORTING
E_DAYS = lv_no_day
* E_MONTHS =
* E_YEARS =
.
EXPORTING
i_date_from = lv_erdat
* I_KEY_DAY_FROM =
i_date_to = sy-datum
* I_KEY_DAY_TO =
* I_FLG_SEPARATE = ' '
IMPORTING
E_DAYS = lv_no_day
* E_MONTHS =
* E_YEARS =
.
Request Download/ Upload
Sistemler arası requestleri taşımak için mevcut request download edilip taşımak istediğiniz sisteme upload edilir.
AL11 ile dir_trans dosya yolu alınır.
Request download işlemi CG3Y transaction ile indirilir.
(AL11 den aldığımız yola \cofiles\K +
request number + .SID )
CG3Z ile aynı yollara aynı dosyalar
geri yüklenip request import edilir.
(\data\R + request number + .SID indirilir.)
SAP ABAP üzerinden Google Api Kullanımı ve HTML Output
Abap üzerinden Google Geolocation API kullanım örneğidir. API Key selection screenden almaktadır. Bu kısmı isterseniz kodunuza da gömebilirsiniz.
REPORT zkaan_google_api NO STANDARD PAGE HEADING
LINE-COUNT 132.
TYPE-POOLS:abap.
DATA:
http_client TYPE REF TO if_http_client,
content TYPE string.
PARAMETERS : p_lat TYPE c LENGTH 50 DEFAULT '38.369035'.
PARAMETERS : p_lon TYPE c LENGTH 50 DEFAULT '27.196334'.
PARAMETERS : p_api TYPE c LENGTH 50
DEFAULT 'GOOGLE_API_KEY'.
START-OF-SELECTION.
DATA: lv_http_url TYPE string.
* Prepare the url of the address
CONCATENATE
'https://maps.googleapis.com/maps/api/geocode/xml?key='
'GOOGLE_API_KEY'
'&latlng='
p_lat
','
p_lon
INTO lv_http_url .
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_http_url
IMPORTING
client = http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc = 0.
http_client->request->set_header_field( name = '~request_method' value = 'GET' ).
http_client->send( ).
* http_client->receive( ).
* content = http_client->response->get_data( ).
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
content = http_client->response->get_cdata( ).
http_client->close( ).
ENDIF.
DATA:
v_crlf TYPE char2, "CRLF
v_cr TYPE char1, "CR
v_lf TYPE char1. "LF
v_crlf = cl_abap_char_utilities=>cr_lf.
v_cr = cl_abap_char_utilities=>cr_lf.
v_lf = cl_abap_char_utilities=>newline.
DATA: lf_uz TYPE i.
DATA: lf_pos TYPE i.
DATA: lf_content TYPE string.
data: lf_ek type i.
DO.
lf_uz = strlen( content ).
IF content = ''.
EXIT.
ENDIF.
SEARCH content FOR v_crlf .
IF sy-subrc = 0.lf_ek = 2.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_cr .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_lf .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
lf_pos = lf_uz.
ENDIF.
ENDIF.
ENDIF.
lf_content = content+0(lf_pos).
WRITE:/ lf_content.
ADD lf_ek TO lf_pos.
IF lf_pos GT lf_uz.
EXIT.
ENDIF.
content = content+lf_pos.
ENDDO.
REPORT zkaan_google_api NO STANDARD PAGE HEADING
LINE-COUNT 132.
TYPE-POOLS:abap.
DATA:
http_client TYPE REF TO if_http_client,
content TYPE string.
PARAMETERS : p_lat TYPE c LENGTH 50 DEFAULT '38.369035'.
PARAMETERS : p_lon TYPE c LENGTH 50 DEFAULT '27.196334'.
PARAMETERS : p_api TYPE c LENGTH 50
DEFAULT 'GOOGLE_API_KEY'.
START-OF-SELECTION.
DATA: lv_http_url TYPE string.
* Prepare the url of the address
CONCATENATE
'https://maps.googleapis.com/maps/api/geocode/xml?key='
'GOOGLE_API_KEY'
'&latlng='
p_lat
','
p_lon
INTO lv_http_url .
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = lv_http_url
IMPORTING
client = http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc = 0.
http_client->request->set_header_field( name = '~request_method' value = 'GET' ).
http_client->send( ).
* http_client->receive( ).
* content = http_client->response->get_data( ).
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
content = http_client->response->get_cdata( ).
http_client->close( ).
ENDIF.
DATA:
v_crlf TYPE char2, "CRLF
v_cr TYPE char1, "CR
v_lf TYPE char1. "LF
v_crlf = cl_abap_char_utilities=>cr_lf.
v_cr = cl_abap_char_utilities=>cr_lf.
v_lf = cl_abap_char_utilities=>newline.
DATA: lf_uz TYPE i.
DATA: lf_pos TYPE i.
DATA: lf_content TYPE string.
data: lf_ek type i.
DO.
lf_uz = strlen( content ).
IF content = ''.
EXIT.
ENDIF.
SEARCH content FOR v_crlf .
IF sy-subrc = 0.lf_ek = 2.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_cr .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
SEARCH content FOR v_lf .
IF sy-subrc = 0.lf_ek = 1.
lf_pos = sy-fdpos .
ELSE.
lf_pos = lf_uz.
ENDIF.
ENDIF.
ENDIF.
lf_content = content+0(lf_pos).
WRITE:/ lf_content.
ADD lf_ek TO lf_pos.
IF lf_pos GT lf_uz.
EXIT.
ENDIF.
content = content+lf_pos.
ENDDO.
Basit ALV Raporu ()
REPORT z_guncelle_log.
TABLES: zmm_guncelle_log.
DATA : gt_log TYPE TABLE OF zmm_guncelle_log .
DATA gs_field TYPE slis_t_fieldcat_alv WITH HEADER LINE.
SELECT-OPTIONS :
s_matnr FOR zmm_guncelle_log-matnr,
s_alan FOR zmm_guncelle_log-alan,
s_uname FOR zmm_guncelle_log-uname,
s_tarih FOR zmm_guncelle_log-tarih,
s_saat FOR zmm_guncelle_log-saat.
START-OF-SELECTION .
PERFORM get_log_data .
PERFORM fieldcat.
PERFORM disp_log_alv .
*&---------------------------------------------------------------------*
*& Form GET_MARA_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_log_data .
SELECT * FROM zmm_guncelle_log
INTO TABLE gt_log
WHERE
matnrIN s_matnr AND
alan IN s_alan AND
uname IN s_uname AND
tarih IN s_tarih AND
saat IN s_saat .
ENDFORM. " GET__MARA_DATA
*&---------------------------------------------------------------------*
*& Form DISP_MARA_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM disp_log_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZDI_GUNCELLE_LOG'
it_fieldcat = gs_field[]
i_callback_user_command = 'USER_COMMAND'
i_save = 'X'
TABLES
t_outtab = gt_log
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISP_MARA_ALV
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat .
gs_field-fieldname = 'MATNR'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-col_pos = 0.
gs_field-reptext_ddic = 'Ürünkodu'.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'ALAN'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'İşlem'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'UNAME'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Kullanıcı'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'TARIH'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Tarih'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'SAAT'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Saat'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
ENDFORM. " FIELDCAT
TABLES: zmm_guncelle_log.
DATA : gt_log TYPE TABLE OF zmm_guncelle_log .
DATA gs_field TYPE slis_t_fieldcat_alv WITH HEADER LINE.
SELECT-OPTIONS :
s_matnr FOR zmm_guncelle_log-matnr,
s_alan FOR zmm_guncelle_log-alan,
s_uname FOR zmm_guncelle_log-uname,
s_tarih FOR zmm_guncelle_log-tarih,
s_saat FOR zmm_guncelle_log-saat.
START-OF-SELECTION .
PERFORM get_log_data .
PERFORM fieldcat.
PERFORM disp_log_alv .
*&---------------------------------------------------------------------*
*& Form GET_MARA_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_log_data .
SELECT * FROM zmm_guncelle_log
INTO TABLE gt_log
WHERE
matnrIN s_matnr AND
alan IN s_alan AND
uname IN s_uname AND
tarih IN s_tarih AND
saat IN s_saat .
ENDFORM. " GET__MARA_DATA
*&---------------------------------------------------------------------*
*& Form DISP_MARA_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM disp_log_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZDI_GUNCELLE_LOG'
it_fieldcat = gs_field[]
i_callback_user_command = 'USER_COMMAND'
i_save = 'X'
TABLES
t_outtab = gt_log
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISP_MARA_ALV
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat .
gs_field-fieldname = 'MATNR'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-col_pos = 0.
gs_field-reptext_ddic = 'Ürünkodu'.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'ALAN'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'İşlem'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'UNAME'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Kullanıcı'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'TARIH'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Tarih'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
gs_field-fieldname = 'SAAT'.
gs_field-ref_tabname = 'ZDI_GUNCELLE_LOG'.
gs_field-reptext_ddic = 'Saat'.
gs_field-col_pos = 0.
APPEND gs_field.
CLEAR gs_field.
ENDFORM. " FIELDCAT
Kaydol:
Kayıtlar (Atom)