SAP/ABAP 코드

(ABAP 코드) ABAP Memory

haramang 2021. 6. 23. 22:58

- PROGRAM - 1

 

 

*&---------------------------------------------------------------------*

*& 데이터 선언부

*&---------------------------------------------------------------------*

 

DATAGS_ITAB TYPE SPFLI,

      GT_ITAB TYPE TABLE OF SPFLI.

 

 

*&---------------------------------------------------------------------*

*& SELECTION SCREEN (PARAMETERS / SELECT-OPTIONS) 선언부

*&---------------------------------------------------------------------*

 

PARAMETERSP_CARRID TYPE SPFLI-CARRID.

 

 

*&---------------------------------------------------------------------*

*&INITIALIZATION.

*&---------------------------------------------------------------------*

INITIALIZATION.

 

 

 

*&---------------------------------------------------------------------*

*&AT SELECTION-SCREEN OUTPUT.

*&---------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

 

 

*&---------------------------------------------------------------------*

*&AT SELECTION-SCREEN.

*&---------------------------------------------------------------------*

AT SELECTION-SCREEN.

 

* User 입력한 항공사 코드가 SPFLI테이블에 존재하지 않을 경우메시지를 띄우고 더이상 진행하지 않음.

SELECT SINGLE *

  INTO @GS_ITAB

  FROM SPFLI

  WHERE CARRID @P_CARRID.

 

IF SY-SUBRC <> 0.

  MESSAGE E555(BC400WITH '해당 항공사 코드에 대한 데이터가 존재하지 않습니다.'.

ENDIF.

 

 

*&---------------------------------------------------------------------*

*&START-OF-SELECTION.

*&---------------------------------------------------------------------*

START-OF-SELECTION.

 

 

* SPFLI테이블에 있는 모든 데이터를 GT_ITAB으로 이동.

SELECT FROM SPFLI

  INTO TABLE @GT_ITAB

  WHERE CARRID @P_CARRID.

 

* GT_ITAB ABAP Memory 'MM_ID' EXPORT (ABAP Memory 저장!).

EXPORT M_SPFLI_DATA GT_ITAB[]

       TO MEMORY ID 'MM_ID'.

 

 

 

** SUBMIT  옵션 ---------------------------------------------------------------------------------------------------------

 

** SUBMIT { PROGRAM 이름 } RETURN                            - 다른프로그램으로 이동했다가 다시 돌아옴.

** SUBMIT { PROGRAM 이름 } VIA SELECTION-SCREEN              - 다른프로그램으로 이동할 , SELECTION-SCREEN 화면을 거쳐서 이동.

** SUBMIT { PROGRAM 이름 } VIA SELECTION-SCREEN AND RETURN   - 다른프로그램으로 이동할 , SELECTION- SCREEN 화면을 거쳐서 이동 ,

**                                                            현재프로그램으로 복귀 .

** SUBMIT { PROGRAM 이름 } VIA SELECTION-SCREEN AND RETURN WITH V1 EQ V2

**                                               - 이동하는 프로그램의 SELECTION-SCREEN PARAMETER 현재 프로그램의 V2값을 셋팅해줌.

**                                                 이동하는 프로그램의 변수의 이름과 WITH 다음에 나오는 V1 동일해야 !

**                                                 현재프로그램으로 복귀 .

 

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

 

 

 

** SUBMIT 통해 다른 프로그램으로 이동.-----------------------------------------------------------------------------------------

** 하나씩 실행해 보자!

 

 

 

** 1.

*SUBMIT ZBD2_ABAP_MEMORY_02.

 

** 2.

*SUBMIT ZBD2_ABAP_MEMORY_02 AND RETURN.

 

 

** 3.

SUBMIT ZBD2_ABAP_MEMORY_02 VIA SELECTION-SCREEN

                           WITH P_CARRID2 EQ P_CARRID.

 

* 4.

*SUBMIT ZBD2_ABAP_MEMORY_02 VIA SELECTION-SCREEN AND RETURN

*                           WITH P_CARRID2 EQ P_CARRID.

 

 

 

* ZBD_ABAP_MEMORY_02  실행하고 다시 돌아올 경우에(RETURN) 실행 된다.

WRITE:'ZBD2_ABAP_MEMORY_01 프로그램'.

SKIP.

WRITE:'ZBD2_ABAP_MEMORY_02 프로그램으로 이동 복귀 .'.

 

 

 

 

 

- PROGRAM - 2

 

 

*&---------------------------------------------------------------------*

*& 데이터 선언부

*&---------------------------------------------------------------------*

 

DATAGS_ITAB TYPE SPFLI,

      GT_ITAB TYPE TABLE OF SPFLI.

 

 

 

*&---------------------------------------------------------------------*

*& SELECTION SCREEN (PARAMETERS / SELECT-OPTIONS) 선언부

*&---------------------------------------------------------------------*

 

PARAMETERSP_CARRID TYPE SPFLI-CARRID.

 

 

 

*&---------------------------------------------------------------------*

*&INITIALIZATION.

*&---------------------------------------------------------------------*

INITIALIZATION.

 

* ABAP Memory 'MM_ID' 저장  GT_ITAB IMPORT (ABAP Memory에서 가져 !).

IMPORT M_SPFLI_DATA GT_ITAB[]

       FROM MEMORY ID 'MM_ID'.

 

 

 

*&---------------------------------------------------------------------*

*&AT SELECTION-SCREEN OUTPUT.

*&---------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

 

 

 

*&---------------------------------------------------------------------*

*&AT SELECTION-SCREEN.

*&---------------------------------------------------------------------*

AT SELECTION-SCREEN.

 

" User 입력한 항공사 코드가 SPFLI테이블에 존재하지 않을 경우메시지를 띄우고 더이상 진행하지 않음.

SELECT SINGLE *

  INTO @GS_ITAB

  FROM SPFLI

  WHERE CARRID @P_CARRID.

 

IF SY-SUBRC <> 0.

  MESSAGE E555(BC400WITH '해당 항공사 코드에 대한 데이터가 존재하지 않습니다.'.

ENDIF.

 

 

 

*&---------------------------------------------------------------------*

*&START-OF-SELECTION.

*&---------------------------------------------------------------------*

START-OF-SELECTION.

 

 

WRITE:'ZBD2_ABAP_MEMORY_02 프로그램'.

SKIP.

ULINE.

 

LOOP AT GT_ITAB INTO GS_ITAB.

  WRITE:/

    GS_ITAB-CARRID             ,

    GS_ITAB-CONNID             ,

    GS_ITAB-COUNTRYFR          ,

    GS_ITAB-CITYFROM           ,

    GS_ITAB-AIRPFROM           ,

    GS_ITAB-COUNTRYTO          ,

    GS_ITAB-CITYTO             ,

    GS_ITAB-AIRPTO             ,

    GS_ITAB-FLTIME             ,

    GS_ITAB-DEPTIME            ,

    GS_ITAB-ARRTIME            ,

    GS_ITAB-DISTANCE           ,

    GS_ITAB-DISTID             ,

    GS_ITAB-FLTYPE             ,

    GS_ITAB-PERIOD             .

ENDLOOP.

'SAP > ABAP 코드' 카테고리의 다른 글

(ABAP 코드) New Open SQL - SELECT (CASE)  (0) 2021.06.25
(ABAP 코드) SAP Memory  (0) 2021.06.23
(ABAP 코드) ABAP OPEN SQL 코드  (0) 2021.06.13
(ABAP 코드) ABAP SQL QUERY  (0) 2021.06.13
(ABAP 코드) INTERNAL TABLE 코드  (0) 2021.06.13