반응형

SAP 97

Functional Location 에 연결된 Measuring Point 조회

Functional Location 에 연결된 Measuring Point 를 갑자기(?) 조회 하고 싶을 때가 있다. 그 때(?) 사용 할 수 있는 Function 은 MEASUREM_POINTS_READ_TO_OBJECT 이다. 파라메터는 Object No 값을 사용하고 objnr 은 IFLOT-OBJNR 값을 사용한다. LT_IMPT_TAB 값은 INTERNAL TABLE 인데 FUNCTION 안의 구조를 참조하여 선언하며 MREGU (UNIT필드) 사용하여 필요한 Measuring Point 값을 찾을 수 있다. CALL FUNCTION 'MEASURM_POINTS_READ_TO_OBJECT' EXPORTING MEASUREMENT_POINT_OBJECT = LV_OBJNR TABLES IMPT_..

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 GUI_UPLOAD 를 이용한 엑셀 업로드

SAP 개발을 하다보면 Excel 을 업로드 해야 할 일이 많이 있다. Excel 을 업로드 하는 함수는 여러 종류가 있는데 오늘은 GUI_UPLOAD 를 이용하는 방법을 설명하려고 한다. 다른 함수들은 사용자의 PC의 특성을 타서 실행이 안되는 경우가 있는데 이러한 경우 처리하기가 매우 까다롭다. ( Excel 업로드가 안된다고 사용자 PC 를 포멧하라고 할 수도 없다. ) GUI_UPLOAD 는 이러한 문제가 별로 발생하지 않아서 최후의 선택으로 사용한다. [SAP/ABAP] - ABAP File Upload TYPES TRUXS_T_TEXT_DATA(4096) TYPE C OCCURS 0. DATA : L_RAW_DATA TYPE TRUXS_T_TEXT_DATA WITH HEADER LINE. DA..

SAP/Function 2015.08.10

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

SAP HANA Cloud Platform Trial 버전 사용하기

SAP 에서 HANA Cloud Platform 을 trial 버전을 개발자들에게 무료로 제공하고 있다. SAP ID 를 가지고 있는 사용자라면 간단한 인증을 통해서 SAP HANA Cloud Platform 을 사용해 볼 수 있다. 나도 일단 등록은 했지만 어떻게 사용하는지 그리고 테스트 프로그램을 어떻게 만들어 볼 수 있는지는 좀 더 찾아봐야겠다. 외국에서는 이미 많은 개발자들이 Trial system 을 사용하고 있는 것 같다. https://account.hanatrial.ondemand.com/ 위의 URL 에 접속을 하면 SAP HANA Cloud Platform 페이지로 이동한다. 여기서 LOG ON 을 하려면 SAP ID 가 필요하다. SAP HANA Cloud Platform 에 SAP ..

SAP 2015.04.06

Open SAP 무료 e-learning courses

SAP에서 무료 e-learning courses 를 시작하였다. 2013년에 시작되었지만 이번에 SAP S/4 HANA 를 런칭하면서 전면에 광고를 하기 시작했다. SAP 는 외국계 회사이고 외국 개발자 포럼이 발달해서 영어를 잘하면 많은 정보를 얻을 수 있는데 나는 영어르 잘 못해서 안타깝게도 잘 알아 듣지는 못한다. 그나마 텍스트는 읽고 이해를 하지만 듣기는 영 아닌데 Open SAP 라는 사이트의 강좌는 그저 그림의 떡인 것 같다. https://open.sap.com/ 하지만 영어에 자신이 있는 분들은 강좌를 들어보는 것도 좋을 것 같다. 최신기술을 설명하는 코스도 있고, 앞으로 SAP가 어떤 방향으로 지원하고 발전시켜 나갈지도 알 수 있는 부분이기도 하다. 그리고 SAP 의 실제 개발자들이 운..

SAP 2015.04.06

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

SAP, ERP 신제품 SAP S/4 HANA 출시

