[ABAP] 트랜젝션 호출시 데이터 전달하기 (MEMORY ID, SET, GET)

홍예림·2023년 11월 13일
0

SAP ABAP 코딩하기

목록 보기
6/8
post-thumbnail

SPA/GPA parameters

CALL TRANSACTION 시, 처음 프로그램에서 입력한 값을 호출되는 트랜젝션의 필드에 넣어주고자 한다. SPA/GPA parameters라고도 한다.

Each SPA/GPA parameter is identified by an ID of up to 20 characters. SPA/GPA parameters can either be created explicitly using the statement SET PARAMETER, or implicitly in a PAI event. Once they have been saved in the user memory, they are available to any programs and any sessions throughout the whole duration of a user session. SPA/GPA parameters are usually evaluated by the ABAP runtime environment. In ABAP programs, the parameters can be read using the statement GET PARAMETER.

  • 각 SPA/GPA 파라미터는 ID(CHAR20)로 구분된다.
  • SPA/GPA 파라미터는 명시적으로는 SET PARAMETER 구문을 통해 생성되고, 암묵적으로는 PAI 이벤트를 통해 생성된다.
  • 일단 유저메모리에 저장되면, 유저 세션이 돌아가는 동안에는 어떤 프로그램이나 세션에서도 사용 가능하다.
  • SPA/GPA 파라메터는 일반적으로 ABAP 런타임 환경으로 평가된다.
  • ABAP 프로그램에서 GET PARAMETER 구문을 통해 읽혀진다.

MEMORY ID

  • MODIFY ID와 헷갈리지 말 것.

처음 작동하는 프로그램의 셀렉션 스크린에 MEMORY ID <3글자ID>를 입력한다.
ID는 3글자 문자열이며 큰따옴표는 적지 않는다.


SET PARAMETER ID

이벤트 클래스문 또는 USER-COMMAND 등 원하는 위치에 넣는다.
예시는 이벤트 클래스문에서 CASE로 분기해 작동하도록 입력했다.

SET PARAMETER ID : <3글자ID> FIELD <값을 가져올 변수의 이름>
  • 스탠다드 프로그램의 코드에 이미 GET이 설정되어있는 경우가 있어서, CBO프로그램에서 스탠다드 트랜젝션 호출시 SET만 구문만 적어도 동작한다.


GET PARAMETER ID

  • 값을 받는 트랜젝션의 코드에서 사용한다.
  • 스탠다드 프로그램의 코드에 이미 SET이 설정되어있는 경우가 있어서, CBO프로그램에서 스탠다드 화면의 값을 받아올 시 GET 구문만 적어도 동작한다.
GET PARAMETER ID : <3글자ID> FIELD <값을 넣어줄 변수의 이름>

GET/SET 파라메터ID 찾기

  • 스탠다드 트랜젝션을 부르거나, 스탠다드 화면에서 값을 가져올 때 사용한다.
  • 화면으로 직접 가서 technical help(F1->망치아이콘)을 통해 확인한다.
    - 파라메터ID 모아둔 테이블명: TPARA

예시

체크박스 세팅

FK03 같이 시 체크박스 세팅도 필요한 경우...
이 글을 읽고 세팅하자. https://gomtui.tistory.com/81

DATA : lv_views(100).

lv_views = '/210/215/220/610'.
          "/회계정보/지급거래/통지서/원천세

          SET PARAMETER ID :
          'KUN' FIELD gs_disp-code, "공급업체
          'BUK' FIELD pa_bukrs,
          'KDY' FIELD lv_views.

          CALL TRANSACTION 'FK03' AND SKIP FIRST SCREEN.
profile
SYNC 5반 2023.07 - 2023.12

0개의 댓글