반응형

 

하나의 계정코드에는 2가지 종류의 세그먼트로 구분할 있다.

 

G/L 마스터 T-Code : FS00.

 

1. Chart of Account 세그먼트 (T-code : FSP0)

2. Company Code 세그먼트 ( T-code : FSS0 )

 

 

Chart of Account 세크먼트는 하나의 계정코드 마다 1개만 존재할 있지만,

Company Code 세그먼트는 Company code의 개수에 따라서 여러 개가 존재 있다.

 

Chart of Account Segment 정보 (FSP0)

Chart of Account 세그먼트 (T-Code : FSP0)

 

Account Group (계정그룹) 2가지 역할을 한다.

1) 계정코드(Account Number) 번호범위(Number Range) 통제한다.

2) Company code segment 필드를 통제한다. (Field status Group)  

 

Account Group 트랜젝션코드로 화면이 통제가 가능하기에 동일한 필드에 대하여 필드통제가

서로 다른 경우에는 아래와 같은 우선순위를 두어 높은 우선순위가 Activity 처리되도록 하고있다.

 

Field Status Group 우선순위

 

Suppress > Display > Required entry > Optional entry

 

하나의 동일 필드가 계정코드그룹에서는 Hidden(Suppress) 설정되어있고,

트랜젝션코드 설정에서는 Required entrty 설정되어있는경우엔 Dump 에러가 발생.

 

Account Group 설정 IMG 경로

 

위에 그림에 있는 Define Account Group 들어가보면 계정그룹 설정화면이 나온다.

 

모든 Account Group별로 계정코드의 번호범위를 동일하게 부여할 있지만,

위에 그림처럼 계정그룹별로 어느정도 사용할 있는 Number Range 설정하는 것이 오류를 줄일 있다.

 

위에 화면에서 라인을 선택하고 Field Status 버튼을 클릭하면 필드의 특성을 설정할 있다.

 

Account Group 별로 Field Status 설정 하는 화면

 

계정 특성 설정

계정코드는 각각 어떤 특성을 가진 계정인지 설정을 해야한다.

Balance Sheet 특성 (대차대조계정) P&: Statement Account 특성 (P/L 손익계정) 이다.

 

연말결산작업 잔액이월(Balance Carry-forward) 작업을 수행

Balance Sheet 특성을 가진 계정은 계정잔액금액을 금액 그대로 차년도 이월

 

P&L Statement Account 계정은 해당 계정으로 이월하지 않고,

이익잉여금계정(retained earnings account)으로 설정된 계정에 손익계정을 전체 합한 잉여금계정만 이월한다.

 

, B/S계정은 해당 잔액을 그대로 차기년도로 이월하는 것이고 P/L계정은 이익잉여금계정으로

P/L 계정들이 Summary 금액이 이월되는 차이점을 가지고 있다.

 

이익잉여금 설정하는 IMG 경로

 

Define Retained Earnings Account (이익잉여금 정의) 들어가보면

이익잉여금계정 설정화면이 나온다.

 

이익잉여금계정은 하나 혹은 여러 개를 설정할 있다.

화면은 1개의 이익잉여금 계정으로 집계되도록 설정된 경우다.

 

만약 'X' 말고 다른 계정 'A' 이익잉여금 계정을 추가했다면

 

G/L Account 설정 P&L Statement account 설정

Functional Area에서 X' 'A' 하나를 선택하는 화면이 나타나며 하나를 선택하면 된다.

 

 

Company Code Segment 정보 (FSS0)

Company Code  세그먼트  ( T-code : FSS0 )

 

Account Currency 필드는 해당 계정코드의 통화를 설정하는 필드다.

외화은행계좌인 경우엔 해당 외화 통화코드를 넣고 사용한다.

 

해당 필드가 특정 외화통화로 설정되어 있는 경우에는 계정으로 전표를

지정된 통화이외에 다른 통화를 입력할 경우에는 전표 입력이 되지 않는다.

 

보통 빈칸으로 두거나, Company Code Local 통화로 입력하여

사용자가 어떠한 통화로 입력하여도 전표가 가능하게 설정을 합니다.

 

 

Tax Category 필드는 계정코드가 어떤 타입의 세금코드 인지를 설정하는 필드다.

값이 '*' 경우 매입, 매출 어떠한 세금코드가 들어오더라도 전표기표가 가능하다.

값이 '-' 경우 매입부가세 코드만 입력할 있으며,

