[SAP ABAP] SAP Dynpro lifecycle, PAI를 타면서 값이 화면 기준으로 할당 되는 문제

성희·2025년 8월 30일
0

[SAP개발] ABAP

목록 보기
11/12

문제

  • ALV 더블 클릭 이벤트에서 화면 필드(그림에서 1번, 2번) 값을 변경하였으나 특정 필드(1번)만 반영이 되지 않음
  • 디버깅 결과 PAI를 타면서 특정 필드의 값이 프로그램 변수로 set 되는 것이 아니라 화면에 있는 값이 반영되는 문제 발견

원인

- 문제가 생기는 화면 필드는 입력 가능 상태(input = ON)임
- SAP Dynpro lifecycle에 의해 내부적으로 값이 할당됨

해결방법

- 인풋 필드 변수에 값을 할당한 다음 PAI를 타기 전에 화면 필드의 속성을 입력 불가능 상태로 변경함

코드

FORM calc_po.

  CHECK gs_data IS NOT INITIAL.

  DATA : lv_sum TYPE zecho0722t0102-netwr.

  lv_sum = gs_data-menge * gs_data-netwr.

  gs_input-ip_ebeln = gs_data-ebeln.

"해당 필드를 입력이 불가능하도록 set
   LOOP AT SCREEN.
    IF screen-name = 'GS_INPUT-IP_EBELN'.
      screen-input = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

  gs_total-to_meins = gs_data-meins.
  gs_total-to_menge = gs_data-menge.
  gs_total-to_sum   = lv_sum.
  gs_total-to_waers = gs_data-waers.

(코드 생략...)

ENDFORM.

결과


녹화 프로그램 이슈로 마우스 포인터가 이상하게 녹화되었지만 원하는 대로 동작하게 된 모습

profile
ABAP 개발자로 성장하는 중

0개의 댓글