본문 바로가기

전체 글107

[Class] Progress Indicator 처리용 Common Class Progress Indicator 처리용 Common Class SAPGUI_PROGRESS_INDICATOR "SAPGUI_PROGRESS_INDICATOR"을 간편하기 사용하기 위해 Common Include를 만들어서 사용하고 있었습니다. 2023.05.10 - [ABAP/소스코드] - [Include] Progress Indicator 처리용 Common Include [Include] Progress Indicator 처리용 Common Include Progress Indicator 처리용 Common Include SAPGUI_PROGRESS_INDICATOR 실행시간이 오래 걸리는 프로그램의 경우 최대한 튜닝을 하여 빠르게 처리되는게 가장 좋지만 튜닝에도 한계가 있다보니 어쩔수 없이 처리 .. 2023. 5. 24.
[Report] Client copy 후 번호범위 자동 조정 프로그램 Client copy 후 번호범위 자동 조정 프로그램 RFC_READ_TABLE SCC9를 통해 운영에서 QA로 Remote Copy 시 운영 클라이언트를 잠그지 않고 복사를 하면, 복사 후에 QA클라이언트의 번호범위 테이블의 현재값과 실제 각 테이블(COBK, MLDOC, BKPF 등등)의 마지막 번호가 불일치하는 경우가 발생합니다. 이럴 경우 DUPLICATE_KEY_ERROR가 발생하게 되며, SM13과 SCMP를 이용하여 하나씩 찾아서 수정하면 되긴 하지만, 저희 회사 같은 경우는 테스트를 위해 QA 클라이언트를 매월초에 카피를 하다보니 생각 이상으로 번거롭도 시간도 꽤 소요가 되었습니다. 클라이언트 카피 후 실행하면 소스 클라이언트 기준으로 번호범위를 일괄 조정하는 Report 프로그램을 만들었.. 2023. 5. 24.
[번호범위] Client remote copy 후 DUPLICATE_KEY_ERROR 발생시 Client remote copy 후 DUPLICATE_KEY_ERROR 발생시 SCMP, SCC9, SCCL, NRIV 클라이언트 Copy 시 소스 클라이언트가 사용중인 상태에서 복사를 하면, 복사가 진행되는 동안에도 소스 클라이언트에서는 SAP을 접속중인 사용자 또는 백그라운드 작업 등에서 각종 문서(회계전표,ML,자재문서 등)를 평상시와 같이 만들게 됩니다. 이러다 보니 클라이언트 카피 후에 소스 클라이언트와 대상 클라이언트간에 번호범위가 일치하지 않아, 대상 클라이언트에서 무언갈 하려고 하면 Duplicate Key error가 빵빵 터지게 되죠. 위의 상황은 주로 테스트를 위해 소스클라이언트 잠금 없이 운영 클라이언트에서 QA 클라이언트로 복사한 후 거의 100%의 확률로 발생합니다. 이럴때는 .. 2023. 5. 24.
[번호범위] SAP 번호범위(Number range object) 찾는 방법 SAP 번호범위(Number range object) 찾는 방법 SPRO, SNRO SAP Configuration, ABAP 개발, BC운영 중 생각보다 자주 SAP 표준 번호범위(Number Range)를 이용하게 됩니다. 각 모듈/문서에 해당하는 번호범위는 구글링을 통해 쉽게 찾을 수 있지만, IMG를 통해서도 쉽게 찾아 볼수 있습니다. 저는 개인적으로 주변에 SAP를 배우시는 분들에게 Configuration에 대한 부분은 구글링을 먼저 하지 말고 최대한 IMG에서 먼저 찾아보고 찾기 어렵거나 잘 이해되지 않을때만 구글링을 하라고 하고 있습니다. SAP IMG(Implementation Guide)는 말 그대로 "구현 가이드"입니다. SAP Configuration시 IMG 흐름만 잘 따라가도 크.. 2023. 5. 21.
[개발Tip] Internal Table 성능(Select into, Read, Loop where) 비교 Internal Table 성능(Select into, Read, Loop where) 비교 Standard Table, Sorted Table, Hashed Table SAP Internal Table에 대한 설명과 각 유형별 성능 비교 자료는 구글링을 하면 무수히 많이 나오며, Easy ABAP에도 상세시 설명이 되어 있습니다. 다만, 대부분의 사이트에서 Internal Table 성능 비교에 대해 Append와 Read Table에서만 얘기하고 있어서 문득 Select into와 Standard Table에서 다른 유형의 Move시 그리고 Loop where에서의 성능이 얼마나 차이가 나는지 궁금해서 테스트를 해봤습니다. 단, Binary Search가 아닌 Standard table의 Read가 .. 2023. 5. 16.
[SAP운영/CO] 코스트센터의 효력시작일 추가 및 과거일자로 변경 방법 코스트센터 정보 변경시 효력시작일(분석기간) 추가 코스트센터 효력시작일 과거날자로 변경 KS02 분석기간 추가 조직개편으로 코스트센터의 명칭이 변경되거나, 계층구조의 변경이 필요할 경우 KS02 에서 '분석기간'을 이용하여 신규 기간을 추가 하는 방식으로 처리하게 됩니다. #1. 조직개편 내용 조직개편일 : 2023년 3월 1일 코스트센터명(부서명) 계층구조(상위부서) 조직개편 전 SAP팀 경영관리본부 조직개편 후 SAP운영팀 전략기획실 #2. SAP에서 코스트센터의 분석기간(효력기간) 추가 KS02 > 메뉴의 '편집'>'분석기간' 이름/내역과 계층구조 변경 후 저장 #3. 효력 시작일을 과거날짜로 변경 실수로 효력시작일을 잘못 입력하였을 경우 간단하게 효력시작일을 변경 할 수 있습니다. 분석기간 선택 .. 2023. 5. 12.
[개발Tip] 필드의 Conversion Exit(내부값/화면표시값 변환) 찾는 방법 필드의 Conversion Exit(내부값/화면표시값 변환) 찾는 방법 Domain 의 Conversion Routine SAP는 화면(ALV, Screen 등)에 보여지는 값과 내부값이 다른 경우가 많이 있습니다.(예: BP, 단위, 금액, 자재코드, WBS요소 등) 아래 처럼 고객코드만 하더라도 화면 표시값과 내부값이 서로 다르게 표현되고 있죠 이러다 보니, ABAP 개발시 항상 Conversion Exit을 신경써야 합니다. 물론 ALV는 Field Catalog 선언시 테이블/필드 참조만 잘 되어있다면 왠만한 Conversion Routine은 자동으로 적용됩니다. 아래 내용은 필드의 Domain 정보를 이용해서 손쉽게 Conversion Exit 펑션을 찾는 방법입니다. #1. Domain으로 .. 2023. 5. 11.