쌓고 쌓다

[ABAP] 사용자 파라미터 (사용자 마스터 매개변수 ID) 테이블 본문

SAP/ABAP

[ABAP] 사용자 파라미터 (사용자 마스터 매개변수 ID) 테이블

승민아 2025. 12. 21. 13:26
반응형

예를 들어 다음과 같은 FD(Functional Design)을 받았다고 하자.

 

Selection Screen 부분의 요구사항이다.

사용자 파라미터의 CAC 값 표시?

 

MEMORY ID 'CAC'를 사용하여 사용자 파라미터 값을 가져올 수도 있지만

값을 잘 못 가져오길래 다른 방법을 찾았다.

 

USR05(사용자 마스터 매개변수 ID) 테이블을 사용할 수 있다.

 

USR05 테이블과 SU01

사용자가 디폴트로 가지고 있는 값을 처리해야하는 경우 USR05 테이블을 사용해야 한다.

디폴트 값들은

T-Code : SU01

에서 유저별로 설정할 수 있다.

(권한이 없어 테스트는 못해봐서 직접 USR05 테이블의 값들을 변경하며 테스트했다..)

 

또는

시스템 - 사용자 프로파일 - 사용자 데이터 탭에서 로그인한 유저로 설정할 수 있다.

 

 

매개변수 탭 페이지에서 매개변수 ID 기본값을 설정할 수 있다.

여기서 변경저장한 값은 'USR05' 테이블에 반영된다.

 

(이렇게 변경하니

'MEMORY ID CAC'가 안되어서

새로운 방법을 작성하는 게시글이었는데 

갑자기 'MEMORY ID CAC'가 된다...)

 

TPARA 테이블

TPARA 테이블에는 파라미터 ID로 사용하는 키 값들이 무엇이 있는지 확인할 수 있다.

'CAC'는 관리회계영역이였다.

 

사용자 파라미터(매개변수)의 CAC 값 읽기

관리회계영역(Controlling Area) CAC의 값을 어떻게 읽어오라고 요구했던 것일까?

 

'S_TWB_U_GET_USER_PARAMETERS' 펑션을 사용해

USR05 테이블에 들어있는 값들을 받아 올 수 있다.

 

받아온 Internal Table에는 위와 같이 값들이 담겨있다.

  

Internal Table에서 'CAC' 값을 찾아 Selection Screen에 담아주라는 것이었다.

 

'K_KOKRS_SET' 펑션을 사용해도 USR05 테이블의 값을 가져오는 것을 확인했다.

위의 펑션을 사용해도 된다.

 

팝업창 띄우기를 사용하면 사용자가 'CAC' 직접 선택할 수 있는 팝업창이 표시가 된다.

 

관리회계 영역의 회사코드 읽기

게시글의 타이틀에 벗어나는 내용이지만...

읽어온 'CAC' 값으로 회사 코드를 표시하는 게 있었다.

 

'K_CATT_BUKRS_KOKRS' 펑션을 사용해

Controlling Area 값을 넣어 Company Code를 가져올 수 있다.

 

 

'K_CATT_BUKRS_KOKRS' 펑션도 사실

'TKA02' 테이블에서 값을 읽어오는 펑션이라

TKA02 테이블을 직접 사용해서 가져와도 괜찮다.

 

궁금한 게

TKA02 테이블을 보면

'A'라는 관리회계 영역에 여러 회사 코드가 존재할 수 있는 것 같은데

Controlling Area와 Company Code는 1:N 관계 같은데

하나만 가져온다.

 

인터넷에 검색해 보면 회사에 따라 1:1일 수 도 있다고 하는 의견이 있어

그렇구나~ 하고 넘겼다.

 

결론

사용자별로 설정된 기본값을 읽어와서 개발해야 하는 경우가 있다.

 

'티코드 SU01' 또는 '사용자 프로파일 탭' 에서 사용자별로 기본값을 설정할 수 있다.

 

그곳에 'CAC'라는 관리회계영역을 지정할 수도 있다.

 

그 지정된 사용자 파라미터 값은 'USR05' 테이블에서 확인할 수 있다.

 

MEMORY ID에 사용되는 키 값은 'TPARA' 테이블에서 확인 가능하다.

반응형