반응형

sap 86

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

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

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

ABAP Class ALV Checkbox 변경시 Data Changed Event 실행

Class ALV 에서 데이터를 수정하면 ALV 에 설정되어 있는 Data Changed Event 가 실행되게 된다. 그런데 개발을 하다 보니 Checkbox 의 경우 기본적으로 Data Changed Event 를 타지 않아서 변경된 내용을 체크 할 수 없었다. ( 다른 필드를 수정하면 변경된 내용을 알 수 있으니 그냥 처리해도 된다. ) 그래서 왜 그런가 찾아봤더니 ALV Data Changed Event 의 경우에 1) 데이터가 변경되는 즉시 2) 데이터를 변경하고 엔터 키를 입력시 두 가지로 이벤트 발생을 조정할 수 있다. 그렇기 때문에 Checkbox 의 값이 변경된 경우 바로 Data Changed Evnet 를 실행하게 한다면 변경된 내용을 바로 사용 할 수 있다. 그리고 데이터가 변경 되..

SAP/ABAP 2014.12.15

ABAP Class ALV Cell 별 색상 넣기

ABAP 개발을 하다 보면 제일 많이 하는게 ALV 리스트 개발을 하는 것일 것이다. ALV 가 워낙 강력한 기능들이 많은데 잘 사용하지 못할 때가 너무 많다. 필요한 그리드의 기능을 다 가지고 있어서 잘 세팅하는 법만 알아도 사용자가 요구하는 조건을 충족 시킬 수가 있다. ( 사용자는 기능을 잘 모르기 때문에 개발자가 잘 가이드를 해야 한다. ) 오늘은 Class ALV 의 Cell 별로 색상을 넣는 방법을 포스팅 하려고 한다. ALV 의 필드 카탈로그에서 한 컬럼씩 색상을 줄 수도 있지만 각 셀 별로 색상을 주는 것도 가틍하다. 한 컬럼씩 색상을 넣게 되면 가로의 Row 의 색상을 줄 수가 없는데 Cell 별로 색상을 넣어주면 Row 의 색상을 넣는 것도 가능하다. 위의 레포트에서 보면 가장 아래줄에..

SAP/ABAP 2014.12.10

ABAP 파일 업로드, 다운로드시 파일 선택 팝업 생성

엑셀 업로드를 하거나 다운로드를 할 때 파일명 및 경로를 설정해야 할 때가 있다. 하드코딩으로 넣어도 되지만 ABAP에서 기본 제공하는 함수와 Class 메소드가 있는데 Class 메소드를 포스팅 하고자 한다. ( Class 메소드가 파일명도 넣을 수도 있고 멀티 셀렉트도 가능하다. ) " 파일경로 설정 PERFORM F4_HELP_FOR_FILE CHANGING GV_FILE. *&---------------------------------------------------------------------* *& Form F4_HELP_FOR_FILE *&---------------------------------------------------------------------* * text *-----..

SAP/ABAP 2014.11.18

ABAP Report 프로그램 실행시 Tcode 체크

Report 프로그램을 개발하다 보면 SE38 이나 SE80 등으로 Report를 실행 할 수 있다. 물론 사용자들에게는 SE38, SE80 권한을 잘 안주기 때문에 실행할 일이 별로 없긴하지만 그래도 레포트 프로그램 하나에 두개의 Tcode 를 줘서 구분하여 만든 프로그램에서는 Tcode로 만 실행하게 하는 방법이 필요하다. 의외로 간단하게 적용이 가능하다. Report 프로그램 실행하면 제일 먼저 실행되는 Initialization 부분에 SY-TCODE 를 체크하여 원하는 Tcode 가 아닐 경우 프로그램을 종료하면 된다. ( 메시지 추가도 가능하다.) 아래 코드 중에 Leave Program 을 사용하면 프로그램이 실행은 되지만 1000번 화면으로 가지 못하고 메시지가 출력되면서 종료된다. *&-..

SAP/ABAP 2014.11.17

저장,삭제시 확인 팝업용 함수 - POPUP_TO_CONFIRM

오늘은 ABAP 개발중 많이 사용하는 Function 중 하나인 Confirm Function 을 포스팅 하려고 한다. 저장/삭제 등등 다양한 곳에서 사용이 가능한 Standard Function 이다. Standard Function 중에 Confirm 을 물어보는 다양한 함수가 있지만 그중에서 가장 간단하면서도 사용하기 편리한 함수이다. 근데 꼭 쓰려면 기억이 안난다. 사용법은 에디터 메뉴중 패턴에 넣으면 아래와 같이 사용가능한 옵션과 함께 기본 타입이 입력이 된다. ( 이름대신 패턴에서 조회도 가능하나 다양한 함수가 나올 수 있다. ) POPUP_TO_CONFIRM Return Code - Yes : 1 / No : 2 / Cancel : A DATA : L_ANSWER. CLEAR : L_ANSW..

SAP/Function 2014.11.17

PM_ORDER_DATA_READ : AUFNR 로 Work order 데이터 조회하는 함수

PRT List 데이터를 조회하는 함수를 찾아보다가 발견한 함수이다. Work Order Number 만 넣으면 왠만한 Work order 의 데이터는 다 나오고 있다. 역시 SAP는 개발이 된지 오래된 시스템이다 보니 내가 생각한 것은 이미 다 만들어 놓은 것 같다. ( 물론 내가 코어를 개발하면 좋겠지만 그렇지 않다면 잘 찾아서 쓰는 것도 능력인 듯 하다. ) CALL FUNCTION 'PM_ORDER_DATA_READ' EXPORTING order_number = " aufk-aufnr Order number IMPORTING wcaufvd = " caufvd CAUFVD Dialog area (Order header) wcaufvd = " caufvd wiloa = " iloa Work area ..

SAP/Plant Maintenance 2014.10.23 (2)
반응형