본문 바로가기
ERP-SAP/FI

SAP FBL3N LIST 데이터 가져와서 활용하는 방법(get fbl3n data list)

by 행복한워니의 기록 2022. 2. 10.
728x90
반응형

나랑 똑같은 고민하는 사람 분명 있겠지...
사실 조금 더 똑똑한 사람은 혹은 설계자는
FAGL_GET_OPEN_ITEM_GL
같은 펑션을 이용해서 지지고 볶고 하것지..
1시간동안 그냥 연구해서 짠걸 당신을 위해
공유합니다... ㅎㅎㅎ
만나면 커퓌?

1. 요건사항
여기 나온 리스트들을 외부로 인터페이스 전송해
정보로 활용하고 싶다고 함...

2. 고민사항
빠른 코딩 /FBL3N 내부 로직에 대한 완벽한 이해가능여부 / 금액 로직들이 있나?

3. 결론
Fbl3n 출력데이터를 그대로 활용해보자

4. 방법

당당하게 SUBMIT T-CODE AND RETURN
이용할것임

해당 프로그램은 RFITEMGL로
내부를 보면 동적 스크린으로 데이터 받고 던져서 펑션으로 리스트를 뿌린다

step 1. using submit

SUBMIT RFITEMGL EXPOTING LIST MEMORY
USING SELECTION-SCREEN '1000'
WITH SELECTION-TABLE I_RSPARAMS
AND RETURN.

이걸 이용할 것..
자 I_RSPARAMS 선언은 널려있으나..
아래 그림처럼 선언하길 바람..

자 그럼 두번째로 i_rsparams 인터널 테이블에 담을 조건들은 어떻게????

위 캡쳐처럼 담으면 되는데
kind = 's' 이건 select-options 이고
kind = 'p' parameters 임...

아래 그림처럼 조건을 넣었음..

라디오버튼들이 있으니 선택하고 나머지 클리어 안해주면 덤프날수도 있으니 보면서 하시고 ..

저 조건들을 편하게 하는 방법은
FBL3N 프로그램 디버깅 하면 사실 저 조건 다 들어있는 itab 이 있으니 그걸 excel다운로드해서 활용하면 매우편함.. 아래처럼.....

☆☆중요!!☆☆
이 레포트는 레이아웃에 따라 텍스트 출력필드 순서가 바뀐다. 고로 p_vari 즉, alvlayout 셋팅도 꼭 해놔야한다. 그 순서대로 문자가 출력되기 때문이다.
고로 아래와 같이alv 레이아웃 이름을 저장해두고
코딩에 넣었다.




자 그럼 이제 중요로직 시작

step 2. list from memory
submit 을 통해 가져온 메모리를 리스트화 함

call function 'LIST_FROM_MEMORY'
TABLES
listobject = i_listobject.

step 3. list to asci

call function 'LIST_TO_ASCI'
TABLES
listasci = i_ascii
listobject = i_listobject.

이건 위에 받아온 코드를 우리가 fbl3n으로 출력된 모습대로 보여주게 된다.

step 4. LIST DATA MODIFY
리스트로 받아온 데이터는 FBL3N 출력처럼
온갖 텍스트와 라인으로 버무려져 있다..
그래서 가공해서 필드에 있는 원하는 데이터면 가져와야한다. (디버깅으로 데이터 확인필수)

아래처럼.... split 후에 각각의 필드맵핑을 그냥 하려했으나 순서가 안맞아서 우선 itab에 담고 loop돌면서 각각 필드에 맵핑했다.
(왜 동적으로 안했냐 묻지마라... 필드가 많았으면 했을텐데 뭔데이터가 몇번째 오는지 몰라서 적으면서 짜느라....그랬다.. 동적으로 해도 된다.. assign component 쓰면 되고.. 이 블로그에도 있으니 참고)

위 처럼 맵핑 후에
append ls_output to lt_output. clear : ls_output.

해서 예쁘게 데이터만 모아준다.


step 5. free memory

call function 'list_free_memory'
tables
listobject = i_listobject.


하면 된다...

the end....

좋은정보였다면 댓글이나 달아주고 가세요 .. ㅎㅎㅎ
우리 언제 만날지 모르니....



728x90
반응형