일부 기업에서는 구매 주문(Purchase Order, PO)을 생성하기 위해 반드시 구매 요청(Requisition)을 거쳐야 하며, 수동으로 PO를 직접 생성하는 것을 제한해야 하는 경우가 있습니다. 이 글에서는 Oracle 환경에서 사용자가 수동으로 PO를 생성하지 못하도록 제한하는 방법을 소개합니다.
개요
Oracle® Purchasing에서는 다음 두 가지 방법 중 하나로 구매 주문(PO)을 생성할 수 있습니다.
- PO 폼(Form)을 사용하여 수동으로 생성
- AutoCreate 폼을 통해 구매 요청(Requisition)으로부터 자동으로 생성
구매 요청을 통해서만 PO 생성을 허용하고 수동 생성은 차단해야 하는 비즈니스 요건이 있을 수 있습니다. 아래에서는 Oracle E-Business Suite(EBS) 애플리케이션에서 PO의 수동 생성을 제한할 수 있는 두 가지 방법을 살펴봅니다.
방법 1: POXPOEPO 폼 개인화(Personalization) 활용
이 방법은 두 단계의 개인화 작업이 필요합니다. 하나는 PO Header 블록에 적용하고, 다른 하나는 PO Line 블록에 적용합니다.
PO Header 블록 개인화
PO Header 블록을 개인화하려면 WHEN VALIDATE RECORD 이벤트를 사용합니다.
이때 PO 번호(SEGMENT1)가 null인지 확인하는 조건을 추가해야 합니다. SEGMENT1이 null이라는 것은 구매 주문 폼에서 새로운 PO를 생성하려고 시도하고 있다는 의미이므로, 바로 이 시점에 오류 메시지를 발생시켜 해당 동작을 차단해야 합니다.
PO Line 블록 개인화
PO 라인 레벨에서는 WHEN NEW BLOCK INSTANCE 이벤트를 통해 PO 생성 시도를 가로챕니다.
PO 헤더 레벨의 SEGMENT1 값이 null인 경우 다음과 같은 조치를 수행합니다.
- 제어권을 PO Header 블록으로 넘깁니다.
- 오류 메시지를 발생시킵니다.
이러한 절차를 통해 사용자가 수동으로 PO를 생성하려는 시도가 발생하면 즉시 오류 메시지와 함께 차단되도록 설정할 수 있습니다.
방법 2: 메뉴 제외(Menu Exclusions) 활용
메뉴 제외 방식을 사용하려면 책임(Responsibility) 레벨에서 여러 기능(Function)을 제외 처리하여 사용자가 수동으로 PO를 생성하지 못하게 해야 합니다. PO 생성을 제한하려는 모든 책임에 대해 반드시 수정을 적용해야 합니다.
제외해야 할 기능은 다음과 같습니다.
Purchase OrdersPO Summary: Create New PO
책임 정의 화면에서 위 기능들을 제외 항목으로 등록하면, 해당 책임을 부여받은 사용자는 더 이상 수동으로 PO를 생성할 수 없습니다.
다만 메뉴 제외 방식에는 한 가지 제약이 있습니다. Purchase Orders와 PO Summary: Create New PO 기능이 제외된 책임에서는 AutoCreate 기능으로 생성된 PO조차 편집할 수 없게 됩니다.
결론
지금까지 소개한 두 가지 방법 중 하나를 선택하여 PO의 수동 생성을 제한할 수 있습니다. 구매 요청을 통해 PO를 생성한 후에도 사용자가 해당 PO를 편집할 수 있도록 허용하려면 폼 개인화 방식을 사용하는 것이 좋습니다. 반면, 사용자가 AutoCreate로 PO를 생성하기만 하면 되고 편집이 필요 없다면 메뉴 제외 방식이 더 간단한 선택입니다. 상황에 맞는 방법을 적용하여 구매 프로세스의 통제력을 강화하시기 바랍니다.
궁금한 점이나 의견이 있다면 피드백 탭을 통해 남겨 주세요.