SAP ABAP 17

SAP 배치 병렬 처리 (Parallel Processing)란?

안녕하세요 모델와이입니다. SAP에서는 CALL FUNCTION ... STARTING NEW TASK 문법을 이용해 **여러 개의 작업(Task)**을 동시에 실행할 수 있습니다.이는 Dialog Work Process를 여러 개 사용하는 방식으로, CPU 병렬 분산 처리와 유사한 개념입니다.주로 사용하는 상황:대량 전표 처리인터페이스 수신 후 데이터 정제 및 Posting보고서 집계 등 독립적인 작업들을 동시에 수행할 수 있을 때ㄱ. 기본 로직 예시1. 병렬 처리용 RFC Function Module 예시 (ZFI_PARALLEL_TASK)FUNCTION ZFI_PARALLEL_TASK. *" Remote-enabled Function DATA: lv_count TYPE i. LOOP AT it..

SAP ABAP 2025.04.23

SAP Background Job 관리와 SM37 분석

안녕하세요. 모델와이입니다.SAP 프로젝트 운영이나 구축을 하다 보면 하루에도 수십~수백 개의 Background Job이 실행되며 시스템 핵심 업무를 떠받치고 있습니다.그런데 의외로 많은 분들이 SM37 화면에서 “Canceled”만 보고 끝나는 경우가 많죠.오늘은 실전에서 자주 발생하는 Job 오류 대응법과 튜닝 포인트, 그리고 SM13과 SPOOL을 활용한 디버깅 방법까지 블로그로 정리해보겠습니다. 1. SAP Background Job이란?Background Job은 SAP 내에서 대량 데이터나 반복 업무를 자동으로 수행하기 위한 핵심 기능입니다. 주로 아래와 같은 용도로 사용됩니다:FI Posting (BAPI 또는 Batch Input 방식)외부 인터페이스 수신/송신 처리마감 정산/배치 정리오..

SAP ABAP 2025.04.18

SAP 유효성 점검 및 대체 로직 기입 방법

안녕하세요. 모델 와이입니다. 오늘은 유효성 점검 (ZRGGBR000) 과 유효성 대체(ZRGGBS000)에서 로직을 입력할 때 활용법에 대해서 말씀드리겠습니다. SAP에서는 유효성 점검(Validation) 및 대체(Substitution)를 설정할 때, 특정한 조건과 로직을 적용하기 위해 EXIT을 활용할 수 있습니다. 이를 위해 SAP에서는 C_EXIT_PARAM_NONE, C_EXIT_PARAM_FIELD, C_EXIT_PARAM_CLASS 세 가지 주요 유형을 제공합니다. 점검 혹은 대체 로직을 들어가면 아래와 같은 설정을 확인하실 수 있습니다.해당 설정에 PARAM의 값의 의미에 대해서 설명하며, 관련 로직으로 기입하는 방법을 설명드리겠습니다.  1. C_EXIT_PARAM_NONE매개변수를 ..

SAP ABAP 2025.03.24

SAP Structure 및 Table 필드 정보 변경 후 ALV 반영되지 않는 경우

안녕하세요. 모델 와이입니다. 오늘은 개발을 하다가 자주 접하는 오류 케이스에 대한 정보를 들고 왔습니다. 모두들 아시다시피 ALV 개발에 있어 다양한 방법의 Field-catalog 생성 방법들이 존재하는데요.그 중 많은 분들이 쓰시고 있는 "LVC_FIELDCATALOG_MERGE" 의 경우 테이블 혹은 구조체의 선언된 내역을 가져와서 생성합니다. 하지만 참조하는 필드가 변경되었을 경우 해당 내역을 즉시 반영하지 못하는 경우가 생기곤 합니다. 그럴 때는 Buffer를 제거해 Sync를 맞춰주어야 내부적인 선언들도 반영처리가 됩니다. 버퍼를 제거하는 방법은 코드로 작성하거나, 직접 명령어를 입력하는 방법이 존재합니다.그럼 해당 내역들을 자세히 알아보겠습니다. 0) SE14  ABAP Dictionary..

SAP ABAP 2025.02.26

Selection-Screen 실행 버튼 제거 ( Screen 1000 )

