SAP 는 기본적으로 조직구조, 기준정보, 거래정보가 엮여져서 정보를 집계하고 산출합니다.
이미 Standard 에서 기본적인 Data Structure 가 구성이 되어 있는 셈이죠.
하지만, 프로제트 상황에 따라 정해져 있는 Data Structure 이외에 추가적인 핵심정보를
반영해야 할 상황이 있습니다.
그런 경우에 Coding Block 에 필드를 추가하고, 해당 필드에 원하는 정보를 담을 수 있도록
구성할 수 있습니다.
S/4HANA 에서는 Coding Block 에 필드 추가하는 방법이 조금 까다로워졌습니다.
eclipse 를 설치하고, 그 안에서 추가적인 작업을 해야 완료가 됩니다.
예전에 프로젝트에서 실제로 경험했던 내용 (S/4HANA 1709)을 기반으로 정리했고,
최근 버전에서는 좀 더 편하게 바뀌었을 수도 있으니 참고하시기 바랍니다.
1. 요구사항
예금계정의 계정과목코드를 계좌번호별로 1대1로 관리하는 방식을 통합하기로 했습니다.
이에 계정과목코드와 House Bank 및 Account ID 를 조합해야 계좌번호를 인식할 수 있게 되었죠.
계좌번호를 회계전표상에서 바로 인식할 수 있도록 Coding Block 에 필드를 추가하기로 했습니다.
필드를 추가하고, 이후에 User-Exit 을 통해 전표 생성 시점에 계좌번호를 추가된 필드에 대체하여
입력해주기로 구상한 것입니다.
2. 작업 절차 개요
하기와 같은 순서로 진행하고, HANA Studio 작업을 위해 eclipse 설치를 해야 합니다.
Seq
|
절차
|
위치
|
비고
|
1
|
Coding Block 필드 추가
|
IMG (OKX3)
|
Add Field
|
2
|
CDS View 수정 : COEP
|
HANA Studio
|
|
3
|
CDS View 수정 : MSEG Extend View 추가
|
HANA Studio
|
|
4
|
Coding Block Update
|
IMG (OKX3)
|
Add Field BI, Add Control Entries
|
5
|
결과 확인
|
|
연관 Table 확인
|
3. 세부 작업 절차
1) Coding Block 필드 추가
Configuration 의 Coding Block 추가 항목을 실행합니다.
T-code : OXK3 으로 갑니다.
Coding Block을 통해 필드를 추가하면 SAP의 수많은 Table에 영향을 미치기 때문에, 신중하게 결정해야 하고,
정해진 절차대로 진행해야 합니다.
Coding Block 추가의 "Expert Mode"를 선택합니다.
Light Mode 도 있지만, 세부적인 과정을 확인하기 위해서 "Expert Mode"로 진행합니다.
하기아 같이 Add Field 를 선택합니다.
전체적인 과정은 "Add Field" -> "Add Field BI" -> "Add Control Entries" 순서대로 진행합니다.
추가하기로 정의한 "ZZBANKACCNO" 필드에 대해서 Component, Component Type 을 입력하고, Activation 합니다.
시스템 전체 구조에 영향을 주는 작업이라 예상소요시간 20분 정도 소요됩니다.
Activation 하는 과정에서 Error Message 발생합니다.
SAP S/4HANA 에서는 Coding Block 추가 시에 반드시 하기와 같은 에러가 발생합니다.
물론, S/4HANA 버전에 따라 다를 수 있습니다.
이 에러를 CDS View 수정을 통해 조치를 취해 주어야 하며, 그래야 다음 단계를 진행할 수 있습니다.
첫번째 에러메시지는 COEP 테이블에 대한 Inconsistency 입니다.
두번째 에러메시지는 MSEG 테이블에 대한 Inconsistency 입니다.
이 2가지의 에러에 대한 조치가 완료되어야 이후 단계로 진행할 수 있습니다.
2 ) CDS View 수정 : COEP
eclipse 를 설치한 후 실행하여 하기와 같이 HANA Studio 화면으로 들어갑니다.
메뉴 상단의 Search 기능을 통해 V_COEP 검색합니다.
SAP COEP 테이블과 비교하여 Custom Field가 추가 되어야하는 위치에 Field 를 추가합니다.
ACDOCA가 아닌 다른 View로부터 셀렉트하는 부분에는 Customer Field를 아래와 같이 입력합니다.
이유는 "as ZZXXXX" 로 입력하지 않을 경우 연결된 VIEW 모두를 수정해야 하기 때문입니다.
V_COEP를 활성화 후 SAP에서 COEP 테이블을 조회해서 오류가 없는지 확인합니다.
3 ) CDS View 수정 : MSEG Extend View 추가
이 경우는 Coding Block Field는 Table의 끝에 붙는 것이 아니라 Table 중간에 붙기 때문에 CDS View와의 위치가 상이하여 칼럼이 불일치하는 에러가 발생하는 것입니다.
이에 따라 SCM은 Standard CDS View 직접 수정이 아닌 Extend View를 별도로 생성하여 대체하는 작업이 필요합니다. (참고 Note : 2242679)
MSEG Table에 연결된 CDS View는 MATDOC Table을 Search하는데 Coding Block의 위치가 상이해서 오류가 발생하니 Extend View를 만들어 오류를 조치합니다.
개발패키지 내에 Core Data Service 정의하기를 선택합니다.
하기와 같이 MSEG의 Standard CDS View를 참조하는 Extend View를 선언하고 추가될 필드를 삽입하여 Activate 처리합니다.
생성된 Extend View가 정상적으로 Activate된 것인지 Preview를 통해 점검합니다.
CDS View 대체 프로그램 돌리기 이전에 MSEG Standard CDS View의 Coding Block 위치를 확인합니다.
CDS View 대체 프로그램 돌리기 이전에 MSEG에 연결할 Extend View의 Coding Block 위치를 확인합니다.
SE38 로 가서 Proxy 대체 프로그램을 실행합니다.
Program 은 "NSDM_PROXY_SUBSTITUTION" 입니다.
Table을 'MSEG'를 선택합니다.
Name에 Extend View Name을 입력하는데 '_DDL', '_E', '_V'는 자동으로 붙여주기 때문에 기입 불필요하며 Extend View 생성 시 사용한 Name에 추가로 Text를 입력하여 Name을 다르게 구분합니다.
Overwrite 체크 후 실행합니다.
실행 후 결과 화면으로 모두 녹색 신호등 표시 시 정상적으로 수행된 것입니다.
MSEG Table에 Proxy가 대체되었는지 확인합니다.
대체된 Extend View 내에 Coding Block 위치의 변경여부도 확인합니다.
4) Coding Block Update
이제 다시 T-code : OKX3 로 갑니다.
CDS View 수정 조치 후에 "Add Field BI" (Batch Input) 을 진행합니다.
1번 단계와 "ZZBANKACCNO" 필드를 추가하고, Activation 합니다.
이 때 예상시간은 약 3분 정도 소요됩니다.
Activation 후에 Warning Message 가 나오지만, Critical 한 문제가 아니기 때문에 그대로 넘어갑니다.
"Add Control Entries"를 통해 필드 추가된 내역을 내부 프로그램을 통해 전체적으로 확장 적용합니다.
먼저 Test Run 으로 수행합니다.
Test Run 일 때의 결과를 확인해 봅니다.
"Add Control Entries"를 Updated Run 으로 수행합니다.
이 과정을 끝으로 Coding Block 필드 추가가 종료됩니다.
S/4HANA 에서 Coding Block 추가하는 작업이 많이 번거로워졌네요.
좀 더 개선이 되어서 예전처럼 간단하게 갔으면 좋겠습니다.
5) 결과 확인
Update 이후 COVP 테이블에서 더이상 에러가 나지 않게 됩니다.
연관 테이블에 "ZZBANKACCNO" 필드가 추가되었음을 체크합니다.
BSEG 테이블에서 확인합니다.
ACDOCA 테이블에서 확인합니다.
MSEG 테이블에서 확인합니다.
MATDOC 테이블에서 확인합니다.
COEP 테이블에서 확인합니다.
끝.
'프로젝트' 카테고리의 다른 글
Drill-down Report 에 Characteristic 추가 (0) | 2023.08.23 |
---|---|
전표 요약 (Document Summarization) 적용 방법 (0) | 2023.08.23 |
전표 가져오는 Standard Function (0) | 2023.08.03 |
심폐소생술 (0) | 2023.02.26 |
테이블 데이타 수정하는 새로운 방법 (S/4HANA) (0) | 2023.01.21 |