값이 '+' 경우 매출부가세 코드만 입력할 있다.

 

값이 '<' 경우 해당 계정코드 자체가 매입부가세 계정코드라는 의미이며,

값이 '>' 경우 해당 계정코드 자체가 매출부가세 계정코드를 의미한다.

 

Extended Open Item Management 미결계정(Open Item) 으로 관리할 것인지를 결정하는 필드다.

미결계정이란 반드시 반제(Clearing)처리가 필요한 계정이라는 의미다.

 

일반적으로 Customer , Vendor 등의 reconciliation 계정은 여기에 체크하지 않고 자동으로 미결계정으로 인식한다.

 

Bank(은행), tax(세금), raw material(자재), reconciliation(조정), P&L(손익) 계정 등은 Open 계정으로 설정하지 않아도 자동으로 Open계정으로 인식

 

Sort Key 필드는 전표의 Assignment 필드값에 어떤 값이 들어올 것인지를 결정하는 설정 조건이다.

Assignment 필드는 Line Item 화면에서 제일 좌측에 보여져 전표의 라인항목 순서를 결정하므로 sort key라는 명칭으로 설정되었다.

 

Company Code data - Create/bacnk/interest 탭

 

Field Status Group 필드는 계정코드로 전표를 입력할 나타나는 전표입력 필드의 화면을 설정 하는 필드다.

 

Post Automatically Only 필드 설정할 경우엔 자동 생성되는 전표의 계정으로만 사용할 있다.

 

Supplement Auto. Posting 필드는 자동으로 생성되는 전표라고 할지라도 체크하게 되면

수작업으로 전표를 입력할 있는 계정이 된다.

 

해당 글은 ' 알기쉽게 정리한 SAP FI' 책을 통해 스스로 공부하면서 정리한 내용이다.
반응형
반응형

Chart of Accounts 회사에서 사용할 G/L Account 모음으로 계정과목집 혹은 계정코드집이라 한다.

 

SAP시스템 내에서는 여러 개의 CoA 생성하여 사용할 있다.

 

Chart of Accounts 설정 경로

 

Chart of Account 위에 위치에서 정의 있다.

 

Chart of Account 설정 화면

CoA 4자리 이내 영문자 숫자로 코드값 정의 가능하다.

 

General specifications

사용언어 설정 계정코드(G/L Account) 자릴수를 10자리 이내에서 설정 가능하다.

해당 항목은 6자리이내로 설정이 되어있다.

 

이렇게 10자리보다 작은 코드값을 사용할 경우 앞이나 뒷부분에 빈칸이 생기게 되는데,

시스템에서 G/L Account 문자/숫자 유형에 따라 자동으로 0으로 채워준다.

 

숫자로만 이루어지면 0 앞으로 채워진다. (ex. 0000123456 )

문자가 하나라도 있으면 0 뒤로 채워진다. (ex. 12345A0000 )

 

 

Consolidation

Group Chart of Account 설정 있으며

서로 다른 CoA 사용하는 회사를 하나의 계정코드로 묶어서 있게 해주는 기능이다.

 

Status

Blocked 필드를 이용하여 CoA 사용중지 상태로 만들 있다.

 

하나의 Company Code 반드시 하나의 CoA 사용해야만 한다.

 

하지만, 여러 개의 Company Code 하나의 동일한 CoA 사용할 있다.

 

이유는 동일회사 또는 동일 그룹인 경우 하나의 CoA 사용해야만 회사 전체 재무제표 생성이 쉽기때문이다.

 

Company Code - CoA Assign 경로

위에 설정에서 CoA Company Code Assign 있다.

 

 

Group Chart of Account

 

Group Chart of Account 서로 다른 CoA 사용하는 회사에 대하여 동일한 Group Account 연결하여

그룹공통의 재무제표를 생성할 있도록 해주는 그룹 계정과목집이다.

 

주로 대외적인 목적보다는 내부관리 목적으로 사용된다.

 

Group CoA 활성화가 되면 Group Account Number 필수필드가 되어

G/L Account 생성 반드시 Group Account Number 입력 받아야 한다.

 

Group CoA 사용하지 않는다고 세팅하면

G/L Account 생성 Group Account Number 필드가 화면에 보이지 않게 된다.

 

전표 작성 Group Account Number BSEG테이블의 ALTKT 필드로 들어간다.

 

BSEG Table의 ALTKT 필드

 

Country Chart of Account

 

Country Chart of Account Country-specific CoA 혹은 Alternative CoA라고 불린다.

 

