반응형

ALV에서 로직을 이용하여 Subtotal 초기 세팅하는 법에 대해서 알아보자.

 

다음과 같은 List가 있다.

해당 List를 보면 Company Code, Status, Posting Date, Document Date, Document Number는 동일하고

 

전표안에 있는 Line Item들의 고객마다 처리할 금액이 여러 건 있는 케이스다.

 

이럴 경우 전표번호에 따른 금액을 Subtotal(소계) 하여 보여주고 싶을 경우가 생길 것이다.

 

이럴 때 사용하는 Subtotal 에 대해서 알아보겠습니다.

 

먼저 Fieldcatalog 세팅에서 소계를 해줄 필드에대해서 세팅을 해준다.

Fieldcatalog에서 do_sum 세팅

 

해당필드에 do_sum = 'X' (abap_true)로 세팅을 해주면 

do_sum 결과 ALV화면

 

해당 필드에 값들이 모두 더해진 라인이 맨 아래 생긴다.

 

 전표번호를 기준으로 Subtotal이 필요하기에 이 세팅을 해줘야 하는데

 

Sort 세팅에서 넣어줘야한다.

 

Sort 세팅.

 

spos : 정렬 순서를 의미

fieldname : 어떤 필드로 정렬할지

up : 오름차순으로 정렬 (내림차순으로 하고싶은면 down 이다. )

subtot : 해당 필드로 소계를 적용하겠다.

반응형

이렇게 설정을 하고 실행을 해보면

해당 전표 별로 소계가 되어 나오는 걸 알 수 있다.

 

하지만, ALV화면 맨아래 총 합은 모든 전표에 대한 합계이기 때문에 필요없을 수 있다.

 

이럴 경우에는 Layout 설정에 가서 설정해주면 된다.

no_totline = 'X' (abap_true) 로 설정하고 실행하면

no_totline 설정 후 ALV 화면

 

노란색으로 되어있던 전체 합계 라인이 사라진 것을 확인 할 수 있다.

 

그러면 동일 한 필드에 대해서는 전표번호 처럼 합쳐서 나오게 하려면 

 

Sort 세팅에서 묶어주면 해결된다.

Sort 세팅

이렇게 원하는 필드에 대해서 Sort table에 넣어주면 된다.

 

 

이러면 테이블이 보는게 훨씬 깔끔해야지고 가독성이 올라간다.

 

지금까지 세팅한 Sort, layout, fieldcat 은 alv를 불러올 때

 

입력해주는 값 들에 세팅을 해줘야 하며,

 

set_table_for_first_display 가 실행되기 전에 세팅을 해야한다.

 

또한, set_ready_for_input( i_ready_for_input = 0 )

 

필수로 설정해줘야 동일 필드가 합쳐져서 1개로 보인다.

반응형

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

[ABAP] BDC를 활용한 CALL TRANSACTION  (0) 2024.09.10
[ABAP] SMW0를 이용한 Excel 다운로드  (1) 2024.09.09
[ABAP] SELECT WITH 구문  (0) 2024.06.24
[ABAP] Pass by Value vs Pass by Reference  (1) 2024.06.16
[ABAP] ALV Grid Event Handler - 2편  (0) 2024.06.11
반응형

SAP에서 프로그램을 개발할 때 가장 많이 쓰는 ALV Class 에대해서 알아보자.

 

SAP에서 제공하는 ALV Class는 바로 CL_GUI_ALV_GRID .

 

ALV란 Report 프로그램에서 데이터를 조회하거나 조회된 데이터를 가공하는데 사용되는 

ABAP List Viewer.

 

아래 그림과 같이 하나의 테이블로 구성되어 화면에 나타나는 것을 ALV라고 한다.

ALV 화면

 

기본적으로 ALV Class인 CL_GUI_ALV_GRID 클래스를 사용하기 위해서는 

 

하기와 같이 DATA 타입을 선언이 필요하다. 

 

Data 타입 선언 후 생성

 

인라인 방법으로는 다음과 같다.

Inline 선언 (New Syntax)

 

container_name에는 스크린의 Custom Control Name에 넣어준 이름을 넣어주시면 됩니다.

 

그러면 CL_GUI_ALV_GIRD에서 자주 사용하는 메서드를 알아보자.

 

1. GET_SELECTED_ROWS

 

ALV에 선택된 행에 대한 정보를 받아오는 Method다.

.

 

해당 Method는 CL_GUI_ALV_GRID 를 참조하는 객체를 생성한 go_alv를 이용하여 호출.

 

'BACK' (뒤로가기) 버튼을 눌렀을 때 선택된 라인에 대한 정보를 얻기위해 아래와 같이 코드를 작성 후

 