안녕하세요. 모델와이 입니다. SAP ABAP에서 스크린(Screen) 1000 기준으로 **스탠다드 버튼(표준 버튼)**을 숨기거나 비활성화(Disable) 하는 방법을 설명해 드릴게요.  📌 1. SAP 스탠다드 버튼 목록 (스크린 1000 기준)스크린(Screen) 1000을 사용하는 프로그램에서 일반적으로 제공되는 SAP 표준 버튼은 다음과 같습니다.버튼 설명 SY-UCOMM 값버튼설명SY-UCOMM실행프로그램 실행 (F8)ONLI저장레이아웃 저장SPOS레이아웃레이아웃 불러오기GET 이 버튼들은 ABAP Logic을 통해 제어할 수 있습니다.📌 2. 스탠다드 버튼 숨기기 (제거하기)아래와 같은 화면의 버튼을 제거할 수 있습니다. ✅ 예제 : 버튼 숨기기Initialzation에 (다른 곳도 상..

SAP ABAP 2025.02.12

ABAP Long Text 등록 및 사용 방법

안녕하세요. 모델와이입니다. 오늘은 ABAP 로직 중 장문의 글을 등록 및 관리하여야 할 때 (255자 이상)테이블에 해당 데이터를 저장하기가 어려움이 존재할 때, 또는 텍스트 내역에 대한 저장이 엔터와 같은 조판부호가 포함될 경우 사용하기에 용이합니다. CBO(Condition-Based Output) 프로그램에서 Long Text를 등록하고 사용하는 방법을 설명해드릴게요.CBO는 주로 SAP Output Management에서 특정 조건을 기반으로 출력되는 메시지를 관리하는 기능입니다.📌 CBO 프로그램에서 Long Text 사용 방법🔹 1. Long Text 등록 (CBO 프로그램에서 저장)CBO 프로그램에서 Long Text를 저장하려면 SAVE_TEXT FM을 사용하여 특정 텍스트 객체와 텍..

SAP ABAP 2025.02.11

SAP Field catalog LVC_S_FCAT 설명

안녕하세요. 오늘은 SAP ALV 설정 시 Field catalog 설정에 대한 세부값 설명을 해드리겠습니다.초급개발자의 경우 해당 값들의 사용처를 몰라 힘들게 처리하기도 하는데요. 해당 내역 한 번 확인하시고 추후에 개발에 용이하게 처리하시길 바랍니다. 필드필드내역필드설명COL_POSALV control: Output column칼럼의 output 순서 FIELDNAMEALV control: Field name of internal table field내부 테이블필드의 필드 이름 TABNAMELVC tab name구조체를 참조했을 때 테이블 이름CURRENCYALV control: Currency unitCurrency 단위 CFIELDNAMEALV control: Field name for curre..

SAP ABAP 2025.01.09

SAP sy 변수

안녕하세요. 오늘은 SAP sy 변수에 대해서 알아보겠습니다. 실제 프로그램 개발에 있어 sy 변수의 활용은 활용도가 굉장히 다양합니다. 해당 내역은 SE11에 SYST 테이블에서도 조회가 가능하며,해당 내역에 대한 간략한 설명들도 달아두겠습니다.  변수변수 설명SY-BATCH프로그램이 백그라운드에서 실행중 일 경우 'X'SY-BINPT프로그램이 BDC로 실행중 일 경우 'X' SY-CALLD타프로그램에서의 호출 여부(호출되었다면 X값을 가짐)SY-CALLR출력 시작위치SY-COLNO리스트에서 현재 컬럼SY-CPAGE현재 페이지SY-CPROG현재 프로그램SY-CUCOL커서 좌표 ( 수직 값 )SY-CUROW커서 좌표 ( 수평 값 )SY-DATAR'X' : 화면에 입력가능 필드에 값이 입력SY-DATLO날..

SAP ABAP 2025.01.08

SAP 디버깅 방법 - 팝업창 디버깅

SAP 팝업창 디버깅을 하는 방법은 간단합니다. 1. Text 파일 이용원하는 팝업창을 활성화 한 후에 [FUNCTION] Command=/H Title=Debugger Type=SystemCommand 해당 내역을 Text 파일로 저장 후 해당 파일을 드래그 해 화면에 드랍한 후이벤트를 발생 시키면 바로 디버깅 창이 활성화 됩니다. 2. 디버깅 Short cut 이용SAP GUI Logon 에 바로가기를 이용하여, 시스템 명령어를 등록한 다음해당 내역을 실행함으로써 현재 창에서 디버깅을 실행할 수 있습니다. 유용하게 사용하시길 바랍니다.

SAP ABAP 2025.01.07

SAP 디버깅 - Watch Point

안녕하세요! 오늘은 SAP에서 디버깅을 할 때 매우 유용한 기능인 Watchpoint에 대해 알아보겠습니다. Watchpoint는 특정 변수의 값을 모니터링하여, 사용자가 설정한 조건이 충족될 때 자동으로 프로그램 실행을 중단시켜주는 기능입니다. 이 기능을 통해 복잡한 코드에서 원하는 값을 쉽게 찾을 수 있습니다. 그럼 이제 Watchpoint의 설정 방법과 활용 사례를 자세히 살펴보겠습니다. Watchpoint는 디버깅 과정에서 특정 변수나 객체의 상태를 감시하는 기능입니다. 예를 들어, 프로그램이 실행되는 동안 특정 변수의 값이 변경될 때, 그 시점에서 프로그램을 멈추게 할 수 있습니다. 이를 통해 개발자는 코드의 흐름을 보다 쉽게 추적하고, 문제를 신속하게 해결할 수 있습니다. Watchpoint는..

SAP ABAP 2025.01.06

SAP 디버깅 방법

안녕하세요. 오늘은 SAP 디버깅 방법에 대해서 자세히 알아보겠습니다. 디버깅은 소프트웨어 개발과 유지 보수 과정에서 필수적인 단계이며, SAP 시스템에서도 그 중요성이 매우 큽니다. 이번 포스트에서는 디버깅의 기본 개념부터 실제 사용 방법까지 차근차근 설명해 드리겠습니다.디버깅이란?디버깅은 프로그램의 오류를 찾아 수정하는 과정을 말합니다. 소프트웨어 개발에서는 코드가 의도한 대로 작동하지 않을 때, 그 원인을 분석하고 해결하는 데 필요한 기술입니다. SAP ABAP 환경에서도 디버깅은 필수적이며, 이를 통해 개발자는 프로그램의 흐름을 추적하고 문제를 해결할 수 있습니다. 왜 디버깅이 중요한가?디버깅을 통해 개발자는 코드의 문제를 신속하게 파악하고 수정할 수 있습니다. 이는 최종 사용자에게 더 나은 경험..

SAP ABAP 2025.01.06

SAP ABAP New syntax 7.40

안녕하세요. SAP ABAP new Syntax에 대해서 한 번 알아보겠습니다.SAP 버전 7.4 Patch 이후로 ABAP에서 신규로 사용할 수 있는 구문들에 대해서 정리해보겠습니다.  1. 데이터 선언 및 테이블 선언1-1. 데이터 선언 7.4 이전 구문 DATA : lv_var1 TYPE char5. lv_var1 = ‘ABC’.  신 구문 활용 DATA(lv_var1) = ‘ABC’.  1-2. 테이블 선언 7.4 이전 구문DATA lt_tab LIKE lt_table.lt_tab[] = lt_table[].  신 구문 활용DATA(lt_tab) = lt_table[].  해당 내용 변경을 통해, 변수 및 테이블에 대한 변수 선언을 별도로 사용할 필요가 없어졌습니다.해당 변수는 local obje..

SAP ABAP 2024.12.16

SAP 개행문자에 대해서 알아보자

안녕하세요. 오늘은 SAP ABAP 개행문자에 대해서 알아보겠습니다. SAP ABAP에서 개행문자는 문자열을 여러 줄로 나누어 표현할 때 매우 중요한 역할을 합니다.SAP ABAP 개행문자란?SAP ABAP에서 개행문자는 문자열 내에서 줄을 바꾸는 역할을 하는 특수 문자입니다.일반적으로 개행문자는 "\n" 또는 "CRLF"와 같은 형태로 사용되며,이는 텍스트를 여러 줄로 나누어 보여줄 수 있게 해줍니다.개행문자의 필요성개행문자는 데이터의 가독성을 높이는 데 필수적입니다. 예를 들어, 긴 문자열을 한 줄로 출력하면 사용자가 내용을 이해하기 어려울 수 있습니다. 따라서 적절한 위치에 개행문자를 삽입하여 정보를 명확하게 전달하는 것이 중요합니다.또한, SMS / LMS / Microsoft Teams 등 알림..

SAP ABAP 2024.11.26

ABAP 개발 단축키

안녕하세요! 오늘은 SAP ABAP 개발자들이 꼭 알아야 할 단축키에 대해서 알아보려고 해요.효율적인 개발을 위해서는 단축키를 잘 활용하는 것이 필수적이에요. 그럼 시작해볼까요? 😊SAP ABAP 단축키의 중요성SAP ABAP 개발을 하다 보면 반복적인 작업이 많아지기 마련이에요. 이럴 때 단축키를 잘 활용하면 작업 속도를 크게 향상시킬 수 있어요. 예를 들어, 코드 작성 시 자주 사용하는 기능을 단축키로 빠르게 호출하면 시간을 절약할 수 있답니다. 제가 자주 사용하는 단축키들을 설명하자면 아래와 같습니다.위의 단축키들 중에 몇가지 추가 설명을 드리자면, 1. CTRL + / : SAP의 TCODE와 명령어를 입력하는 위치로 커서가 바로 가게됩니다. + SAP 기본 명령어ㄱ. /n : 현재 창에서 새로..

SAP ABAP 2024.11.20

SAP ABAP 기본 Syntax

안녕하세요. ABAP 기본 Syntax에 대해서 알아보겠습니다.ABAP는 SAP의 프로그래밍 언어로, 데이터 처리와 비즈니스 로직 구현에 매우 중요한 역할을 합니다.이번 포스트에서는 ABAP의 기본적인 Syntax 중 DATA와 TYPE 선언에 대해 자세히 살펴보겠습니다.ABAP에서 DATA 선언은 변수를 정의하는 중요한 과정입니다.변수를 선언할 때는 DATA 키워드를 사용합니다. 예를 들어, 다음과 같이 변수를 선언할 수 있습니다.  1. 데이터 선언( DATA이용 ) 위에 보이는 대로 데이터 선언은 "DATA" 로 선언할 수 있습니다.DATA 뒤에 ":" (쌍점 , 네이버에 검색하니 쌍점이라고 나오네요...) 을 붙이면 한 번에 여러개의 변수를 선언할 수 있습니다.SAP에서 선언하는 데이터 유형은 아..

SAP ABAP 2024.11.19

SAP ABAP Dictionary - Domain 생성

안녕하세요! 오늘은 SAP Domain 생성에 대해 알아볼게요. SAP 시스템에서 Domain은 데이터의 유효성을 정의하는 중요한 요소로, 데이터베이스의 필드에 적용되는 제약 조건을 설정하는 데 사용됩니다. 그럼 SAP Domain의 개념부터 시작해볼까요?SAP Domain은 데이터베이스 필드의 데이터 타입과 길이를 정의하는 객체입니다. 예를 들어, 특정 필드가 정수형인지 문자열인지, 그리고 그 길이가 몇 자까지 허용되는지를 설정할 수 있습니다. 이를 통해 데이터의 일관성을 유지하고, 잘못된 데이터 입력을 방지할 수 있습니다.SAP Domain 생성의 필요성Domain을 생성하는 이유는 데이터의 유효성을 보장하기 위해서입니다. 예를 들어, 고객의 전화번호를 입력할 때, 숫자만 입력되도록 제한할 수 있습니..

SAP ABAP 2024.11.08

SAP ABAP Dictionary Table 생성

안녕하세요! 오늘은 SAP에서 테이블을 생성하는 방법에 대해 자세히 알아보려고 해요. SAP 시스템에서 데이터베이스 테이블을 생성하는 것은 매우 중요한 작업 중 하나인데요, 이 과정을 통해 데이터의 구조를 정의하고 관리할 수 있습니다. 그럼 시작해볼까요? 😊SAP 테이블 생성 개요SAP에서 테이블을 생성하는 것은 데이터베이스의 기본적인 작업 중 하나입니다. 테이블은 데이터를 저장하는 구조로, 각 필드는 특정한 데이터 타입을 가지며, 여러 레코드를 포함할 수 있습니다. 테이블을 생성하기 위해서는 SAP의 ABAP Dictionary를 사용하게 되며, 이곳에서 다양한 설정을 할 수 있습니다.SAP 테이블 생성 준비하기테이블을 생성하기 전에 몇 가지 준비가 필요해요. 먼저, SAP GUI에 로그인한 후, 테..

SAP ABAP 2024.11.08