SAP HANA CLOUD

[SAP RAP] 배치잡 Batch job 돌리는 방법

선짱 2026. 1. 19. 17:38
반응형

배치 잡 = 일괄처리

빽잡 = 뒷 서버에서 돌아가는거 ( 벡그라운드 잡 )

 

잡 카탈로그 ?  =  비즈니스 로직을 정의 해 놓은 객체

스케줄 기능을 등록해 놓은 것이 바로 잡 카탈로그 entry

 

배치잡 관련한 패키지 위치나 코딩을 보자면

 

일단 배치잡 돌리려면 이클립스에서 기본 셋팅이 되어야함

배치잡은 따로 cts 딸 필요없음

 

 

저 파란구슬 같은거 필요함

이런 구조로 Application Job 과 Job Templates 가 필요하다

 

( 원래 핸들러만 돌려서 처리할라했는데 메시지 처리가 안되어서 백잡을 돌리기로함 )

 

 

지금 만든 RAP001 은 핸들러에서 배치잡을 불러옴

그 배치잡 클래스를 런치패드에 등록해서 스케줄을 돌릴 수 있음

런치패드 안에서 클래스 등록과 스케줄 설정 가능.

 

 

클래스에서 돌릴때 이 인터페이스 두개도 필요함

 

잡 돌릴때 많이 들 쓰는 변수 

 

DATA lv_job_text TYPE cl_apj_rt_api=>ty_job_text VALUE 'Demo_Job'.

    DATA lv_template_name TYPE cl_apj_rt_api=>ty_template_name.

    DATA ls_start_info TYPE cl_apj_rt_api=>ty_start_info.

    DATA ls_scheduling_info TYPE cl_apj_rt_api=>ty_scheduling_info.

    DATA ls_end_info TYPE cl_apj_rt_api=>ty_end_info.

    DATA lt_job_parameters TYPE cl_apj_rt_api=>tt_job_parameter_value.

    DATA ls_job_parameters TYPE cl_apj_rt_api=>ty_job_parameter_value.

    DATA ls_value TYPE cl_apj_rt_api=>ty_value_range.

    DATA lv_jobname TYPE cl_apj_rt_api=>ty_jobname.

    DATA lv_jobcount TYPE cl_apj_rt_api=>ty_jobcount.

    DATA lv_status TYPE cl_apj_rt_api=>ty_job_status.

    DATA lv_statustext TYPE cl_apj_rt_api=>ty_job_status_text.

 

 

이런 변수 써주는데 cl_apj_rt_api SAP 환경에서 'Application Job'(백그라운드 작업)을 프로그램 코드로

제어하기 위한 표준 API 클래스

 

써주면 Scheduling ,  Monitoring , Cancellation , 로그 확인 같은걸 쓸 수 있게 해줌

 

[핵심 메서드]

schedule_job : 준비한 파라미터와 시간을 가지고 작업을 실제로 예약한다.

get_job_status : 발급된 Job Name ID를 넣어 현재 상태를 가져온다.

cancel_job : 아직 실행되지 않은 작업을 리스트에서 삭제한다.

 

 

 

 

에러 처리 부분 

 

TRY.

    " 1. 잡 예약 시도

    cl_apj_rt_api=>schedule_job( ... ).

 

  CATCH cx_apj_rt INTO DATA(lx_error).

    " 2. 에러가 나면 여기로

    " lx_error->get_text( ) 를 통해 왜 실패했는지 이유를 알 수 있음

    DATA(lv_error_message) = lx_error->get_text( ).

ENDTRY.

 

CATCH cx_apj_rt를 써주면 프로그램이 죽지 않고 안전하게 다음 로직으로 넘어갈 수 있음

 

 

 


 

PS.  이렇게 설정 안해도 따로 Gui 안에서도 딸 수 있음

티코드는 sm36 과 sm37

custom cds view Detail

 

 

 

 

반응형