오랫만에 글을 쓴다...
바빠서 그렇다.. 미안합니다...
(반말은 조교 컨셉이므로 우리 기분상하지 말기...ㅎ)
아무튼...
플젝을 하면 욕 한바가지 하고 싶지만
(아니 2025년인데 SI 이따위로?! ) 참고 인내하며
묵묵히 일 하면 돈을 받는 프리랜서니까 참고 일한다...
(가장은 그런 것)
이글을 읽는 미혼은... 아밥배워 언능 돈모아 파이어족을 꿈꾸자...이상한(?) 플젝은 때려치고 쉬다 들어갈 수 있도록....ㅎㅎㅎㅎ
잡설이 길었다.
자.... 오늘은 찐 레알 실전편의 첫번째 시간이다..
초보때는 이런게 궁금했다.
"도대체 실제 플젝가면 어떻게 뭘 짜는거야? 뭐가 뭔데? 누가 뭘하라 말해줘? 요건은 뭐야? "
........
흠....
개발자는 사실 컨(설턴트)의 "제대로 된" 설계서를 받고 일해야 한다.
업무를 하는 현업들 -Sap 모듈 컨설턴트
이 둘이 만나 업무를 듣고 기존 프로그램을 보고
개선점을 듣고 컨설턴트는 그에 맞게
기술 설계서를 작성해줘야 한다..
고로 설계자는 개발 기술적인것도 알아야 하고
db 릴레이션 + 프로세스 흐름도 잘 이해해야 한다.
(이걸 잘 모른다? 혹은 검색해서 알아낼 능력이 없다? 다른 누군가가 고생중이다...)
그럼 요건은 어찌 오나?
과거 실제로 받는 요건들은 이런식이다
"저희 펌뱅킹(은행 자동입출금) 에서 처리된 전표들에서 특정 거래처들에 입금된 정보를 보고 싶어요. 또한 지급 보류된 건들이 있으면 바로 이메일로 전송되었으면 좋겠어요. 만약 대금지급이 안되면 우리쪽에서 연체이자를 물어줘야 하거든요. "
이런 요건을 받았을 때...
SAP FI(회계) 쪽을 해본 사람이라면 대략적으로 설계가 그려진다.
(설계)
은행 펌뱅킹 관련 DB를 읽어야 겠네.(대부분 국내에서는 CBO로 개발되어있음)
펌뱅킹 지급나가는 전표 유형이 있나?
거래처를 입력할 수 있는 입력창이 필요하겠네
지급이 안되면 어디 오류 메세지가 남나?
T-CODE : F110에서 말아올렸다가 보류걸리면 스텐다드에 남아있을수 있겠네.
이메일 전송 펑션을 사용하거나 기존에 만든 부분이있다면 응용해야겠네.
이런식으로 설계가 딱딱 떠올라야 한다..
이걸 정리해서 펑셔널 스팩을 쓰면
개발자는 위 내용을 토대로
(위에 릴레이션 Db 와 입력창 , 입력창의 속성, 출력예시등이 스팩에 적혀있어야 한다. )
개발을 해야한다.
그럼 저건 SAP 스텐다드 내용들이고...
CBO(우리가 일반적으로 쌩짜 개발하는걸 CBO라 함)개발을 현업 요구사항처럼 주자면
(현업요건)
회사원들은 점심메뉴가 너무 고민되거든요?
그래서 점심메뉴 추천을 자동으로 해주면 좋겠어요.
이 회사 주변 식당을 저장해 두고 프로그램에서 조회해 보거나 랜덤 추천기능이 있으면 좋겠어요.
요건을 보면
1. 메뉴를 저장할 DB 하나이상 필요하다.
2. 조회기능 레포트 하나 짜야한다.
이 두개면 될 것같고
크게 기술적으로
DB 만드는 법(Sap DB table 생성방법)
CRUD 레포트 만드는 법
이 두가지 기술을 알면 될 것이다.
오늘은 첫번째..
DB만들기다...
SAP 에서는 테이블 이란 말을 쓴다..
SAP 테이블에서 조회한다 = DB조회한다.
인터널 테이블에 담는다 = 로직에서 선언한 바구니에 DB에서 가져온 값을 담는다.
이 두개를 명확히 구분해야 한다.
TABLE 과 INTERNAL TABLE.
이걸 이해못하면 쿼리날리는것부터 혼돈이 오기 때문이다.
그럼 INTERNAL TABLE이 뭐야???
SAP ABAP 특징에 하나로 데이터를 담을 수 있는 깊은 바구니라고 생각하면 된다..
여러 데이터 라인을 차곡차곡 쌓을 수 있단거지...
아무튼 이건 기초편에 있던 내용이고
오늘은 TABLE 만들기다. 즉, DB만들기 시간이다.
=========
1.T-CODE : SE11
첫번째 DATABASE TABLE 필드에
만들 이름을 적고 Create를 누른다.

