SAP/ABAP 65

ABAP Class ALV On F4 이벤트 이후 Data Changed Event 사용하기

오랜만에 ABAP 개발 관련 포스팅을 작성한다. 요즘 개발 할 일이 없었다기 보다는 개발을 해도 이전에 사용하던 내용을 복붙 신공으로 개발을 해서 인지 새로운 내용을 조사할 일이 별로 없었는데 이번에 ALV 에서 On_F4 이벤트 이후 Data Changed 이벤트를 태워야 하는 경우가 생겨서 구글에서 찾아본 내용을 작성하고자 한다. ( 실제로 구글에서 찾았다기 보다 SAP 데모 ALV 프로그램에 힌트가 있었다. ) 오늘의 목표는 Class ALV 에서 특정 셀에서 ON F4 Event 수행 이후에 Data Changed Event 수행을 시키고, Data Changed Event 에서 변경된 셀의 정보를 가지고 체크 로직을 태우는 부분이다. ON_F4 이벤트가 수행하기 전에 Data Changed Ev..

SAP/ABAP 2015.11.05

SAP R/3 에서 차트, 그래프 그리기 : GRAPHICS GUI CE DEMO

SAP R/3 에서는 Chart Engine Class 를 이용한 다양한 그래프를 지원한다. 단순한 2차원 꺾은선 그래프 부터 3차원, 다양한 특수 그래프까지 지원을 하는데 만드는 것은 간단하지가 않다. 일단 XML 로 데이터를 만들어서 데이터를 넣어주어야 그래프가 생성이 되는데 XML 만드는 부분이 좀 까다롭다. SAP 에서 Sample 프로그램을 제공하는데 GRAPHICS_GUI_CE_DEMO 프로그램을 활용하여 그래프를 생성하면 된다. 특히 XML 만들어서 랜더링 하는 부분을 참고하여 Customizing XML 을 생성하면 된다. 별도의 data 와 Customizing 으로 구분이 되며 XML 이 대소문자를 가리기 때문에 XML Sample을 만드는 프로그램 그대로 만들어서 넣어주어야 특별한 삽..

SAP/ABAP 2015.10.01

Functional ALV 에서 선택한 컬럼 가져오는 함수 : REUSE_ALV_GRID_LAYOUT_INFO_GET

요즘은 대부분 Class ALV 를 사용하지만 이전에 개발된 레포트는 아직 Functional ALV 를 사용하고 있는 프로그램들이 많이 있다. Class ALV 보다 기능이 적다고 생각하지만 정작 찾아보면 Class ALV 에 있는 기능을 대부분은 함수 형태로 제공을 하고 있다. 오늘 포스팅 할 내용도 그 부분의 연장 선상의 내용이다. Functional ALV 에서 특정 컬럼을 선택해서 그 선택한 컬럼만 그래프로 표현을 하고 싶어서 함수를 찾아 보았다. DATA : gt_marked_columns TYPE slis_t_fieldcat_alv. DATA : lv_field(30), ls_column TYPE slis_fieldcat_alv, lv_marked_colums TYPE i. CALL FUNC..

SAP/ABAP 2015.10.01

ABAP 스마트폼 언어별 텍스트가 다르게 나오는 경우 해결방법

ABAP Smartform 에서 로그인 언어별로 텍스트가 다르게 나오는 경우가 있다. 대부분 KO 와 EN 둘중 하나로 고정해서 사용하지만 두 언어를 모두 사용할 경우 문제가 생길 수 있다. 그냥 레포트라면 Translation 메뉴를 통해서 텍스트 들을 변경해 주면 되는데 Smartform 의 경우 Translation 메뉴가 실행되지 않는다. 그래서 방법을 찾던 중에 SE63 을 이용하여 Smartform 의 텍스트를 Translation 하는 방법을 찾아내게 되었다. SE63 에서 상단 Trlaslation > ABAP Objects > Other Long Texts 를 선택한다. SAPscripti : Forms and Styles > SSF Smartform 을 선택한다. 변경할 Smartfor..

SAP/ABAP 2015.05.22

ABAP 개발을 위한 Eclipse 및 플러그인 설치하기

SAP ABAP 개발은 SAP GUI 라는 SAP 서버 접속 전용 툴을 사용하여 개발을 한다. 처음시작하는 사람들은 대부분 이외의 툴은 잘 사용하지 않을 뿐더러 SAP GUI에서 지원하는 기능만큼 지원하는 툴도 없다. 하지만 이번에 SAP HANA 를 강좌를 보다 보니 강사들이 다 Eclipse 를 사용하고 있기에 호기심에 찾아보았다. 예전에 Java 를 할 때 eclipse 는 툴이 무거워서 별로 사용하고 싶지 않았는데 확장성은 진짜 최강인 것 같다. 조금 사용해보니 SAP GUI 화면을 그냥 끌어다가 붙여놓았다. ( 그래서 Eclipse 를 왜 써야 하는지 의문이기도 하다. ) https://tools.hana.ondemand.com/ 위 사이트를 들어가보면 ABAP, BW, HANA 등등 다양한 플..

SAP/ABAP 2015.04.06

