반응형

ABAP 73

ABAP 정규표현식을 사용한 사번체크

프로그램을 개발하는 도중에 사번을 체크 할 일이 생겼다. 사번이 특별한 형태로 이루어져 있기 때문에 어떻게 쉽게 체크 할 수 없을까 고민 끝에 정규표현식을 사용해 보기로 했다. 기존에 웹 개발을 했을 때도 가끔 사용하기도 했는데 이게 생각보다 간단한것 같지만 이해도 잘 안돼서 망한 경우도 많이 있었다. ㅎㅎ 오늘의 사번 형태는 AB + 숫자 6자리인 형태인 사번을 체크하는 로직이다. 앞에 AB 는 "AB로 시작하는" 의 의미이다. 그리고 [0-9] 는 "0~9 사이의 숫자가 들어 올 수 있다는" 의미이고 {6} 은 "6자리를 의미"한다. 간단하게 예제소스를 돌려보면 abap_true 값인 'X' 값이 출력 되는 것을 알 수 있다. REPORT ytest_regex. DATA : lr_matcher TYP..

SAP/ABAP 2014.07.24

ABAP Dynamic Internal Table 을 Read Table 하기

최근 Dynamic Internal Table 을 이용한 프로그램을 많이 만들었다. ( 된장찌게 엄청 빡세고 내용만 엄청 길어져서 다 갈아내고 싶다. ) 이전에 Dynamic Internal Table 을 생성하는 포스팅을 했었다. [SAP/ABAP] - 동적 인터널 테이블을 만들때 deep structure 로 생성하기 그런데 프로그램을 개발하도 보니 Internal Table 의 최대 장점인 Read Table 을 사용하기에 애매한 부분이 생겼다. 그냥 선언해서 사용하는 Internal Table 의 경우 Field 명을 그냥 with key Field = 'XXX' 이런식으로 사용이 가능한데 Dynamic 하게 생성한 Internal Table 은 Field 자체를 고정 할 수 없어서 with Ke..

SAP/ABAP 2014.07.16

Variant 없이 Batch Job 생성하기 ( Dummy Variant 생성 )

오늘의 특이 케이스는 Batch Job을 생성하는 과정에서 나타나는 오류는 아니지만 엉뚱한 곳에서 문제가 생긴 케이스 이다. 이 포스팅 이전에 Variant 와 Batch Job 에 대해 포스팅을 3차례 하였는데 이 케이스는 없는 것 같아 추가적으로 기록을 남기게 되었다. Batch Job 을 등록하는데 Variant를 넣으라고 하는 메시지를 내보내고 진행이 안된다. 는 질문을 받았다. 그런데 다른 Job 들을 보니 Variant 없이 등록된 Job 들도 있었고, 그래서 왜 안되냐고 잘해보라고 닥달(?)을 하고 나서 나도 실제로 SM36을 통해서 배치잡을 등록하다보니 안되는 것이었다. (살짝 미안했다. ) [SAP/Scrap] - 스케쥴 백그라운 작업 생성 ( Batch Job ) [SAP/ABAP] -..

SAP/ABAP 2014.07.16

ABAP Report Dynamic Variant 만들기

이전에 Report 에 Variant (변형) 을 생성하는 방법을 포스팅 한 적이 있다. 오늘은 이 variant 를 dynamic 하게 생성하는 방법을 포스팅하고자 한다. [SAP/ABAP] - Report 프로그램 변형 ( Variant ) 그런데 Dynamic Variant 는 Date 만 가능한 것 같다. 심지어 연월 필드도 되지 않는다. 하지만 batch job 의 경우 대부분 일자를 기준으로 작업을 돌리기 때문에 큰 문제는 없는 것 같다. 다른 방법을 발견하게 된다면 추가해야겠다. 1. 일단 이전에 변형을 생성하는 것과 같다. SAVE 버튼을 눌러서 Variant 생성 화면으로 이동한다. 2. Variant Attributes 에서 Selection Variable Option 을 선택한다. ..

SAP/ABAP 2014.07.11

ALV 엑셀 Export 시 데이터 분리 현상 해결방법

