본문 바로가기

SAP ABAP 개발 및 설명/Function Module 사용 예시

BATCH JOB 실행 여부 판단 함수(BP_FIND_JOBS_WITH_PROGRAM)

안녕하세요.
간혹 문의받는 내용 중 하나를 공유하고자 합니다.

대다수의 ERP 프로그램들은 Batch Job이라는 기능을 통해서, 사용자가 직접 실행하지 않더라도 특정 조건에 만족하면 자동으로 background에서 작업을 하도록 하는 기능이 있습니다.

그러나 간혹, 이전 batch job이 돌아가고 있는 경우 다음 batch job이 돌지 않았음 좋겠다는 문의 혹은 batch job이 돌고 있으면 사용자가 프로그램을 실행하는 것을 막고 싶어하는 요구사항이 있습니다.

이 떄 BP_FIND_JOBS_WITH_PROGRAM이라는 함수를 사용하면 됩니다.

BP_FIND_JOBS_WITH_PROGRAM

실제 사용하는 파라미터는 
1) ABAP_PROGRAM_NAME -> 사용 프로그램 명
2) ABAP_VARIANT_NAME -> 프로그램 실행 시 사용하는 Variant 명
3) STATUS -> 상태구분자("R" 이 실행중을 의미)

Tables : 결과가 담기는 부분

4) JOBLIST -> 상기 IMPORT 파라미터 조건으로 실행되고 있는 Batch Job 내용이 담기는 Tables

해당 Table 결과를 받는 변수가 Initial이 아니라면 실제 BatchJob이 진행되고 있다는 의미입니다. 해당 결과로 결과값이 존재하면 종료, 존재하지 않는다면 계속 진행하는 방식으로 로직을 구성하시면 될 것 같습니다.

감사합니다.

반응형