입고문서(GR) 프로그램 이다. 사용자들의 만족도 100%를 향해 나아가보자.




SEARCH 버튼은 ALV에 사용자에게 필요한 정보를 보여주는 것이 주 목적이다. 때문에 SEARCH 버튼을 누르면, DB TABLE에서 SELECT를 통해 필요한 정보들을 가져온다. 입고 문서를 조회할 때는 가장 최신의 값만 보여줘야 한다고 생각했기에, 취소 건수는 조회되지 않도록 만들었다.
조회 조건을 결정할 때는 사용자 편의성 + 적절한 양의 데이터를 보여줄 수 있는지를 고려해야 한다. 때문에 필자는 해당 프로그램에서 코드 및 일자, 거래처 별 데이터를 조건으로 설정함으로써 사용자가 한눈에 볼 수 있는 데이터를 조회할 수 있게 만들었다.
데이터 탐색 시 DB Layer에서 탐색 후 결과를 ABAP Layer로 전달해주는 CDS view를 활용해 효율성을 높였고, ALV 필드 구성 시 사용자가 우선적으로 확인해야 하는 값을 기준으로 순번을 설정했다.
입고 문서를 조회한 ALV에서 사원 정보, 거래처 정보 등을 조회하고 싶을 때 해당 EVENT를 통해 정보를 보여줄 수 있다.
사용자는 각각 사원 이름, 거래처 이름의 정보를 DOUBLE CLICK 해 추가 정보를 볼 수 있다.
사용자가 해당 EVENT를 실행하면 다음과 같이 POPUP에 정보를 보여준다.


HOT SPOT EVENT는 사용자가 필수로 클릭해야할 때 사용하는 EVENT 이다. 해당 프로그램에서 구매오더는 입고 문서와 밀접한 관련성이 존재하기 때문에 HOT SPOT EVENT를 활용했다. 정보를 보고 싶은 구매오더 코드를 클릭하면 다음과 같이 POPUP ALV가 보여진다.
구매 오더 정보를 보여줄 때는 구매오더 헤더 1건에 대한 총합 금액을 보여주었고, 사용자가 한 눈에 확인 할 수 있는 수준을 구성해 간단 명료하게 나타내기 위해 노력했다.


초기 화면에서 하나의 행을 선택해 상세 정보 버튼을 클릭하면 DETAIL 화면으로 이동한다. 해당 스크린의 주 목적은 입고 문서 헤더 및 아이템 정보들을 모두 보여주는 것이다. 담당자 정보 및 구매 오더 정보 버튼을 누르면 해당 KEY 값에 대한 정보를 모두 볼 수 있다.
아이템에 대한 상세 정보를 보고 싶다면 하나의 행 선택 후 GR ITEM 상세를 눌러 확인할 수 있다.






입고 문서 등록 후 잘못된 정보를 입력해 수정하고 싶다면 하나의 행을 선택하고 GR변경 버튼을 눌러 UPDATE SCREEN으로 이동할 수 있다. 해당 화면에서는 입고 문서 헤더 및 아이템 정보를 모두 보여준다. 헤더 정보 변경과 더불어 입고 문서 아이템 정보를 변경하려면 하나의 행을 선택한 후 입고 문서 아이템 생성 OR 입고 문서 아이템 삭제 OR 입고 문서 아이템 변경 버튼을 누르면 사용자 목적에 맞게 활용할 수 있다.
모든 변경을 진행한 후 GR 변경을 누르면 UPDATE가 이루어지고 GR 삭제 버튼을 누르면 DB에 삭제 플러그가 추가된다.
오늘은 차량 대여 서비스 회사에서의 입고 문서 생성/변경/삭제/조회 시스템을 만들어보았다. 시스템 구축을 하면서 느낀 점은 입고 문서 프로그램을 사용할 사용자 관점에서 구축하는 것이 중요하다는 점이다. 화면 구성, 기본 값 설정, 사용자에게 보여지는 버튼의 종류 등 사용자 만족도를 높이기 위해서는 많은 노력이 들어가야 한다는 것이다.
데이터 품질을 높이는 방법은 여러가지가 존재하겠지만, 정교하게 프로세스를 구축하는 것이 중요하다고 생각한다. 초기에 정보 입력을 정확하게 하도록 만든다면, 잘못된 데이터가 들어갈 확률이 낮아지기 때문이다. 또한 헤더-아이템의 관계, 다른 테이블과의 관계 등을 생각하며 데이터 무결성이 깨지지 않도록 만들어야 한다.
또한 입고 문서의 경우에는 엄청나게 많은 데이터가 존재하고, 추가될 것이기에 데이터 탐색 시 CDS VIEW 활용이나, 중복 데이터 제거 등 효율성을 높이기 위해 많은 신경을 써야 한다는 것을 깨달았다.
결론적으로!! 프로그램 설계에서부터 구현까지 작은 요소라도 깊은 생각을 가지고 만들어야 한다. 정교한 설계에서부터 다양한 경우의 수를 모두 녹여내는 것이 좋은 프로그램을 만드는 방법이라고 생각한다.