Country CoA 국가별 특별한 규제 목적의 재무제표나 세무 레포트 작성을 위해 고유의 계정코드를 사용할 필요가 있다.

 

Group CoA 내부적인 목적으로 사용이라면 Country CoA 특정 국가별 요구되는 법적인 요건을 위한 외부적인 목적이다.

 

 

Alt. CoA 설정되면 전표 생성 BSEG 테이블의 LOKKT 필드에 Country CoA 정보가 저장된다.

BSEG Table의 LOKKT 필드

 

일반적인 Operation CoA 필수로 입력되어야 하며,

Group CoA Alternative CoA 선택적으로 사용하거나 하지 않을 있다.

 

G/L Account 생성 설정해두면 자동으로 생성되기에 최근에 사용하는 기업들이 늘고 있는 추세다.

 

해당 글은 ' 알기쉽게 정리한 SAP FI' 책을 통해 스스로 공부하면서 정리한 내용이다.
반응형
반응형

먼저 ABAP Table을 만들기 위해서는 

 

T-Code : SE11로 들어간다.

 

SE11 에서 Table 만드는 방법

 

Database table에 Table이름을 입력하고 Create 버튼을 누르면 Table 생성 화면으로 넘어간다.

 

먼저 Delivery Class를 설정해야 하는데, 

Delivery Class란 테이블 데이터의 전송 제어를 위한 세팅 이다.

Delivery Class 종류

 

들어갈 수 있는 값으로는 A,C,L,G,E,S,W 이렇게 7가지가 있는데, 

설명 읽어봐도 알 수 있듯이 일반 사용자가 사용할 수 있는 케이스는 A와 C입니다.

 

A : 각 시스템에서 데이터를 직접 제어하는 경우로 일반적으로 사용되는 Customer Table.

C : 데이터를 CTS가능하게 하여 개발, QA, 운영 등 동일한 데이터를 가져야 할 때 사용하는 Customer Table.

 

일반적으로 A를 선택하고 넘어가시면 됩니다.

 

Data Browser / Table view Editing

 

테이블의 데이터를 유지보수 툴 이용 접근 허용 여부를 선택해주는 것이다.

 

Display/Maintenance Allowed with Restrictions : 제한적으로 Display와 Maintenance 를 허용하는 것

                                                                                   허용되는 T-code는 SE16과 SE54 이며 / 데이터 수정 및 SM30은 불가

 

Dsiplay/Maintenance Allowed :  모든 기능을 허용한다. 이 설정이 되어있으면 SE16N에서 데이터 수정이 가능하다.

 

Display/Maintenance Not Allowed : 모든 기능을 허용 하지 않는다.

 

Only display allowed : Display 접근만 가능.

 

보통 개발중엔 Allowed로 하고 나중에 Restiction으로 바꿔서 허용하는 경우가 많다.

 

Fileds 탭

 

Fields Tab에서는 테이블에 들어갈 필드와 타입을 설정해주는 곳이다.

이미 정의되어있는 Data element를 넣어주고 엔터를 눌러주면 데이터 타입이 들어간다.

 

또한, 키를 설정하고 싶으면 key부분에 체크박스를 하여 선택해주면 테이블의 키값이 된다.

Remark 같은 data타입 없이 직접 타입을 주고싶으면 Built-In Type 버튼을 눌르면 입력이 가능하다.

Built-In Type 버튼 눌렀을 때

 

Built-In Type 버튼을 누르면 Data Element로 설정된 부분은 수정불가로 변하고

Data Type을 입력할 수 있는 필드들은 수정이 가능하도록 바뀐 것을 볼 수 있다.

 

또한, 해당 필드에 Search Help를 연동 시키고 싶으면 아래와 같이 필드를 선택하고

Search Help 버튼을 눌러서 Search Help 이름을 반영해 주면 된다.

Search Help 버튼 클릭

 

그다음 만들 때마다 세팅을 어떻게 줘야 할지 모르는 기술적 세팅(Technical Settings) 을 해야한다.

Technical Settings 버튼

Technical Setting이란 테이블의 범주, Size 세팅,

버퍼사용여부, DB Log를 쌓을지 여부 세팅하는 곳이다.

 

Data Class는 필수 선택이다.

 

먼저 필수 항목인 Data Class를 알아보자.

Data Class 에 들어갈 수 있는 값

 

Data Class : 데이터의 건수가 변경이 얼마나 자주 일어나는지에 따라 물리적 영역 정의다.

