New Open sql

SAP Program/ABAP 2017. 6. 8. 10:50






















설정

트랙백

댓글


'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

설정

트랙백

댓글

흔히 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

설정

트랙백

댓글

 1. RE_ADD_MONTH_TO_DATE MONTHS에 -, + 숫자를 주면 원하는 OLDDATE부터 앞, 뒤 의 월을 계산해준다.
 2. RH_GET_DATE_DAYNAME 입력일자가 월요일부터 몇번째 일자인지입력일자 요일의 이름(MON, TUE 을 return
 3. DATE_COMPUTE_DAY 입력일자가 월요일부터 몇번째 일자인지를 return
 4. DATE_GET_WEEK 입력일자가 해당 년도의 번째 주차인지 return
 5. WEEK_GET_FIRST_DAY 입력주차의 월요일을 return해 줍니다.
 6. RP_LAST_DAY_OF_MONTHS 입력일자가 속한 월의 마지막 일자를 return
 7. FIMA_DAYS_AND_MONTHS_AND_YEARS from date와 to date를 넘겨주면 그 기간을 일, 월, 년으로 return
 8. END_OF_MONTH_DETERMINE 월의 마지막 일 return
 9. RP_CALC_DATE_IN_INTERVAL 입력일자에 일,,년을 +,- 해서 일자를 Return
10. DATE_CHECK_PLAUSIBILITY 입력일자가 유효한지 Check
11. RH_PM_CONVERT_DATE_TO_MONTH 일자 사이의 월 수 계산
12. GET_WEEK_INFO_BASED_ON_DATE 일자를 입력하면 주차와 해당주차의 월요일과 일요일을 Return
13. 입력일자 중 월 표시를 영문으로 바꿔서 Return
15. CALCULATE_YEAR_BEGIN 입력일자의 1년전 일자 Return
16. MONTH_PLUS_DETERMINE 입력일자에 + or – 월을 입력하여 계산된 일자를 Return
17. CONVERT_DATE_TO_INTERNAL 입력일자가 내부적으로 어떻게 저장되는지를 Return
18. HRGPBS_HESA_DATE_FORMAT 입력일자를 사용자 Profile의 날짜 포맷으로 변경한 후 Return


'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 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

설정

트랙백

댓글




  DATAlv_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 기반 시스템 구축을 위한 가이드


S4 HANA 기반 시스템 구축을 위한 가이드.docx


'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

설정

트랙백

댓글



*----------------------------------------------------------------------*

***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(zmm01DISPLAY 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_NAMEX_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=>CREATELT_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.




설정

트랙백

댓글


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. 

설정

트랙백

댓글

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

설정

트랙백

댓글