반응형

전체 글 264

Short Dump AC_SYSTEM_FLUSH 에 대처하는 우리의 자세

개발을 하는 도중에 덤프를 만나는 일은 자연스러운 일이다. 그리고 대부분의 오류는 왜 나는지 정확히 위치와 내용을 알려준다. 그리고 SAP 시스템이 너무 구형이 아니라면 소스 코드를 더블클릭 또는 상단에 Debugger 버튼을 누르면 오류가 난 위치로 이동까지 해서 해결이 쉽다. 하지만 가끔 이건 왠 뜸금포인가 하는 덤프가 날 때가 있다. 어디서 난지 찾아가도 왜 나는지 알지 못하는 현상이 있다. SDN 이나 구글을 검색해 봐도 이상한 소리만 하고 Notes 적용만 하라고 하고 막 그러는데 실제로 Notes 를 적용해서 오류를 해결하는 것 보다 개발하는 중 코드의 문제로 발생하는 문제가 많다. 그러므로 괜히 Notes 먼저 적용해서 BC 한테 욕 먹지 말고 자신의 개발 코드를 천천히 debug 해보는 것..

SAP/ABAP 2014.08.01

휴대폰을 어떻게 교체 할 것인가?

요즘은 대부분 사람들이 스마트폰을 쓴다. 나도 꽤 늦게 쓰기 시작했는데 (2010년 6월부터) 벌써 4년째가 되고 2번째 아이폰으로 변경을 했다. 아이폰4를 사용하다가 5S 로 바꾸기로 결정하고 나서 많은 네이버 카페를 비롯해 수많은 경로로 알아보고 또 알아보고 싸게 사려고 노렸으나, 결국 통신사에 호갱님이 되어버린 나 자신이 부끄럽다. 가끔 기습적으로 언론에서 휴대폰 대란이다. ( 휴대폰 대란 뉴스 ) 하면서 0원 아이폰 5S, 갤럭시S5 ... 등등 을 싸게 판다고 호들갑이다. 하지만 이미 언론에 나오면 다 쓸고 지나간 걸 모든 사람들이 다 안다. 그런데 그것을 실제로 사는 정보를 얻기도 어렵고, 실제로 사러 가는 거는 더 어렵다. 나도 몇 번을 시도 했으나 순서를 기다리다가 짤린 적도 있었고, 막상..

일상 2014.07.30

Macbook Pro Retina 가 업그레이드 된다.

Macbook Pro Retina 가 리프레쉬 되어서 나온다. 15인치가 기본형이 램을 16기가 기본으로 장착하고 나온다니 참으로 좋은 것 같다. 항상 램을 업그레이드 해야 하나 말아야 하나 고민하게 하는데 (Macbook Pro Retina 는 램이 보드에 납땜이 되어 나와 자체적으로 업그레이드가 불가능하다. ) 기본으로 나온다니 Macbook Pro Retina 15 인치가 참으로 매력이 생긴 듯하다. 그리고 13인치도 기본적으로 램이 8기가로 된 것을 보니 애플은 진짜 장사를 잘하는 것 같다. 어쩜 이렇게 사고 싶게 스펙을 내 놓는지.. 한동안 맥부기 뽐뿌가 오다가 지금은 좀 사그라 들었는데, 다시금 뽐뿌가 오기 시작했다. 하지만 항상 그렇듯이 가난해서 못사는 이 유부의 심정은 참으로 안타까울 뿐이..

쇼핑/장바구니 2014.07.30

SM30 Maintenance View 실행시 상단 타이틀 깨지는 현상

SM30 은 참으로 많이 쓰는 Tcode 이다. 개발자들은 잘 안 쓰지만 현업 사용자들은 이걸로 Tcode 따서 데이터를 유지보수 할 수 있게 해주면 사용자들이 알아서 관리를 하니 개발자로서는 참으로 편한 프로그램이다. 오늘은 SM30 을 실행 했을 때 상단에 나타나는 타이틀이 ? 로 나오면서 깨지는 현상을 포스팅 해보려고 한다. 문제가 발생하는 상황은 언어를 EN 으로 생성한 테이블의 Maintenance View 를 KO 로 로그인 했을 때 깨져 보이는 현상이다. 대부분 SAP 는 EN/KO 둘중 하나만 선택해서 사용하므로 이러한 문제는 별로 발생하지 않는다. 그러나 EN/KO 를 번갈아 써야 할 경우가 생기면 발생 할 수 있다. 1. 일단 오류가 나지 않는 언어로 로그인 한다. ( KO 에서 언어가..

SAP/ABAP 2014.07.30

Call Transaction 권한 체크

Call Transaction 은 프로그램 상에서 tcode를 호출하는데 많이 사용된다. 그런데 이게 문제가 있는게 시스템상에 권한을 등록해도 프로그램 실행 권한이 있다면 그냥 무시하고 tcode 를 실행해버리는 단점이 있다. 그래서 Call Transaction 에 권한 체크 기능이 필요하다면 아래와 같은 Standard Function 을 사용하면 된다. FORM call_transaction USING tcode. DATA : l_tcode LIKE tstc-tcode. CLEAR l_tcode. l_tcode = tcode. CALL FUNCTION 'AUTHORITY_CHECK_TCODE' EXPORTING tcode = l_tcode EXCEPTIONS ok = 1 not_ok = 2 OTHE..

SAP/Function 2014.07.29

ABAP 개발 중 성능에 대한 고민

오늘은 ABAP 개발 성능에 대한 고민에 대해서 이야기 해 보려고 한다. SAP 는 다른 일반 개발보다 조금은 다른 점이 있다. 회사의 기간계 시스템이다 보니 조금 느리게 프로그램이 돌아도 데이터가 많아서 그러려니 하면서 사용자들이 기다려준다는 것이다. 웹의 경우 3초 안에 안 나오면 다른 곳으로 옮긴다는 통계도 예전에 본적이 있다. 뭐 요즘은 인터넷 회선도 빠르고 서버도 좋고 좋고 빠른 라이브러리들도 많아서 성능이 엄청 올라가긴 했다. 그러나 최근 성능 개선 요구를 받고 있다. 처음 짜 놓은 프로그램이 10만건 정도를 루프를 돌리면서 Collect 를 하고, 필요한 데이터를 Internal Table 에 채워 넣었다. 그런데 이게 너무 느리다는 것이다. 내가 봐도 느리긴 했다. 그런데 성능 개선이라는게..

SAP 2014.07.29

Table 조회시 Day, Select 시 TAG 으로 나오는 경우

오늘도 개발을 하다가 희안한 상황을 발견하였다. 상황의 내용은 단위가 Day 인데 TAG 으로 나오는 것이다. TAG 은 독일어로 "일" 을 의미하니 DAY 와 동일한 의미이긴 하다. 그래서 TAG도 DAY 로 처리해서 개발하면 되는데, 희안 하다고 해야 할지 아니면 SAP가 꼼꼼하다고 해야 할지 아무튼 상황이 제목과 같은 상황이 발생하였다. SE11 을 사용하여 테이블을 조회하면 실제로 DAY 라는 데이터가 보인다. 그런데 프로그램 상에서 사용하려고 Select 를 할 경우에는 TAG 이라고 조회가 된다. 그렇다고 별도의 테이블에 Language 코드가 있는 것도 아니었다. [ SE11 로 조회하는경우 ] [ 프로그램 상에서 Select 한 경우 ] 나는 Table 을 살펴보던중 도메인에 옵션이 걸려 ..

SAP/Function 2014.07.28

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