-. APPL0 (Master Data) : 거의 변경이 되지 않는 데이터 (ex 주소 )

-. APPL1 (Transaction Data) : 변경이 자주 되는 데이터 (ex 거래 )

-. APPL2 (Organization data) : 변경이 없는 데이터        (ex 국가 )

 

해당 테이블의 성격에 따라 위 3가지 중 하나를 선택하면 된다. 

보통 개발 할때 APPL0과 APPL1을 많이 사용하게 된다.

 

다음은 Data Class 아래있는 항목인 Size Category는 말 그대로 저장가능한 데이터 건수를

지정하여 공간을 얼마나 가져갈지 계산한다.

넉넉하게 설정하되 너무 크게 잡아 데이터베이스 공간 낭비가 너무 되지 않도록 사이즈를 정한다.

 

Table 의 Data Size 설정

 

다음은 Buffering 설정을 해야한다.

다음은 Buffering 설정을 해야한다.

Buffering 선택 리스트

 

Buffering Not Allowed : 버퍼를 비활성화. ( 트랜젝션이 많이 안일어나는 테이블 일경우 선택 )

Buffering allowed but switched off : 트랜젝션 상황에 따라 버퍼를 활성화/비활성화 한다. 

Buffering Activated : 버퍼 활성화 ( 데이터에 접근이 많은 경우 선택 ) 

 

주로 CBO테이블일 경우 데이터 접근이 많지 않기에 메모리 영역을 확보하여

Performance를 고려하는 방법으로 버퍼를 허용안하고 만드는 경우가 많습니다.

 

Buffering Type 설정은 버퍼를 사용할 경우 선택하는 케이스로

Not Allowed 선택 했을 시 체크할 필요 없습니다.

 

Buffering Type 설정

 

Single records buffered 는 말그대로 1개 를 버퍼에 저장한다는 것입니다.

예를들어 select single * from ytest_t001 where belnr = '450000001' 이런 식으로 했을 때 1개의 데이터를 버퍼에 저장.

 

Generic Area Buffered는 Key값 기준 일치하는 데이터 모두 버퍼링.

Fully Buffered는 모든 레코드를 버퍼링 한다는 의미입니다.

 

DB Log 설정

 

Log data Changed 는 Delete Update의 DB Log를 쌓을지의 여부 세팅 값입니다.

 

이렇게 테이블 생성 하는 법을 알아봤는데,

개발 할 때 기술적 세팅은 Delivery Class와 Size 세팅만하고

나머지 세팅은 건드는 일이 없을 확률이 큽니다.

 

Table 세팅하는 방법에 대해서 알아봤습니다.

반응형
반응형

 

1. Company

 

Company Company Code 다른 조직구조이다.

 

Company 연결회계(consolidation) 목적으로 사용되며,

사용하려면 회사코드 생성하기 전에 먼저 생성하여야 한다.

 

오로지 Consolidation 담당자가 사용하는 조직구조로 일반 SAP사용자는 몰라도 되는 정보이다.

 

Company IMG 세팅 경로

 

Define Company 에서 Company 생성할 있으며

Company 생성 화면

 

위에 보이는 화면과 같이 회사의 주소정도 , 나라, 언어 그리고 통화 정보를 입력하여 관리한다.

 

이렇게 설정된 Company 정보는 Company Code Assign 있다.

Company code와 Company Assing 하는 IMG 경로

 

하나의 Company 여러 개의 회사코드와 연결될 있지만,

 

연결결산의 용도로 사용하기 위한 값이기에 상위조직은 아니다.

Company Code와 Company 가 Assign안된 경욷 존재

 

이렇게 미리 정의된 Company값을 가지고 계정코드 생성화면에서 각각의 계정코드 별로

Trading Partner 값을 등록하거나, 연결결산 혹은 Cross-Company code Transaction 처리시에 사용할 있다.

 

2. Profit Center

Profit Center : 손익부서코드로 매출을 취합하여 이를 원가에 반영하는 목적 (FI)

 

Cost Center : 비용을 취합하여 이를 원가에 투입하고자 하는 목적 (CO)

 

Profit Center 내부관리 목적으로 B/S(대차대조표) P/L (손익계산서) 산출목적

CO모듈 구성요소로 시작하였으나,

New G/L 사용하면서 BA기능을 대신할 있는 FI조직코드로 통합되어 사용하고 있다.