SAP에서 ERP S/4 HANA 를 출시하였다. SAP 개발자로서 R/3 이후 시스템이 계속 업그레이드가 되어 오고 있었지만 이렇게 이름까지 바꿔가며 나오다니 조금은 침체되어 있던 SAP 시장에 새로운 활력을 불어 넣을 것 같다. 이미 왠만한 대기업들은 SAP R/3를 설치하여 프로젝트가 없던 상황에서 S/4 라는 더욱 더 성능을 끌어 올린 솔루션이 나왔으니 앞으로 몇년 이내에 많은 기업으로 S/4 로 이동을 하지 않을까 예상해 본다. 또한 HANA 라는 인메모리 데이터베이스를 사용해서 처리 속도를 올렸다는데, SAP 어플리케이션을 개발하는 입장에서 이러한 부분이 얼마나 영향을 미칠지 궁금하기도 하다. 그리고 기존에 R/3 의 환경을 HTML 5 FIori 를 대응한다고 하니 사용자 입장에서 현재보다는..

SAP 2015.04.06

RKD_WORD_WRAP : 스트링을 글자수 대로 테이블로 잘라주는 함수

ABAP에서 한글을 자르는 것은 참으로 위험 부담이 있다. 글자를 2byte 씩으로 인식을 하기 때문에 그냥 byte로 잘랐다가는 한글이 깨지는 상황이 발생할 수 있다. 그리고 길이를 재도 한글은 2자리 영문은 1자리로 인식해서 합쳐져서 나오기 때문에 한글과 영문이 섞여 있다면 자리수 대로 나누기가 어렵다. 그래서 오늘 포스팅 할 함수는 스트링을 테이블로 변환해 주는 함수이다. RKD_WORD_WRAP 는 한글이든 영문이든 스티링을 글자수를 지정한 테이블에 잘라서 넣어주는 함수 이다. 함수에 TEXTLINE 에 스티링을 넣으면 OUT_LINE1, OUT_LINE2, OUT_LINE3 가 나오고 ( 아마도 첫줄 요약 용도로 사용하라는 의미 같다. ) 그리고 OUT_LINES 테이블에 글자가 잘려서 들어가 ..

SAP/Function 2015.03.03

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

ABAP 텍스트 박스 ( Input Box ) Dropdown List 만들기

ABAP 개발을 핟 보면 사용자들이 데이터 입력하는 텍스트 박스를 많이 만들게 된다. 그러한 데이터를 입력하는 박스 중에서 사용자가 임의로 넣는 것이 아닌 정해진 값만 넣게 해야 하는 방법중 하나가 Dropdown List 를 만드는 것이다. 다른 말로 Combo box 라고도 하는데 사용자가 넣어야 하는 것을 선택할 수 있게 하는 것이다. 이렇게 되면 사용자의 입력 오류를 예방 할 수 있고 또 개발자가 오류 값들에 대한 예외처리 하는 로직도 줄일 수 있어서 효과적이다. ABAP에서는 이러한 Dropdown List 를 만드는 방법을 2가지 소개 하고자 한다. 1. Element -> Domain 에 정의를 해서 리스트를 출력한다. 이것은 텍스트 필드에 사용하는 element 의 domain에 정의를 하..

SAP/ABAP 2015.01.20

ABAP Stored Procedure 호출방법

오늘은 오랜만에 ABAP 에 관련된 내용을 포스팅한다. 오늘은 DBCO를 이용한 MS-SQL Stored procedure 를 호출하는 방법이다. 이미 F1을 누르면 설명과 샘플이 나오나 F1 보다 검색을 사용하는 분들을 위해서 포스팅 하고자 한다. 그냥 SQL 을 써도 되지만 Stored Procedure 는 이미 SQL server에서 컴파일이 되어 있고 내용이 변경이 되면 ABAP에서 SQL 을 수정하지 않아도 SQL Server 에서만 변경하면되니 참으로 간단하다. EXEC SQL 의 예제에 나온 예문이다. ( 오라클 ) PARAMETERS incprice TYPE sflight-price. EXEC SQL. CREATE OR REPLACE PROCEDURE increase_price (x IN ..

SAP/ABAP 2015.01.15
반응형