Class ALV 를 개발하고 나서 ALV 의 내용을 export 시키는 기본 기능을 많이 사용한다. 현업에서도 많이 사용하고 개발자들도 데이터를 내릴 때 많이 사용하는데 가끔 개발후 EXPORT > 로컬 파일 > 스프레드 시트 로 다운로드 받을 때 아래와 같은 현상이 발생한다. 그리드는 하나로 보이는데 데이터를 내리면 2개 이상으로 분리되어 보이는 경우가 있다. 이럴 때는 ALV 의 SORT 하는 부분의 속성을 확인하면 된다. *&---------------------------------------------------------------------* *& Form GRID_SET_SORT *&-----------------------------------------------------------..

SAP/ABAP 2014.07.03

특정 문자열 개수 세기

ABAP 개발중 String 에서 특정 문자의 개수를 세고 싶은 경우가 있다. 예를 들면 "ABCDABCDEFG" 에서 A의 개수는 몇개인지를 알고 싶을 때 사용하는 코드이다. REPORT ytest012. DATA : lv_string TYPE string, lv_cnt TYPE i. lv_string = 'ABCDABCDEFG'. FIND ALL OCCURRENCES OF 'A' IN lv_string MATCH COUNT lv_cnt. WRITE : lv_cnt. 또한 특정 문자 예를 들면 "A" 가 최초 어디 위치에 있는지를 알려주는 코드이다. FIND 'A' IN LV_STRING MATCH OFFSET LV_OFF.

SAP/ABAP 2014.06.30

ABAP Screen menu template

ABAP 레포트를 개발하다보면 스텐다드에 많은 메뉴를 기본으로 가지고 있는 것을 볼 수 있다. 하지만 개발자가 기본으로 개발하는 메뉴들은 각각 정의하여 사용한다. 그런데 종종 스텐다드에 보이는 아래와 같은 메뉴를 설정하고 싶을 때가 있다. 가령 예를 들면 Function ALV 를 사용한다던지 할 때 넣고 싶지만 너무 많아 넣지 못하는 경우가 있다. 그럴때 사용하라고 SAP에서는 템플릿을 제공한다. 메뉴 템플릿의 사용하는 방법을 알아보겠다. 메뉴를 처음 만들면 그냥 빈칸들만 있는 메뉴들이 만들어진다. 상단 메뉴에서 Extras > Adjust template 을 선택한다. 메뉴에서 List Viewer 를 선택한다. 그러면 처음 화면의 메뉴들이 다 들어와서 자리를 잡는다.Template Status 를 ..

SAP/ABAP 2014.06.16

ABAP File Upload

Abap 텍스트 파일을 업로드 하는 방법은 여러가지가 있다. 아래의 예제는 cl_gui_frontend_services=>gui_upload 를 사용한 예제이다. 이 외에도 Function Gui_upload 를 사용하는 방법이 있다. 둘의 차이는 잘 모르겠으나 거의 동일한 기능을 하는 것으로 생각된다. REPORT zfileupload MESSAGE-ID zfi. DATA : itab TYPE STANDARD TABLE OF string. PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. CALL FUNCTION 'F4_FILENAME' IMPORTING file_name ..

SAP/ABAP 2014.06.16

BADI 생성 예제

Abap 개발중에 Standard 프로그램에 Exit 을 넣어야 하는 경우가 있다. 그냥 CBO 프로그램이라면 고치면 되겠지만 Standard 프로그램의 경우 막 고칠 수도 없을 뿐더러 나중에 notes 나 sp 가 올라갈 때 문제를 발생 시킬 수 가 있다. SAP 에서는 BADI 라고 하여 중간에 사용자가 개발한 로직을 넣을 수 있게 구멍(?)을 뚫어 놓았는데, 아래가 그것을 생성하는 예제이다. 아래 블로그를 통해 한번 쭉 따라 해보는 것도 좋을 것 같다. http://sarange.net/588 Related Posts[SAP_ABAP] - ABAP 소스 비교 프로그램[SAP_ABAP/Scrap] - Table Control (테이블 컨트롤) 예제 소스[SAP_WD4A] - Web dynpro 의 시..

SAP/스크랩 2014.05.17
반응형