Profit Center 설정하는 IMG 경로 (FI영역에 구성되어있다.)

 

Profit Center Business Area보다 유연하게 사용이 가능하다.

 

입력하지 않더라도 전표생성 저장이 가능하고

조직구조 변경이나 Hierarchy 구성이 가능한 조직코드다

 

Profit Center Basic Data 화면
Profit Center 의 indicators 화면

 

Profit Center 생성시에 설정하는 항목들이다.

 

Profit Center Group, Segment정보 , Profit Center값이 없을 자동으로 입력하게 하는

Dummy Profit Center인지 여부, Lock, 그리고 Company Code 등의 정보를 가지고 있다.

 

SAP사용 가능한 대부분의 Object에서 Profit Center 연결하여 사용이 가능하므로

아주 강력한 조직구조의 하나이다.

 

General Account 그룹에 대하여 Profit center 설정 경로

 

들어가보면 아래 그림처럼 General Account(계정코드) 그룹에 대하여 기본 Profit Center값을 설정해 놓을 있다.

설정된 계정코드로 발생한 전표라인에 대해서 Default Profit Center 설정된 값을 자동으로 할당된다.

 

필요하면, 사용자가 직접 수정할 있다.

 

3. Segment

Segment Business Area Profit Center보다 자유로운 레포팅을 위하여 신규로 추가된 조직구주다.

전표 입력 시의 Segment 필드

 

위의 그림처럼 직접 Segment 입력할 있으며,

아래와 같이 Profit Center 정의에서 생성시 연계된 segment 값을 미리 입력하여 저장 있다.

 

Profit Center IMG 경로
Segment 연동 할 수 있다.

 

이렇게 Profit Center Segment 설정해주면 다양한 Object에서 Profit Center 값이 정해질

Segment 자동으로 반영된다.

MM/PP/SD/CO/PS 다른 모듈에서 재무전표가 발생하면 입력된 Profit Center 값이 들어올 자동으로 Segment 가져오는 구조이다.

 

Segment New G/L Document Splitting 시에 사용하여 효율적인 재무제표를 생성할 있다.

Segment 설정 하는 IMG 경로

 

Segment 위에 그림에서 설정이 가능하다.

 

 

해당 글은 ' 알기쉽게 정리한 SAP FI' 책을 통해 스스로 공부하면서 정리한 내용이다.

반응형
반응형

 

1. Client

Client 직접적인 FI 조직구조가 아니다. 하지만 SAP에서 모든 모듈의 최상위의 조직레벨로 있다.

SAP Gui 로그인 화면

 

SAP GUI 로그인 Client 지정하도록 되어있다.

, 우리가 일반적으로 SAP 로그인하여 사용할 반드시 하나의 Client 업무 처리

 

Client 내에서 독립적인 사용자관리, IMG설정, Company Code 등의 조직단위 설정

트랜젝션처리 작업 수행한다.

 

일부 IMG설정에서 전체 Client 공용되는 설정도 있을 있다.

 

 

 

2. Company Code

Company Code(회사코드) SAP 모든 조직구조 중에서 가장 기본이다.

 

Client와 CoA 그리고 Company code 구조

 

Company Code = SAP FI에서 법적인 조직구조 (Legal entity)

 

회사코드 단위로 독립적인 B/L Sheet (대차대조표) P/L Account(손인계산서) 생성 가능.

또한,  재무결산 감가상각 등의 작업을 수행 있다.

 

회사코드는 국가별로 법인 또는 지점을 가지고 있을 경우

 

사용언어 통화상의 문제로 국가별로 Company Code 구성하여 사용하기도 한다.

 

 

3. Business Area

Business Area(BA) 회사 내부적인 레포팅을 작성하기 위한 조직구조로 많이 사용된다.

 

회사코드의 종속적인 조직구조가 아니다.

 

하나의 BA 여러 개의 회사코드에 연결하여 사용할 있으나,

일반적으로 하나의 회사코드에만 연결하여 사용하는 케이스가 많다.

 

BA 단위로 B/L Sheet P/L analysis 작성할 있으나,

은행정보나 세금 정보가 직접적으로 연결이 안되어 외부보고차원의

재무제포나 레포트를 사용하기엔 어려움이 발생하고

결산 프로그램이나 감가상각작업 실행 없다.

 

그래서 최근에는 BA보다는 역할을 대신할 있는 Profit Center 사용하는 경우가 많다.

 