ABAP 개발자의 시작

SAP ERP 개발업무를 하기 위해서는 ABAP 이라는 언어를 알아야 한다. SAP 패키지는 기본적으로 ABAP으로 개발되어 있고, 우리와 같은 개발자들은 고객의 요구사항에 맞춰 ABAP 으로 CBO 프로그램을 개발해야 한다. ABAP은 4세대 프로그래밍 언어이기 때문에 C, JAVA 보다는 Visual Basic 에 가까운 언어이다. 개발자들 중에는 ABAP 이라는 언어가 있는지 모를만큼 많이 알려지지 않았지만 요즘은 대기업을 중심으로 SAP가 많이 설치되어 있어서 예전보다는 많이 알려졌다. http://ko.wikipedia.org/wiki/ABAP 출처 : www.sap.com ABAP 이라는 언어는 VB와 비슷하기 때문에 배우기가 쉽다. 그러나 다른 언어를 하는 개발자가 선뜻 도전하기가 어려운 이..

SAP/ABAP 2015.04.06

ABAP 메모리상의 프로그램 로컬 변수 Local Variable 접근하기

ABAP 개발을 하면서 가장 편하다고 생각했던게 프로그램간 파라메터를 전달해서 다른 프로그램을 현재 개발하는 프로그램에 서브 프로그램으로 사용 할 수 있다는 점이었다. 그래서 다른 프로그램이지만 상세화면을 보여주는 등 다양한 형태에서 추가적인 개발을 하지 않고 상세화면을 구성할 수 있다. 예를 들자면 CBO 프로그램에서 IW52 라는 Notification 상세화면으로 바로 들어가는 기능을 만들 수 있다. ABAP 코드에서 Call transaction 과 submit 을 이용 하여 다른 프로그램으로 이동할 수 있으며, 각각 파라메터를 전달하는 방식은 추후에 포스팅을 하도록 하겠다. 오늘은 이러한 프로그램 간 이동을 하면서 이전 프로그램의 Local Variable 을 조회하는 내용을 찾아보았다. 나와 ..

SAP/ABAP 2015.02.25

ABAP 간단한 결과 내용을 ALV 팝업으로 출력하기

ALV 를 이용해서 결과를 표시하고 싶은데 간단한 내용에 비해 ALV를 만들기 위한 소스의 내용이 너무 많다면 ALV Popup Function 을 이용해서 결과를 표시 할 수 있다. 간단하면서 사용이 간편하지만 별도의 기능을 구현하기에는 한계가 있으므로 단순히 결과 메시지들을 출력한다던지 하는데 사용이 가능하다. 구글에서 검색으로 찾았는데 아래 사이트에서 확인 할 수 있다. 그리고 사이트 사용자의 여러 개발 코드 예제가 있으니 개발하는데 많은 도움을 받을 수 있다. Original Source : http://www.kerum.pl/infodepot/00004 REPORT ytest017. START-OF-SELECTION. TYPE-POOLS: slis. PERFORM display_popup. FO..

SAP/ABAP 2015.02.06

ABAP BDC 동일한 Work Order 수행시 오류 발생(IW32)

BDC 프로그램 개발을 하는 중에 Work Order 를 수정하는 프로그램에서 동일한 Work Order 를 두번 연속 수정을 하면 두번째 Work Order가 수정이 안되는 현상이 발견되었다. 문제는 Background 모드를 사용하면 두번째 실행한 것이 저장이 안 되는 문제이다. 그러나 Foreground 로 실행을 하면 문제 없이 두 건 모두 저장이 되었다. 이 문제는 특별한 오류가 있어서 생기는 것은 아니지만 첫 번째 BDC를 처리하고 나서 완료가 되기 전에(짧은 시간이지만) 두 번째 Work Order를 처리하려고 하기 때문에 발생하는 문제 인 듯하다. 그래서 이 경우를 해결하기 위해서는 첫번째 BDC 를 실행 후 몇초간의 시간 텀을 두거나 아니면 BDC 실행시 Update Mode 를 Asyn..

SAP/ABAP 2015.02.05

ABAP Call Screen 100 실행 후 Write 구문 출력하기

개발을 하다보면 그냥 WRITE 구문을 사용해서 메시지를 출력하고 싶을 때가 있다. CALL SCREEN 100 을 써서 별도의 스크린을 만들면 WRITE 구문을 사용 할 수가 없다. 그렇기 때문에 REPORT 초기화면에서 쓰는 것과 같이 화면에 출력이 되지 않는다. 이미 ALV나 별도의 화면이 있는 상황에서 단순히 WRITE 구문을 사용하고 싶다면 아래와 같은 코드를 추가해 주면 된다. ( 예를 들면 BDC를 돌리고 그리고 그 결과를 출력하기 위해서 WRITE 구문을 쓰려고 한던지 할 때 사용하면 된다. ) 이 코드의 핵심부분은 SUPPRESS DIALOG 이다. 이 코드를 추가하면 100번 스크린에서 WRITE 구문을 출력 할 수 있다. ( 실제로 100번 스크린에서 출력이 되는 것은 아니다. 왜냐하..

SAP/ABAP 2015.01.26