본문 바로가기

분류 전체보기

(184)
1. Company Code(회사코드) 일반적으로, 당신의 회사의 법인(Legal Entity)를 정리하는 업무가 회계 부서(finance department)에 의해 수행되고, 그 결과는 company codes의 리스트로 나타질 것입니다. 각 법인은 하나의 company code(회사코드)로 연결지어지며 규제와 회사 구체적인 회계적인 핵심적인 기능을 위해 사용될 것입니다. SAP S/4 HANA Sales에서, 당신은 재정 투입(Financial Input)에 대해 리뷰하고, 어떤 Company code가 자회사(subsidiaries)에 매칭되어 고객 관리(Customer relationships), 상품 발송(ship goods), 비즈니스 파트너(business partners(third party or 내부 자회사))에 대한 서비스..
Procedural Programming vs Object-Oriented Programming ABAP에서 가장 대표적인 Procedural Programming(절차적인 프로그래밍) Techniques의 예시는 Function Module과 Subroutines 입니다. 그러나, Class는 다른 말로 하면, OOP Technique를 실행한 겁니다. Procedural Programming에서, Functions는 데이터로부터 분리되어있고 input-output relationships(parameter을 통한)을 사용해서 연결됩니다. 전형적인 ABAP 프로그램은, 아래 그림과 같이, 프로그램 실행하면서 프로그램에서 사용되는 데이터를 선언한 Data Delcarations 부분과, 데이터를 처리하는 ABAP statement(구문)으로 구성되어 있습니다. 프로그램 코드를 더 뚜렷하고(legib..
Object Oriented 언어로서의 ABAP ABAP은 hybrid Programming 언어로서, 절차적인(procedural techniques) 그리고 객체지향(object oriented techniques)적인 기술을 다 지원한다. 이 Class 카테고리 관련 글을 통해서, OOP(Object Oriendted Programming 이하 : OOP )의 다양한 컨셉에 대해 이야기하고, 절차적인 프로그래밍(Procedural Programming)보다 나은 장점에 대해서 이야기 해보도록 하겠습니다. 이 글에 앞어서 앞서서 제가 올린 Class 관련 글들이 있을 것입니다. 아래와 같은 글이 그 예입니다. 제가 3년전 교육과정을 들으며 배운 내용 + Easy ABAP을 본 내용에 대해 정리한 글들인데, 사실 지금 보면 이해도 부족하고 잘못 적은..
ABAP Language Overview ABAP 이라는 언어는 SAP에서 시스템에서 필요한 다양한 어플리케이션을 개발하기 위해 사용되는 언어입니다. Modifications, Enhanvements, Customer Developments을 하기 위하여, ABAP안에서 이루어지는 어플리케이션 개발에 대해 이해할 필요가 있습니다. Applicitons의 유형(Types of Applications) SAP안에서, Report 개발을 위해 초기에는 고안되었지만, ABAP은 대단히(enormously) 그 기능이 확장되어왔습니다. 현재에는 ABAP을 통해 다양한 어플리케이션을 전통적인 환경인 Sap GUI나 Web 환경에서 개발할 수 있습니다. 전형적인 개발 대상에는 Reports, Forms, Interface, Transactions 등이 있습..
Pass by Value [vs] Pass by Reference SAP에서 Processing Block으로 대표되는 Subroutine, Function Module, Method의 경우에는 전부 Parameter Interface(매개변수를 통해 데이터를 주고받는 방식)으로 구성되어있다. 여기서 가장 중요한 개념이 Parameter를 넘겨줄 때, 데이터를 어떻게 전달(Pass)시킬 것이냐의 문제이다. 이것에는 두 가지 방식이 있다. 1. Pass by Value 2. Pass by Reference 런타임동안, Subroutine, Function Module, Method 에서 Parameter(매개변수)가 호출될 때라면, 파라미터를 Pass by Value, Pass by Reference 방식 중 한가지의 방식으로 호출하는 쪽( 호풀하는 프로그램 : Actu..
Function Module 호출 및 예시 Function Module 호출 및 예시 이번엔 실제 앞에서 정리한 내용을 바탕으로 간단한 Function Module을 호출하는 방법을 보도록 하겠습니다. 추후 더 어렵거나 실제 개발했었던 내용을 올려드리도록 하게 지금은 아주 간단하게 Function Module을 만들고 전달하는 방법을 해보도록 하겠습니다. 요구사항을 가정해봅시다. 일정 기간동안 발생한 판매오더(Sales Order : SO)를 외부 시스템에 판매오더 번호(SO Numbeer), 고객 , 금액, 금액에 대항되는 통화 정도를 전송하는 Function Module이 요구되었다고 합니다. 실제 업무에 대해서는 이런 요구사항보다는 좀 더 복잡할 것 입니다. 특정 영업사원이 만든 SO라던가, 아니면 하나의 SO에 대해서 실제 납품, 선적, ..
BATCH JOB 실행 여부 판단 함수(BP_FIND_JOBS_WITH_PROGRAM) 안녕하세요. 간혹 문의받는 내용 중 하나를 공유하고자 합니다. 대다수의 ERP 프로그램들은 Batch Job이라는 기능을 통해서, 사용자가 직접 실행하지 않더라도 특정 조건에 만족하면 자동으로 background에서 작업을 하도록 하는 기능이 있습니다. 그러나 간혹, 이전 batch job이 돌아가고 있는 경우 다음 batch job이 돌지 않았음 좋겠다는 문의 혹은 batch job이 돌고 있으면 사용자가 프로그램을 실행하는 것을 막고 싶어하는 요구사항이 있습니다. 이 떄 BP_FIND_JOBS_WITH_PROGRAM이라는 함수를 사용하면 됩니다. 실제 사용하는 파라미터는 1) ABAP_PROGRAM_NAME -> 사용 프로그램 명 2) ABAP_VARIANT_NAME -> 프로그램 실행 시 사용하는 ..
SAP POP-UP 화면 포함 커맨드 창 없을 때 디버깅(Debug) 입력 ABAP 개발 및 운영을 하다보면 기존 SAP 스탠다드 및 CBO 프로그램을 실행, 분석하다보면 디버깅(Debugging)을 하는 일은 일상이라고 볼 수 있습니다. 디버깅을 거는 방법은 아래 그림처럼 커맨트창에 /H 명령어를 입력하던가 소스코드에 WatchPoint(Break-Point)를 거는 두 가지 방법이 있습니다. 그러나 때때로, 아니 꽤 많은 경우에 Pop-UP 창 혹은 Screen에서 작업을 하고 그것에 대한 결과를 디버깅해야 되는 경우가 있지만, 커맨드 창이 없기 때문에 디버깅을 바로 실행하지 못하는 경우가 있습니다. 가장 간단한 예시로, SE11에서 테이블 검색 후 Filter 버튼을 누른 결과와 같이 이러한 화면에서는 커맨드창을 이용할 수 없기 때문에 디버깅이 힘듭니다. 그럴때, 하기 코..