실제로, SAP에서 BA기능보안은 중지하고, Profit Center 많이 사용하도록 권장한다.

T-code : SPRO 에서 Business Area 설정 하는 경로

 

Define Business Area

 

하나의 BA 여러 개의 회사코드와 연결 있기에

회사코드와 별도로 연결(Assign) 설정을 하지 않는다.

 

Business Area 사용할 것인지 아닌지는 Company Code 설정화면에서 세팅한다.

 

Global Parameters 설정하는 경로

 

Enter Global Parameters 들어가면 다음과 화면이 나온다.

Business Area Fin. Statements 필드에 체크를 경우 Business Area 필수 필드로 설정된다는 것이다.

 

BA 필수 필드가 되면 CO,MM,SD 다른 모듈에서도 동일하게 필수값으로 입력 받아야 한다.

 

조직구조에서 Client와 Company Code 그리고 Business Area에 대해서 알아보았다.

 

 

해당 글은 ' 알기쉽게 정리한 SAP FI' 책을 통해 스스로 공부하면서 정리한 내용이다.

반응형
반응형

 

Class 내부에 Method를 만들어보고 Attribute와 Method의 Parameter가 어떠한 차이가 있는지 확인.

 

클래스 생성 화면

 

 클래스 생성에서 Attribute에 Method Variable인 MV_NUM를 Static Attribute / Public 을 설정해서 저장

 

Level 이란 클래스가 해당 요소를 사용하기 위한 주체가 될 수 있는지 결정

Level 설정 하는 화면

 

Level에는 Instance Atrribute와 Static Attribute그리고 Constant 값을 가질 수 있다.

 

1. Instace Atrribute : 클래스를 이용하여 인스턴스화한 객체마다 부여되는 속성으로 보면된다.

 

2. Static Attribute : 클래스 자체 속성으로 클래스를 이용하여 인스턴스화한 객체에 상속되는 속성.

                                 즉, 해당 클래스로 인스턴스화된 객체들은 Static 속성의 값이 같다.

 

3. Constant : 특정 변수를 고정시켜서 그 값을 사용할 수 있다. (Attribute 에만 존재하고 Method는 존재하지 않음)

 

Visibility 설정 하는 화면

 

Visibility는 보안 수위를 설정하는 기능으로 Public과 Protected 그리고 Private 값이 들어올 수 있다.

 

1. Public : 클래스 외부에서도 접근 가능으로 클래스를 호출해 사용하는 프로그램 등 에서 어디서든 접근 할 수 있고, 자식 클래스에 상속이 된다.

 

2. Protected : 클래스 내부에서만 접근 가능으로 클래스 관리 툴에서만 접근할 수 있고, 자식 클래스에 상속된다

 

3. Private : 클래스 내부에서만 접근 가능으로 클래스 관리 툴에서만 접근할 수 있고, 자식 클래스에 상속되지 않는다.

 

Method 입력 Tab

 

 Methods에 2개 Method를 작성합니다. 1개는 변수2개를 받아 서로 빼는 method고

다른 1개는 변수 1개를 받아 제곱하는 method를 만들어 보자.

 

위에 그림에서 method를 마우스로 클릭하고 Parameters 버튼을 클릭하면 다음과 같이 변수 입력하는 창이 나옵니다.

 

Method에 Import, Export 파라미터 설정 화면

 

 Method 2개에 importing 변수와 exporting 변수를 입력해주고  Sourcecode 버튼을 눌러 코드를 작성하면 된다.

 

GET_MINUS / GET_SQUARE Method 코드

 

 

Sourcecode를 다음과 같이 작성하고 프로그램에서 Method를 어떻게 호출하여 사용하는지와

Class의 Attribute에 작성된 MV_NUM의 값이 어떻게 되는지 추적 해본다.

 

 

같은 프로그램내에서 방금만든 클래스의 Method를 호출

디버깅 화면

 

기본적으로 Method를 호출하는 방법은

CALL METHOD class=>method명 으로 사용하면 된다.

 

 동적으로 Method를 호출하여 사용가능하며 동적 호출은

class=>method명( f ) 로 사용하면 되고 dynamic 기호인 ( )를 꼭 사용해야 된다.

 

지금 만든 GET_MINUS 나 GET_SQUARE는 Static method이기 때문에 => 이 기호를 사용하지만

Instance method는 클래스를 인스턴스화하여 사용하기 때문에 -> 이 기호를 사용해야 한다.

 

 

