[ABAP] D빠진 CRUD - 여는 글

JIHUN LEE·2024년 2월 23일
4

[ABAP] D빠진 CRUD

목록 보기
1/3

먼저 첫 벨로그를 쓰게 되었다.

그동안 열심히 배워왔던 ABAP이지만 기록용으로 남겨 놓고자 나름 열심히 준비해 보았다. 어디서부터 어디까지 글을 남겨볼까 막연한 생각으로, 나름 고민하고 해결해 나아갔던 실습문제가 있어서 첫번째 포스트는 "D빠진 CRUD'이다. CRUD를 주로 다루며 이야기를 풀어가 볼 것이지만, ALV(ABAP List View)를 비롯한 SAP의 개념적인 내용들도 다뤄볼 생각이다!

CRUD

Create, Read, Update 그리고 Delete를 구현하는 것이다.

왜 D를 뺐을까?

SAP 시스템은 기업용 소프트웨어이다. 기업에서의 일련의 활동들이 데이터베이스로 저장이 되고, 저장이 된 데이터의 중요도는 다르겠지만 쓸모없는 데이터는 없다! 라는게 필자의 생각과 맞아 떨어졌다. 물론 Delete하는 방법을 모르는 것은 아니다. 하지만 DB의 Record를 Delete한다는 것은 매우 위험할 수 있는 행위이기 때문에 이번 실습 문제를 골라 작성을 해보았다.

Delete를 해야할 Record가 있을 수 있다. 잘못된 정보의 Record는 어떻게 관리를 해야할까?

라는 의문이 생길 수 있다. 잘못된 정보라도 상황에 따라 저장을 해 놓으며 이 레코드는 잘못되었다고 기록을 해주어야 한다. 그렇기 때문에 deleted Field를 만들어 체크 할 수 있어야 한다.

프로그램 개요

우선 본 프로그램은 교과목 리스트를 조회, 생성, 변경하는 프로그램이다.
교과목 코드의 범위를 사용자가 입력을 하면, 범위에 해당하는 Data( 교과목 코드, 교과목 명, 수강료, 통화단위 )를 DB에서 가져오고, 데이터를 Create하고, ALV에서 선택된 Record를 Update할 수 있는 프로그램을 만들어 보았다.

첫 벨로그 글이기도 하고 한번 뽐내보기 위해서 UML도 그려봤다!! 평소에 UML을 잘 그리지 않는건 나뿐이 아닐거야...

Flow diagram


Screen에서 발생하는 Event를 기반으로 Flow Diagram을 그려보았다.
위 다이어그램을 간략히 설명해 보자면!
먼저 Program이 Load되고 100번 Screen에서 조건에 맞는 입력값이 입력되는 과정을 Act1이라고 명명하였고, DB에서 값을 Read하는 과정을 Reload라고 표현하였다.

Read하는 과정은 추후에 다른 스크린에서 100번 스크린으로 넘어올 때도 자주 사용하여야 하기 때문에 Reload라고 명명하였다.

Input은 Create버튼을 누르면 레코드를 생성할 수 있는 200번 Screen으로 넘어가는 과정이고, Act2의 로직을 통해 DB에 Create를 할 수 있다.

Update는 ALV에서 선택된 Record의 정보를 가지고 300번 Screen으로 넘어가 DB에 Update 하는 Act3로직으로 구성되어 있다.

구성 Screen

Screen 0100 : Main Screen

Search 교과목 등록 교과목 변경 버튼을 통해 이벤트를 수행할 수 있다.

유효한 범위의 Condition을 입력하고 Search버튼을 클릭하면 다음 사진과 같이 ALV에 리스트를 뿌려준다.

Screen 0200 : Create Screen

교과목에 대한 정보를 입력하고 등록버튼을 누르면 DB에 저장이 된다.
교과목코드, 교과목 명, 금액은 필수값으로 사용자가 입력을 해야지만 등록이 가능하게 구현하였고, 통화단위는 KRW 원화로 고정하였다.

Screen 0300 : Update Screen

ALV에서 Record를 선택한 후 교과목 변경버튼을 누르면 호출되는 300번 Screen이다. 선택된 정보를 가져오고, 교과목 명과 기본 수강 비용을 변경해 교과목 변경버튼을 누르면 DB에 변경된 Record가 저장된다.

하나의 실습 문제를 자세히 풀어보고자 하는 욕심이 넘쳐서인지 한 게시글로 끝내기엔 아쉽다는 생각이 들었다. 다음 게시글 부터 Read with ALV, Create, Update를 하나하나 써 내려가 볼 생각이다.

그럼 20000.

profile
Hello I'm Jihun

0개의 댓글