SAP/ABAP 코드

(ABAP 코드) SAP Memory

haramang 2021. 6. 23. 22:59

- Program 1

 

 

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

*& 데이터 선언부

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

 

TABLESSPFLI.

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 EQ @P_CARRID.

 

IF SY-SUBRC <> 0.

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

ENDIF.

 

 

 

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

*&START-OF-SELECTION.

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

START-OF-SELECTION.

 

 

* SAP MEMORY ID 'CAR' 유저로 부터 받은 항공사코드를 저장 .

SET PARAMETER ID 'CAR' FIELD P_CARRID.

 

 

 

** Transaction 이동 옵션 --------------------------------------------------------------------------------------------------

 

** LEAVE TO TRANSACTION { Transaction }                        - Transaction으로 이동 현재 프로그램은 종료 .

 

** LEAVE TO TRANSACTION { Transaction } AND SKIP FIRST SCREEN  - Transaction으로 이동하지만, SELECTION-SCREEN 건너 뛰고 실행 .

**                                                               현재 프로그램은 종료 .

 

** CALL TRANSACTION { Transaction }                            - Transaction으로 이동 현재 프로그램으로 복귀 .

 

** CALL TRANSACTION { Transaction } AND SKIP FIRST SCREEN      - Transaction으로 이동하지만, SELECTION-SCREEN 건너 뛰고 실행 .

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

 

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

 

 

 

** CALL TRANSACTION으로 이동.-----------------------------------------------------------------------------------------------

 

* 1.

*LEAVE TO TRANSACTION 'ZBD2_SAP_MEMORY_02'.

 

* 2.

*LEAVE TO TRANSACTION 'ZBD2_SAP_MEMORY_02'

*AND SKIP FIRST SCREEN.

 

* 3.

*CALL TRANSACTION 'ZBD2_SAP_MEMORY_02'.

 

* 4.

CALL TRANSACTION 'ZBD2_SAP_MEMORY_02'

AND SKIP FIRST SCREEN.

 

 

 

WRITE:'ZBD2_SAP_MEMORY_01 프로그램!'.

SKIP.

WRITE:'ZBD2_SAP_MEMORY_02 Trasnaction으로부터 복귀 .'.

 

 

 

 

- Program 2

 

 

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

*& 데이터 선언부

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

 

TABLESspfli.

DATAgs_itab TYPE spfli,

      gt_itab TYPE TABLE OF spfli.

 

 

 

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

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

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

 

PARAMETERSp_carid2 TYPE spfli-carrid.

 

 

 

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

*&INITIALIZATION.

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

INITIALIZATION.

 

* SAP MEMORY ID 'CAR' 저장된 PARAMETER 값을 P_CARID2 저장.

GET PARAMETER ID 'CAR' FIELD p_carid2.

 

 

 

 

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

*&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_carid2.

 

IF sy-subrc <> 0.

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

ENDIF.

 

 

 

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

*&START-OF-SELECTION.

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

START-OF-SELECTION.

 

 

* SPFLI테이블에 데이터를 GT_ITAB으로 이동 (P_CARID2 기준).

SELECT FROM spfli

  INTO TABLE @gt_itab

  WHERE carrid @p_carid2.

 

 

* GT_ITAB 있는 데이터 출력.

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.