그러면 위에 작성한 코드에서 Method변수와 Attribute (MV_NUM)이 어떻게 되는지 디버깅타면서 알아보자.

 

GET_MINUS Method 내부

 

GET_MINUS method를 타고 Importing 값과 Exporting값이 적용되었고 MV_NUM은 91로 저장되었다.

 

GET_MINUS Method 나온 후

 

GET_SQUARE method로 들어가기 전에 exporting 값이 lv_result에 할당이 되었고,

이제 get_square method에 들어갔을 때 MV_NUM은 어떤지 보자.

 

GET_SQUARE Method 내부

 

ET_SQUARE Method에 들어갔을 때 lv_num1,lv_num2,ev_result 값은 리셋으로 시작되지만

Class Attribute의 값(MV_NUM)은 GET_MINUS에서 얻은 값인 91로 그대로 유지되고 있다.

 

다음 단계로 넘어가면 LV_NUM2 = 91 - 25 = 66으로 적용되고

그 후 다시 MV_NUM의 값을 LV_NUM2로 바꾸면 MV_NUM의 값은 66으로 고정된다.

 

 

Method의 변수로 등록하는 것은 Method가 실행될때마다 리셋되지만,

 

Class Attribute에 넣어준 속성 값들은 프로그램내에서 계속 유지되어 있어 언제든지 Method를 통해 값을 가공하여 원하는 값을 얻을 수 있다.

 

Attribute에는 변수 뿐만 아니라 인터널 테이블 MT_XXX / 스트럭쳐 MS_XXX 식으로

 

Naming Rule에 어긋나지않게 작성 후 받아서 가공할 수 있다.

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Search Help Exit 함수 만들기 - 2편  (0) 2024.05.22
[ABAP] Search Help Exit 함수 만들기 - 1편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21
반응형

 

먼저, Search Help EXP 파라미터를 기준으로 RECORD TAB에 담겨줄 DATA를 선언한다.

 

그리고 IMP 파라미터 값을 가져오기 위해서는 RANGES 변수로 선언한다.

Data 타입 선언

 

Elementary Search Help를 만들기 때문에 다음과 같이

Step이 SELECT와 DISP가 아니면 EXIT. 처리를 하여 속도 향상하는 코드를 넣어줌.

단계 설정

 

EXIT인 순간 그 단계는 종료되고 다음 단계로 넘어간다.

즉, SELONE / PRESEL은 바로 Skip하고 바로 SELECT 나 DISP단계로 진행

 

 

SELECT단계에서는 먼저 IMP 파라미터 값을 RANGES변수에 넣어줍니다.

RANGES로 넣어주는 이유는 Search Help에서 Multi Select를 해서 검색할 때

SELECT문에서 IN을 이용해서 다중 검색을 하기 위해

 

import 파라미터 설정

 

shlp-selopt에 어떤값이 들어오는지 확인하기 위해 

 

KUNNR 필드에 'A30'을 넣고 Debugging을 태워보면 다음과 같은 결과를 얻을 수 있다.

 

Search Help의 이름과 입력한 Input 파라미터 필드이름 그리고 Ranges 변수로

Sign = I / Option = EQ / LOW(값) = A30 이 들어온다.

여러개 선택해서 넣으면 SHLP-SELOPT의 Row가 넣은만큼 들어온다.

LOOP를 통하여 이 값을 선언한 RANGES변수에 넣어준다.

 

변수가 비어있으면 Error Message를 띄우려면 다음과 같이 하면 된다.

Error 처리 방법

 

빈값이면 검색안되는 Error Message를 만들었는데,

 

CALLCONTROL-STEP을 EXIT단계로 안바꿔 주고 EXIT.을 하면

 

현재 단계인 SELECT단계에서 다음단계인 DISP로 변경되면서 종료가 바로 되지 않는다.

 

EXIT단계로 강제 이동 후 EXIT을 해줘야 바로 Search Help가 종료된다.

 

IMP 파라미터를 가지고 SELECT문을 이제 사용자화 하는 코드를 작성해준다.

Search Help 띄워줄 Select 쿼리문

 

받은 파라미터들을 Where절에 IN으로 해주고 추가로 더 필요한 정보들은 Where절에 추가해서

Search Help에 띄워줄 데이터를 가공하면 된다.

 최대 999건 조회되도록 하기 위해 UP To 999 Rows. 구문을 사용했다.

 

SELECT가 완료되면 1편에서 설명했던 스탠다드 Function Module 'F4UT_RESULT_MAP'을

