ABAP DUMP ERROR 24시

sap workbench 9 본문

[SAP]ABAP/ABAP 강의 SYNC

sap workbench 9

이운형 2022. 6. 30. 12:49
반응형

1> if endif 문 정리

 

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

*DATA : BEGIN OF ls_data,
*         MTART TYPE t134-MTART,
*         MTREF TYPE t134-MTREF,
*         MBREF TYPE t134-MBREF,
*         PSTAT TYPE t134-PSTAT,
*         VMTPO TYPE t134-VMTPO,
*
*       END OF ls_data,
*
*       lt_data LIKE TABLE OF ls_data.
*
*SELECT MTART MTREF MBREF FLREF ARDEL
*  INTO CORRESPONDING FIELDS OF TABLE lt_data
*  FROM t134
*  WHERE mtref = 'HAWA'
*  AND   mbref = 'ROH'
*  AND   flref NE 'WERT'
*  AND   ardel >= '0'.
*
*
*IF sy-subrc = 0.
*  WRITE :
*  'match data',/,
*  'sy-dbcnt의 갯수 :' , sy-dbcnt.
*ELSE.
*  WRITE :
*        'no match data'.
*
*ENDIF.
*
*
*
*
*DATA : BEGIN OF ls_data2,
*         bwart TYPE t156-bwart,
*         shkzg TYPE t156-shkzg,
*         kzwes TYPE t156-kzwes,
*         selpa TYPE t156-selpa,
*         xpbed TYPE t156-xpbed,
*       END OF ls_data2,
*
*       lt_data2 LIKE TABLE OF ls_data2.
*
*
*SELECT kzwes kzdru selpa
*  INTO CORRESPONDING FIELDS OF TABLE lt_data2
*  FROM t156
*  WHERE kzwes = 'S'
*  AND kzdru = '1'
*  AND selpa NE ' '.
*
*
*IF sy-subrc = 0.
*  WRITE :
*  'match data',/,
*  'sy-dbcnt의 갯수 :' , sy-dbcnt.
*ELSE.
*  WRITE :
*        'no match data'.
*
*ENDIF.


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

 

 핵심 코드 > 캐시에 위치한 data를 실제 db에 반영하기 위한 작업 . em.flush() 생각하자.

MODIFY lt_data FROM ls_data  index sy-tabix.

추가로 transporting 을 꼭 써줘야한다. == 내가 바꿀 부분은 transporting을 써준다.

transporting currency.

 

 

orderby , sort 방법.

 

**********************Display : order by study*************************


DATA : ls_data           TYPE sbook,
       lt_data           TYPE TABLE OF sbook,
       success_count(20) TYPE i,
       fail_count(20)    TYPE i.

SELECT carrid connid fldate bookid customid custtype invoice class
  INTO CORRESPONDING FIELDS OF TABLE lt_data
  FROM sbook
  WHERE carrid   = 'DL'
  AND custtype   = 'P'
  AND order_date = '20201227'
  ORDER BY carrid connid fldate DESCENDING bookid DESCENDING.


LOOP AT lt_data INTO ls_data.

  IF ls_data-invoice = 'X'.
     ls_data-class   ='F'.

    MODIFY lt_data FROM ls_data INDEX sy-tabix
    TRANSPORTING class.


  ENDIF.

ENDLOOP.

*마무리 하고 행단위 전체 data를 정렬 하기 위함.
SORT lt_data BY fldate DESCENDING.
**********************Display : order by study_end*************************

 

or 조건 사용시

>> abap sql

(조건 and 조건) or (조건 and 조건)

 

앞에 조건이  같더라도 꼭 다시 한번 써줘야한다.

 

>> open sql

WHERE (carrid   = 'DL' and planetype = 'A340-600')
  or (carrid   = 'DL' and custtype   = 'P').

 and planetype in( 'A340-600', '747-400').

 

 

# Coding시 JPQL 처럼 처음과 끝 괄호간 공백 1개씩은 존재해야한다.

 