2. 해당 텝에거 아래와 같이 만든다.
저 아래 A의 의미는 F4 버튼 눌러서 읽어보라

master data 라는 소리인데 이 세밀한건 GPT에 물어서 공부하자. 왜? 대부분 A로 만드니까....
그리고 초급때 세세한거 다 말하면 기억도 안난다.
어느정도 알아야 그때부터 이해가 가지...
3. DB에 어떤걸 담을지 만든다.
이게 설명이 제일 길거 같다.
MANDT : 이거 시스템 클라이언트다. 그냥 무조건 넣어라. 알필요도 없다. 그냥 때려박고 시작하자.
BUKRS : 회사코드다. 사실 이 DB에서는 의미없으나 미래의 ABAP개발자를 위해 소개한다. 때려넣자.
나머지는 내맘대로고
맨 아래에 6개 필드는 SAP TABLE을 만들때 필수적으로 넣어야하는(이거 안넣는 개발자들도 상당히 많은데 이건 기본적으로 넣어야되는게 맞다. CRUD가있는(생성읽기업데이트삭제) DB는 무조건이다...
추가로 SAP에 삭제는 삭제플래그를 두는경우가 많다. 즉, 삭제해도 이력관리를 위해 DB에 삭제체크만 하고 데이터를 지우지는 않는거다..

4-1 위 사진에 1번.. DATA ELEMENT : YECATEGORY 는 오른쪽에 아무것도 안뜬다..
4-1번은 엘리먼트 만들기다.
SAP 필드는 어떤 속성을 가질거다...
즉 난 음식에 대한 카테고리를 만들고 싶은데
필드명만 CATEGORY 라고 지었지 이게 뭔지는 모른다.
내 이름이 워니라면... 워니는 사람인가 개인가 고양인가 곤충인가 ...? 이름만 지었다는거다..
자... 내가 만든 이름의 엘리먼트를 더블클릭 하자.
아래와 같이 팝업들이 뜬다.



맨 오른쪽에 필드라벨탭에 이름을 적어준다.
그럼 개발을 모르는 초보는 그러겠지?
니가 아까 필드명이 니 이름이라며....
근데 필드라벨에 이름은 또 뭔데...?
자자자... 잘 생각해봐..
코딩에서 쓰는 내 이름이 워니일 뿐이야.....
근데 대외적으로.. ... 진짜 사용자 유저들이 보는건
워니가 아니고 "개발자 워니" 라고 보여준다는 것이다.
즉, 유저들이 사용하면서 이 필드에 대한 텍스트가 메뉴 카테고리 라는거다..
이래도 이해가 안가면 댓글을.....
4-2 자 이젠 도메인을 만들어보자...

초보때는 이게 이해가 안갔다..
엘리먼트는 뭐고 도메인은 뭐고 뭘 막 훅훅 만들고 넘어가지??????
자 도매인이름은 y"d"category 라고 이름지었다.
d를 넣은거지...
그리고 위 이름을 더블클릭해라.



자... 도메인은 뭐시냐....
위 사진을 보자...
진짜 찐 속성을 만들어주는것 + 재사용 가능한 것들 + possible entry 가 가능하게 해주는 것...
이런 다양한 이유로 최대한 무조건 만들어주는게 좋다.
임시로 쓰이는 값이 아닌 여기저기 쓰이는 값이라면 무조건이다.
위 사진을 보면 numc에 2자리로 만들고
value값들을 01 02 03 04 해서 옆에 이름지었다.
즉, 이제 유저들도 그렇고 ycategory필드값이 01을 누르면 한식인걸 알고 02 중식 인걸 알 수 있게 되는거다.
또한 도메인을 만들면 이 이외의 값은 들어가지 못한다.( 물론 강제로 그외값을 넣을수 있지만 alv에서 자동으로..... se16n에서도 자동으로..)
자동체크가 되는거지...
고로 도메인은 만드는게 좋다.
그럼 또 질문하겠지...
아니 아저씨.. 들어봐요.. 아저씨가 ycategory라고 필드이름 지은것도 ok.
거기 필드에 유저가 볼 텍스트 넣은것도 ok
근데 꼭 도메인이 필요해요?
그냥 필드에 01 02 가 아니라 한글로 "한식" "중식" "양식" 넣음 안되요?
왜안되것니? 당연히 되지...
다만 그러면 초초초하수 되는거지..........
위에 그냥 한글 넣으려면 element만드는 부분에서 도메인을 입력해서 만들지 말고
built in type을 선택하면 된다.
아래처럼 말이야...

그리고 그냥 데이터 넣을때 한식 중식 일식 양식 태국식 동남아식 차이나식 아무거나 다 넣으면 된다.
이 말인 즉.. 데이터들이 중구난방되게 만들어지고,
db에서 데이터 찾아올때도 text로 찾아와야하기에 느리고, 관리가 어렵게 된다.
예시)
A 유저 : 한식이라고 올려야지~
B 유저 : 코리안식이라고 올려야지~
C 유저 : 국내식이라고 올려야지~
난리가 난다.....
고로.. 저렇게 분명하게 나뉘는건 도메인 만들자...
제발.....
(플젝에서 이런거 모르는 연차있는 분도 있는데 이라면 안되잉...유지보수 슬퍼...)
다 만들고 나서 이제 촛불버튼 전부 누르자
도메인부터 엑티브 / f3로 빽해서 엘리먼트도 엑티브 그럼 이제 db 에 대한 기술적 정의를 하자
1번 눌러!!아래와 같이 정의햇




그리고 저장누르고 나와서 마지막 촛불버튼 누르면 끝난다....
그 이후에 se16n으로 이동해서 데이터를 넣어보자
5. se16n
아래그림따라가자....
내가만든 db명 넣고

1번 라인추가눌러서 데이터 담고 2번저장버튼 누른다


자 힘들다....
잘 따라왔는가?
오늘은 여기까지다!!
'ERP-SAP > SAP기초사용법' 카테고리의 다른 글
<ABAP기초> ABAP 초급 개발시 어느정도 알아야 일 할 수 있을까..? (1) | 2025.06.16 |
---|---|
<ABAP기초> 소스 분석 퀴즈.. 어디 때문에 느려지는지 맞춰보세요. (0) | 2025.05.13 |
<ABAP> 쉽고 간단하게 배우는 기초 ABAP 07편. 종합 : SAP SIMPLE 레포트 프로그램 개발하기 (3) | 2025.01.08 |
<ABAP> 쉽고 간단하게 배우는 기초 ABAP 06편 (INPUT 화면 만들기, 데이터 입력 스크린 만들기) (11) | 2024.12.24 |
<ABAP> 쉽고 간단하게 배우는 기초 ABAP 05편 (LOOP, IF 처리) (10) | 2024.09.05 |