호출하여 source_tab에 히트 리스트에 출력하기 위해 만들었던 Internal Table을 할당한다.

F4UT_RESULTS_MAP 사용방법

 

할당 후 CALLCONTROL-STEP을 disp로 넘겨줘서 SELECT를 끝내고 DISP단계로 넘어가면서

Seacrh Help를 띄워주게 된다.

 

[ABAP] Search Help Exit 함수 만들기 - 1편 :: 학습 일지 (tistory.com)

 

CALLCONTROL-NO_MAXDISP의 기능은 INPUT AREA에 기본적으로 나오는

Maximum No. of Hits를 보여주냐 안보여주냐를 설정하는 기능이다.

Search Help input Area 화면

 

CALLCONTROL-NO_MAXDISP = abap_true. 로 설정해주면

위에 빨간 박스된 Maximum No. Of Hits 가 사라진다.

 

원하지 않으면 위에 코드처럼 abap_true설정하여 삭제 하면 된다.

 

Search Help Exit 만들기 완료!

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
[ABAP] Search Help Exit 함수 만들기 - 1편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21
반응형

 

Exit 함수를 이용하여 사용자가 생성한 데이터를 보여주는 Search Help를 만드는 방법

 

Naming룰은 기본적으로 Search Help 이름_Exit으로 작성 se80 or se37에서 Function Module 생성

Search Help Exit 함수 만드는 창

 

 Exit Function Module은 Chaning 파라미터 2개와 Table 파라미터 2개를 필수로 입력해야 한다.

Changing Parameter

 

SHLP_DESCR 은 Description of Search Help을 나타내는 Structure

 

DDSHF4CTRL은 Control Structure for F4 Process with Search Help Exit로 Search Help를 컨트롤하는 Structure

 

Tables Parameter

 

SHLP_DESCT라는 Table을 참조하는데 이 Table은 위에 Chainging의 SHLP_DESCR 스트럭쳐로 구성되어 있는 테이블

 

SEAHLPRES는 Search help result structure를 나타내는 하나의 테이블

 

4개 파라미터는 이름까지 스탠다드와 동일하게 설정을 해주어야 한다 다르면 Error 발생

 

Search Help가 작동하게 되면 위에 Chaning parameter에 넣어둔  시스템 스트럭처인

 

CALLCONTROL의 STEP(현재 단계)를 할당.

 

또한, 코드를 작성할때 CALLCONTROL-STEP에 원하는 단계를 할당하면 단계를 건너뛰고 해당단계로 넘어갈 수 있음.

 

CALLCONTROL-STEP 단계는 SELONE → PRESEL → SELECT → DISP → RETURN → EXIT 순서로 진행

 

1. SELONE

Collective Seacrh Help에서만 호출 됨.

Elementary Search Help에서도 호출은 돼어 CALLCONTROL-STEP에 담기지만

이 단계에서는 다른 단계로 건너뛰지 않는다면 바로 다음단계로 넘어가게 된다.

Elementary Search Help를 주로 만들고 다루기 때문에 잘 사용은 안함.

 

2. PRESEL

SELECT단계 바로 직전 단계로 Function Module을 이용하여 시스팀 Structure인

SHLP의 컴포넌트 SELOPT를 수정한다.

 

SHLP_DESCR의 SELOPT이 Table형태로 들어가 있다.

반응형

SELECT 단계에서 SHLP-INTDESCR 이용하여 Field text 명을 변경할 있다.

SELECT 단계에서 필드값 설정

 

SHLP-INTDESCR-TITLE 상단에서 변경해주면 Search Help Title 설정이 가능하다.

Search Help의 Title 설정방법

 

3. SELECT

Hit List를 구성할 데이터를 Select하는 단계로function module 'F4UT_RESULTS_MAP' 을 이용하여

RECORD_TAP에 데이터를 받습니다.

 

F4UT_RESULTS_MAP Function

 

4. DISP

Disp는 말그대로 Search Help에 Hit List가 표시되는 단계입니다.

 

 

5. RETURN

Return단계는 Hit List의 값을 스크린으로 전달합니다.

 

 

6. EXIT

EXIT단계는 Search Help를 닫는 단계입니다.

 

 

다음편엔 Search Help 페이지에서 만든 Input Area를 받아와서 SELECT를 수정하여 Search Help Exit 코드를 작성해보자.

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
[ABAP] Search Help Exit 함수 만들기 - 2편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21

+ Recent posts