**********************Display : 인터널 테이블을 계속 추가하는 방법 'appending을 사용하자.'************************* 
   INTO CORRESPONDING FIELDS OF TABLE lt_data
   FROM sbook
   WHERE (carrid   = 'DL' and planetype = 'A340-600')
   or (carrid   = 'DL' and custtype   = 'P')
   
 
   SELECT smoker carrid connid fldate bookid customid custtype invoice class
   appending CORRESPONDING FIELDS OF TABLE lt_data
   FROM sbook
   WHERE carrid = 'AA'
   and planetype in( 'A340-600', '747-400').
   
   
   SELECT smoker carrid connid fldate bookid customid custtype invoice class
   appending CORRESPONDING FIELDS OF TABLE lt_data
   FROM sbook
   WHERE carrid = 'AA'
     and planetype not in ('A340-600', '747-400').
 

 

 

**************************************과제*************************************************
DATA : BEGIN OF ls_data,
         carrid    TYPE scarr-carrid,
         carrname  TYPE scarr-carrname,
         connid    TYPE spfli-connid,
         countryfr TYPE spfli-countryfr,
         cityfrom  TYPE  spfli-cityfrom,
         airpto    TYPE spfli-airpto,
       END OF ls_data,

       lt_data LIKE TABLE OF ls_data.


CLEAR ls_data.
REFRESH lt_data.

* 조건 1
SELECT carrid carrname
INTO CORRESPONDING FIELDS OF TABLE lt_data
  FROM scarr
  WHERE carrid IN ( 'AA', 'AZ', 'DL' ).

IF  sy-subrc NE 0.
  WRITE : 'error', /.
  LOOP AT lt_data INTO ls_data.

       WRITE : ls_data-carrid, ls_data-carrname.
    NEW-LINE.
  ENDLOOP.
ENDIF.

* 조건 2
SELECT carrid connid countryfr cityfrom airpto
APPENDING CORRESPONDING FIELDS OF TABLE lt_data
FROM spfli
WHERE carrid IN ( 'AA', 'AZ', 'DL' )
AND cityfrom IN ( 'ROME', 'FRANKFURT' ).
***********************************************************************************
*
*DATA : BEGIN OF ls_data,
*         carrid    TYPE scarr-carrid,
*         carrname  TYPE scarr-carrname,
*         connid    TYPE spfli-connid,
*         countryfr TYPE spfli-countryfr,
*         cityfrom  TYPE  spfli-cityfrom,
*         airpto    TYPE spfli-airpto,
*       END OF ls_data,
*
*       lt_data LIKE TABLE OF ls_data.
*
*
*CLEAR ls_data.
*REFRESH lt_data.
*
** 조건 1
*SELECT carrid carrname
*INTO CORRESPONDING FIELDS OF TABLE lt_data
*  FROM scarr
*  WHERE carrid IN ( 'AA', 'AZ', 'DL' ).
*
*IF  sy-subrc eq 0.
*  LOOP AT lt_data INTO ls_data.
*       WRITE : ls_data-carrid, ls_data-carrname, ls_data-connid,
*               ls_data-countryfr, ls_data-cityfrom, ls_data-airpto.
*       NEW-LINE.
*  ENDLOOP.
*ENDIF.
*
** 조건 2
*SELECT carrid connid countryfr cityfrom airpto
*APPENDING CORRESPONDING FIELDS OF TABLE lt_data
*FROM spfli
*WHERE carrid IN ( 'AA', 'AZ', 'DL' )
*AND cityfrom IN ( 'ROME', 'FRANKFURT' ).
*
* if sy-subrc eq 0.
*   LOOP AT lt_data into ls_data.
*
*     write : ls_data-carrid, ls_data-carrname, ls_data-connid,
*             ls_data-countryfr, ls_data-cityfrom, ls_data-airpto.
*     new-LINE.
*
*   ENDLOOP.
*
* ENDIF.

*****************************************************************************************
반응형

'[SAP]ABAP > ABAP 강의 SYNC' 카테고리의 다른 글

sap workbench 11  (0) 2022.07.04
sap workbench 10  (0) 2022.07.01
sap workbench 8  (0) 2022.06.29
SAP WORKBENCH 7  (0) 2022.06.28
sap workbench 6  (0) 2022.06.27
Comments