디버깅을 위한 User command에 코드 작성

 

디버깅을 걸고 2개 선택을 한 후 lt_rows에 어떤 정보가 오는지 확인해보겠습니다.

2라인 선택 후 'BACK' 버튼 실행

 

하기와 같이 2번째와 4번째 선택된 행의 Index 정보를 얻을 수 있습니다.

해당 기능을 통해 Add버튼 혹은 Del 버튼 등 로직을 작성하는데 사용할 수 있습니다.

 

2. GET_CURRENT_CELL.

 

AVL에서 커서가 놓은 위치의 값과 속성들을 반환하는 메소드입니다.

 

호출 방법은 동일

 

해당 메소드는 2개의 라인과 컬럼의 인덱스 번호를 반환한다.

 

하나는 현재 선택된 셀의 라인과 컬럼을 반환하고 

 

다른 하나는 필터링을 통해 설정하거나 숨기기 했을 때 실제로 보이는 값과

 

인터널 데이블의 순서가 다르기 때문에 인터널 테이블의 라인과 칼럼을 반환한다.

 

 

다음과 같이 ALV에서 Over Days 컬럽에 5번째 라인 30을 선택하고 디버깅을 진행해보면

특정 셀 선택 후 실행

 

해당 셀에 몇번째 컬럼인지 , 라인의 인덱스 정보, 값 등 선택된 행에 대한 정보를 얻을 수 있다. 

해당 셀에 대한 세부 정보

 

3. CHECK_CHANGED_DATA.

 

ALV 내에서 변경된 데이터를 확인하는 Method입니다.

동일 방법으로 'BACK'시 디버깅을 위해 해당 위치에 코드 작성

 

위에서 확인했던 Over Days 30의 값을 40으로 변경해서 디버깅 진행해보겠습니다.

 

그러면 lv_valid 값이 변경되어서 'X'를 받아옵니다.

 

만약 alv에 아무것도 변경하지 않았다면 lv_valid 값은 빈값으로 반환 .

 

해당 기능을 이용하여 alv에 변경사항이 있을 시 언급해주는 로직을 작성 가능.

 

4. REFRESH_TABLE_DISPLAY

 

조회된 화면에 ALV 인터널 테이블을 다시 조회할 때 사용하는 메소드로,

 

데이터가 변경되거나 SELECT문을 다시 수행할 때 새로고침 해주는 메소드

 

해당 메소드는 아래와 같은 방법으로 호출 할 수 있다.

 

is_stable : 라인의 컬럼 위치를 기억하여 재조회 하고 이전의 위치에 화면을 보이게 하는 역할.

 

i_soft_refresh : 'X'를 주었을 때 sort, filter, sum 등 현재 alv의 layout 세팅을 그대로 유지한 상태로 refresh 진행.

 

i_soft_refresh에 빈값을 넣으면 alv sort등이 유지가 안되어 원하는 위치에 라인을 추가할 경우 

 

원하는 위치에 반영이 되지않을 수 있으니 참고하세요.

반응형

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

