검색결과 리스트
SAP Program/ABAP에 해당되는 글 62건
- 2017.06.08 New Open sql
- 2017.06.08 HANA에서 DB LINK 이슈 해결책
- 2017.05.19 HANA 주소 데이타
- 2017.04.19 날짜 관련 ABAP function
- 2017.04.12 SAP Buffer 초기화 T-code
- 2017.04.10 Windows Temp Directory 가져오기
- 2017.04.05 S4 HANA 기반 시스템 구축을 위한 가이드
- 2017.03.31 Maint view event 관련 coding
- 2017.03.30 Maint view T-code 없이 Call 하기
- 2017.03.28 Select-options => Sql where 로 변환
글
New Open sql
'SAP Program > ABAP' 카테고리의 다른 글
암호화된 ABAP source 해제하기 (0) | 2017.06.12 |
---|---|
HANA 프로젝트 이슈 : select 구문 에러 관련(HANA, NW7.4이후버젼) (0) | 2017.06.08 |
HANA에서 DB LINK 이슈 해결책 (0) | 2017.06.08 |
HANA 주소 데이타 (0) | 2017.05.19 |
날짜 관련 ABAP function (0) | 2017.04.19 |
글
HANA에서 DB LINK 이슈 해결책
'SAP Program > ABAP' 카테고리의 다른 글
HANA 프로젝트 이슈 : select 구문 에러 관련(HANA, NW7.4이후버젼) (0) | 2017.06.08 |
---|---|
New Open sql (0) | 2017.06.08 |
HANA 주소 데이타 (0) | 2017.05.19 |
날짜 관련 ABAP function (0) | 2017.04.19 |
SAP Buffer 초기화 T-code (0) | 2017.04.12 |
글
HANA 주소 데이타
흔히 LFA1/KNA1 -ADRNR 필드로 ADRC값을 읽은것 같은데,,
데이터가 잘 안들어가 있어서 보니 BUT020-PARTNER ADDRNUMBER의 ADRC 주소를 읽어야
데이터가 잘 불러와 지는것 같습니다..
물론 더 정확하게 하려면 BAPI_BUPA_ADDRESS_GETDETAIL 바피 펑션으로..
혹시 업무 참고하셔요..
'SAP Program > ABAP' 카테고리의 다른 글
New Open sql (0) | 2017.06.08 |
---|---|
HANA에서 DB LINK 이슈 해결책 (0) | 2017.06.08 |
날짜 관련 ABAP function (0) | 2017.04.19 |
SAP Buffer 초기화 T-code (0) | 2017.04.12 |
Windows Temp Directory 가져오기 (0) | 2017.04.10 |
글
날짜 관련 ABAP function
'SAP Program > ABAP' 카테고리의 다른 글
HANA에서 DB LINK 이슈 해결책 (0) | 2017.06.08 |
---|---|
HANA 주소 데이타 (0) | 2017.05.19 |
SAP Buffer 초기화 T-code (0) | 2017.04.12 |
Windows Temp Directory 가져오기 (0) | 2017.04.10 |
S4 HANA 기반 시스템 구축을 위한 가이드 (0) | 2017.04.05 |
글
SAP Buffer 초기화 T-code
SAP Buffers can be reset with below commands :
1. /$SYNC - Resets the buffers of the application server
2. /$CUA - Resets the CUA buffer of the application server
3. /$TAB - Resets the TABLE buffers of the application server
Sql Table buffer clear(Performance Test 등에 활용하면 ...)
4. /$NAM - Resets the nametab buffer of the application server
5. /$DYNP - Resets the screen buffer of the application server
6. /$ESM - Resets the Exp./ Imp. Shared Memory Buffer of the application server
7. /$PXA - Resets the Program (PXA) Buffer of the application server.
'SAP Program > ABAP' 카테고리의 다른 글
HANA 주소 데이타 (0) | 2017.05.19 |
---|---|
날짜 관련 ABAP function (0) | 2017.04.19 |
Windows Temp Directory 가져오기 (0) | 2017.04.10 |
S4 HANA 기반 시스템 구축을 위한 가이드 (0) | 2017.04.05 |
Maint view event 관련 coding (0) | 2017.03.31 |
글
Windows Temp Directory 가져오기
DATA: lv_temp TYPE string.
CALL METHOD cl_gui_frontend_services=>environment_get_variable
EXPORTING
variable = 'TEMP'
CHANGING
value = lv_temp
EXCEPTIONS
cntl_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
EXIT.
ENDIF.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
EXIT.
ENDIF.
'SAP Program > ABAP' 카테고리의 다른 글
날짜 관련 ABAP function (0) | 2017.04.19 |
---|---|
SAP Buffer 초기화 T-code (0) | 2017.04.12 |
S4 HANA 기반 시스템 구축을 위한 가이드 (0) | 2017.04.05 |
Maint view event 관련 coding (0) | 2017.03.31 |
Maint view T-code 없이 Call 하기 (0) | 2017.03.30 |
글
S4 HANA 기반 시스템 구축을 위한 가이드
'SAP Program > ABAP' 카테고리의 다른 글
SAP Buffer 초기화 T-code (0) | 2017.04.12 |
---|---|
Windows Temp Directory 가져오기 (0) | 2017.04.10 |
Maint view event 관련 coding (0) | 2017.03.31 |
Maint view T-code 없이 Call 하기 (0) | 2017.03.30 |
Select-options => Sql where 로 변환 (0) | 2017.03.28 |
글
Maint view event 관련 coding
*----------------------------------------------------------------------*
***INCLUDE LZSD40800F02.
*----------------------------------------------------------------------*
* ** https://help.sap.com/saphelp_erp60_sp/helpdata/en/91/ca9f0ea9d111d1a5690000e82deaaa/content.htm
https://help.sap.com/saphelp_nw70/helpdata/en/af/4a3837a92cbe10e10000009b38f889/frameset.htm
FORM zset_datetime_0007. "event 01 - Before saving the data in the database
* FIELD-SYMBOLS: <fs_view_data_lo>,
* <fs_field>.
*
* IF <fs_view_data_lo> IS ASSIGNED.
* UNASSIGN <fs_view_data_lo>.
* ENDIF.
*
* ASSIGN (vim_view_name) TO <fs_view_data_lo>.
* CHECK sy-subrc = 0.
*
* ASSIGN COMPONENT c_zcrname OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* IF sy-subrc = 0.
* IF <fs_field> IS INITIAL.
* ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uname.
* ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datum.
* ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uzeit.
* ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datlo.
* ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-timlo.
* ELSE.
*
* ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uname.
* ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datum.
* ASSIGN COMPONENT 'zudstime' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uzeit.
* ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datlo.
* ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-timlo.
* ENDIF.
* ENDIF.
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41180-datuv,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_werks> TYPE any,
<l_matnr> TYPE any,
<l_datuv> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <vim_total_struc> TO <l_werks>.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <vim_total_struc> TO <l_matnr>.
ASSIGN COMPONENT 'DATUV' OF STRUCTURE <vim_total_struc> TO <l_datuv>.
IF <l_werks> IS INITIAL OR
<l_matnr> IS INITIAL OR
<l_datuv> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT datuv
INTO lw_datuv
FROM zsdt41180
UP TO 1 ROWS
WHERE werks = <l_werks>
AND matnr = <l_matnr>
ORDER BY datuv DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_datuv> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0008. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41190-datuv,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_ztype> TYPE any,
<l_datuv> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'ZTYPE' OF STRUCTURE <vim_total_struc> TO <l_ztype>.
ASSIGN COMPONENT 'DATUV' OF STRUCTURE <vim_total_struc> TO <l_datuv>.
IF <l_ztype> IS INITIAL OR
<l_datuv> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT datuv
INTO lw_datuv
FROM zsdt41190
UP TO 1 ROWS
WHERE ztype = <l_ztype>
ORDER BY datuv DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_datuv> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0009. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41250-kursd,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_kurst> TYPE any,
<l_fcurr> TYPE any,
<l_tcurr> TYPE any,
<l_kursd> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'KURST' OF STRUCTURE <vim_total_struc> TO <l_kurst>.
ASSIGN COMPONENT 'FCURR' OF STRUCTURE <vim_total_struc> TO <l_fcurr>.
ASSIGN COMPONENT 'TCURR' OF STRUCTURE <vim_total_struc> TO <l_tcurr>.
ASSIGN COMPONENT 'KURSD' OF STRUCTURE <vim_total_struc> TO <l_kursd>.
IF <l_kurst> IS INITIAL OR
<l_fcurr> IS INITIAL OR
<l_tcurr> IS INITIAL OR
<l_kursd> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT kursd
INTO lw_datuv
FROM zsdt41250
UP TO 1 ROWS
WHERE kurst = <l_kurst>
AND fcurr = <l_fcurr>
AND tcurr = <l_tcurr>
ORDER BY kursd DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_kursd> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0005. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_spmon TYPE zsdt41171-spmon,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_spmon> TYPE any,
<l_werks> TYPE any,
<l_vtweg> TYPE any,
<l_idnrk> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'SPMON' OF STRUCTURE <vim_total_struc> TO <l_spmon>.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <vim_total_struc> TO <l_werks>.
ASSIGN COMPONENT 'VTWEG' OF STRUCTURE <vim_total_struc> TO <l_vtweg>.
ASSIGN COMPONENT 'IDNRK' OF STRUCTURE <vim_total_struc> TO <l_idnrk>.
IF <l_spmon> IS INITIAL OR
<l_werks> IS INITIAL OR
<l_vtweg> IS INITIAL OR
<l_idnrk> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_spmon.
SELECT spmon
INTO lw_spmon
FROM zsdt41171
UP TO 1 ROWS
WHERE werks = <l_werks>
AND vtweg = <l_vtweg>
AND idnrk = <l_idnrk>
ORDER BY spmon DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_spmon> < lw_spmon.
MESSAGE s000(zsd01) WITH 'check month !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module ZGET_IDNRK_NAME INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE zget_idnrk_name INPUT. "event 01 - Before saving the data in the database
FIELD-SYMBOLS : <l_ktext> TYPE any.
* <VIM_TOTAL_STRUC>
* <VIM_EXTRACT_STRUC>
ASSIGN COMPONENT 'KTEXT' OF STRUCTURE <VIM_TOTAL_STRUC> TO <l_ktext>.
IF zsdt41171-idnrk IS INITIAL.
CLEAR zsdt41171-ktext.
ELSE.
SELECT SINGLE maktx
INTO zsdt41171-ktext
FROM makt
WHERE spras = sy-langu
AND matnr = zsdt41171-idnrk.
if sy-subrc = 0.
<l_ktext> = zsdt41171-ktext.
endif.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form EVENT_01_ZMMV1390
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM event_01_zmmv1390 .
DATA : ls_zmmv1390 TYPE zmmv1390.
DATA : lv_perfect TYPE f.
LOOP AT total.
CHECK <action> = neuer_eintrag.
CLEAR : ls_zmmv1390.
MOVE <vim_total_struc> TO ls_zmmv1390.
lv_perfect = ls_zmmv1390-delivery +
ls_zmmv1390-quantity +
ls_zmmv1390-quality +
ls_zmmv1390-other.
IF lv_perfect <> 100.
MESSAGE s043(zmm01) DISPLAY LIKE 'E'.
vim_abort_saving = 'X'.
EXIT.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Include event 01 공통 적용
*&---------------------------------------------------------------------*
*& *& 데이터 생성 및 수정시 로그데이터(작업자, 일자, 시간) 업데이트.
*&---------------------------------------------------------------------*
*GELOESCHT : flagged for deletion
*NEUER_EINTRAG : New entry
*AENDERN : changed entry
*UPDATE_GELOESCHT : entry first changed and then flagged for deletion
*NEUER_GELOESCHT : entry first newly created, not yet saved, and then flagged for deletion
*ORIGINAL : the same as the database status
CONSTANTS : LC_NAME TYPE STRING VALUE 'N_____'. "Dummy Component Name for Type Flag
DATA : LV_INDEX LIKE SY-TABIX. "Index to note the lines found
DATA : LS_COMPONENT TYPE ABAP_COMPONENTDESCR,
LT_COMPONENT TYPE ABAP_COMPONENT_TAB,
LR_STRUCTURE TYPE REF TO CL_ABAP_STRUCTDESCR,
LR_HANDLE TYPE REF TO DATA.
FIELD-SYMBOLS : <LV_STRUCTURE> TYPE ANY,
<LV_FIELD> TYPE ANY.
LR_STRUCTURE ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( X_HEADER-VIEWNAME ).
LT_COMPONENT = LR_STRUCTURE->GET_COMPONENTS( ).
LS_COMPONENT-TYPE ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <ACTION> ).
LS_COMPONENT-NAME = LC_NAME.
APPEND LS_COMPONENT TO LT_COMPONENT.
LR_STRUCTURE = CL_ABAP_STRUCTDESCR=>CREATE( LT_COMPONENT ).
CREATE DATA LR_HANDLE TYPE HANDLE LR_STRUCTURE.
ASSIGN LR_HANDLE->* TO <LV_STRUCTURE>.
LOOP AT TOTAL.
IF <ACTION> = NEUER_EINTRAG OR <ACTION> = AENDERN.
READ TABLE EXTRACT WITH KEY <VIM_XTOTAL_KEY>.
IF SY-SUBRC EQ 0.
LV_INDEX = SY-TABIX.
ELSE.
CLEAR LV_INDEX.
ENDIF.
CHECK LV_INDEX GT 0.
MOVE TOTAL TO <LV_STRUCTURE>.
CASE <ACTION>.
WHEN AENDERN. "/Change/Update
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
WHEN NEUER_EINTRAG. "/New Entries
ASSIGN COMPONENT 'ERNAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'ERDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'ERZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
ENDCASE.
MOVE <LV_STRUCTURE> TO TOTAL.
MODIFY TOTAL.
EXTRACT = TOTAL.
MODIFY EXTRACT INDEX LV_INDEX.
ENDIF.
ENDLOOP.
SY-SUBRC = 0.
'SAP Program > ABAP' 카테고리의 다른 글
Windows Temp Directory 가져오기 (0) | 2017.04.10 |
---|---|
S4 HANA 기반 시스템 구축을 위한 가이드 (0) | 2017.04.05 |
Maint view T-code 없이 Call 하기 (0) | 2017.03.30 |
Select-options => Sql where 로 변환 (0) | 2017.03.28 |
MODULE POOL SUBSCREEN에 만든 SELECT-OPTIONS의 ENTER가 안먹을때 (0) | 2017.03.28 |
글
Maint view T-code 없이 Call 하기
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
ACTION = MODE
VIEW_NAME = P_TABLE
* VARIANT_FOR_SELECTION = ls_variant
TABLES
DBA_SELLIST = GT_SELTAB
EXCEPTIONS
CLIENT_REFERENCE = 1
FOREIGN_LOCK = 2
INVALID_ACTION = 3
NO_CLIENTINDEPENDENT_AUTH = 4
NO_DATABASE_FUNCTION = 5
NO_EDITOR_FUNCTION = 6
NO_SHOW_AUTH = 7
NO_TVDIR_ENTRY = 8
NO_UPD_AUTH = 9
ONLY_SHOW_ALLOWED = 10
SYSTEM_FAILURE = 11
UNKNOWN_FIELD_IN_DBA_SELLIST = 12
VIEW_NOT_FOUND = 13.
'SAP Program > ABAP' 카테고리의 다른 글
S4 HANA 기반 시스템 구축을 위한 가이드 (0) | 2017.04.05 |
---|---|
Maint view event 관련 coding (0) | 2017.03.31 |
Select-options => Sql where 로 변환 (0) | 2017.03.28 |
MODULE POOL SUBSCREEN에 만든 SELECT-OPTIONS의 ENTER가 안먹을때 (0) | 2017.03.28 |
Internal Table Group By (0) | 2017.03.28 |
글
Select-options => Sql where 로 변환
DATA : I_T_RANGE TYPE RS_T_RSCEDST.
DATA : LS_RANGE TYPE RSCEDST.
DATA : E_WHERE TYPE STRING.
LS_RANGE-FNAM = 'MATNR'.
LS_RANGE-SIGN = 'I'.
LS_RANGE-OPTION = 'EQ'.
LS_RANGE-LOW = 'LOW'.
LS_RANGE-HIGH = ''.
APPEND LS_RANGE TO I_T_RANGE.
LS_RANGE-FNAM = 'MATNR'.
LS_RANGE-SIGN = 'I'.
LS_RANGE-OPTION = 'EQ'.
LS_RANGE-LOW = 'LOW2'.
LS_RANGE-HIGH = ''.
APPEND LS_RANGE TO I_T_RANGE.
CALL FUNCTION 'RSDS_RANGE_TO_WHERE'
EXPORTING
I_T_RANGE = I_T_RANGE
IMPORTING
E_WHERE = E_WHERE
EXCEPTIONS
INTERNAL_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.
WRITE : E_WHERE.
'SAP Program > ABAP' 카테고리의 다른 글
Maint view event 관련 coding (0) | 2017.03.31 |
---|---|
Maint view T-code 없이 Call 하기 (0) | 2017.03.30 |
MODULE POOL SUBSCREEN에 만든 SELECT-OPTIONS의 ENTER가 안먹을때 (0) | 2017.03.28 |
Internal Table Group By (0) | 2017.03.28 |
Global Macro (0) | 2017.03.22 |