[ABAP] ALV Grid Event Handler - 2편  (0) 2024.06.11
[ABAP] ALV Grid Event Handler - 1편  (0) 2024.06.10
[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
반응형

ABAP 개발을 하다보면 Search help 기능을 많이 만들게 된다.

 

그때마다 자주 사용하는 CALL FUNCTION인 

 

'F4IF_FIELD_VALUE_REQUEST'

 

'F4IF_INT_TABLE_VALUE_REQUEST'

FUNCTION에 대해서 알아보고, 초기 필드값을 넘겨줘서 제한된 값을 얻는 방법에 대해서 알아보자.

 

'F4IF_FIELD_VALUE_REQUEST' 는 기본적으로 이렇게 구성된다.

 

tabname 테이블 또는 스트럭쳐 Name일 말한다. 

 

fieldname 해당 tabname에 필드 네임을 넣어준다.

 

위에 코드로 예시를 들면 T001이라는 테이블에 BUKRS(company code) 필드를 말한다.

 

searchhelp는 해당 search help 이름을 말한다.

 

 

 

SE11에서 Tabname 'T001'을 조회해보면 해당 테이블에 필드 BUKRS가 있고,

Input Help/Check tab에 Srch help에 C_T001이라는 Search Help가 연결된 것을 확인 할 수 있다.

 

이렇게 할당되어있는 경우에는 위에 Search Help값을 필드 BUKRS가 Search Help C_T001이 연결되어있기에 문제없이 호출이 된다.

 

Search help값을 주석하고 돌려도 이렇게 잘 되는 것을 알 수 있다.

 

searchhelp 값 주석 처리

 

Search Help 실행

 

하지만 Tabname에 특정 필드에 연결된 search help가 없을 경우엔 Search help를 넣어줌으로써 해당search help를 불러온다.

 

Search help를 직접 할당한 경우엔 fieldname, tabname 아무 값이나 넣고 돌려도 C_T001이 열린다.

 

대신 tabname과 fieldname은 필수로 exporting해줘야 하는 값이기에 삭제하면 Dump에러가 발생한다.

 

tabname / fieldname 아무렇게나 설정

 

Search Help 실행

 

shlpparam은 Search Help에서 값을 가져올 Field 이름이다.

위에서는 BUKRS를 넣어줬으니 Bukrs값을 가져온다는 의미이다.

해당 C_T00l1은 BUKRS만 구성되어있지만,

 

아래 서치헬프 H_T002은 SPRAS, SPTXT값을 가져올 수 있다.

Search Help 'H_T002' 정보

 

 

dynprog Exporting 파라미터를 보낼 프로그램

 

dynnpr exporting 파라미터를 보낼 프로그램의 Screen 번호

 

dynprofiled exporting 파라미터를 내보낼 필드로 보시면 된다.

 

말그대로 dynamic하게 반영해주기 때문에 아주 편하고 유용하게 사용된다.

 

자 그럼 초기 필드값의 세팅하는 방법에 대해서 알아보자.

 

Exporting 에 callback_program과 callback_form을 넣어주면 됩니다.

 

callback_program 은 Search Help 실행 전 Perform문을 부를 프로그램 정보

 

callback_form은 callback_program에 있는 Perform문의 이름을 가리킨다.

 

 

그러면 sy-repid(현재 프로그램)에 CALL_BACK_BUKRS 퍼폼문을 부른다는 의미이기에 다음과 같이 해당 프로그램에 Perform문을 작성해준다.

 

이부분은 Exit을 이용한 Search Help를 만들때와 같은 방법으로 selopt을 설정하여 파라미터를 넘겨주는 것과 같다.

 

BUKRS필드에 '맛있닭'이라는 초기값을 세팅해서 F4(search help)를 사용해보면 다음과 같은 결과가나온다.

 

자 그러면 2번째로 많이 쓰이는 FUNCTION인 'F4IF_INT_TABLE_VALUE_REQUEST'와 비교해보자.

 

Function 이름에서 부터 Internal table을 가지고 search help할 것이라는 느낌을 받을 수 있듯이

위와 같이 search help할 테이블을 인터널 테이블로 구성하고 TABLES에 해당 인터널테이블을 보내

Search Help를 만들어 주는것으로 보면 된다.

 

특정 테이블의 필드와 매칭된 search help 나 혹은 만들어진 search help가 아니라 커스텀한 테이블을 가지고 search help를 구성할 때 사용한다고 생각하면 될 것 같다.

 

retfield는 internal table에서 구성된 어떤 필드를 exporting 할 파라미터인지를 정해주는 것으로 보면 된다.

 

초기 필드값 세팅하는 방법은 위의 방법과 같이 callback_program 과 callback_form을 지정해주고

Perform문을 만들어 주기만 하면 끝.

 

하지만 위에 설명한 CALL BACK FORM에서 다른점은 다음과 같다.

 

해당 펑션은 internal table로 받아오기 때문에, F4 실행전 수행하는 Form문에서는 

어떤 필드에 초기값을 넣어줘야할지 인식을 못한다.

 

첫번째 값이면 'F0001' 두번째면 'F0002' ~ 이런식으로 넣어주면 된다.

 

위의 코드를 보면 3번째 필드에 초기값을 세팅하는 것이라고 보면 된다.

 

 

User 필드에 세팅하고 싶다면 

ls_selopt-shlpfield = 'F0001'로 설정하면 User필드에 값이 들어 간다.

 

기존의 Search Help가 대량의 데이터거나 internal table이 대령 데이터일 경우

 

초기값을 세팅하여 초기값으로 제한된 Hit List를 띄어 선택할 수 있게 할 수 있어서

 

F4를 눌렀을 떄 시간을 단축시킬 수 있어 프로그램이 훨씬 깔끔해지는 장점이 생긴다.

 

반응형

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

[ABAP] ALV Grid Event Handler - 1편  (0) 2024.06.10
[ABAP] ALV Class - Method 1편  (1) 2024.06.04
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Class Method 정리  (0) 2024.05.23
[ABAP] Search Help Exit 함수 만들기 - 2편  (0) 2024.05.22
반응형

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

+ Recent posts