====== Decision Information ====== ===== 개요 ===== 개발자 편의성을 위하여 Decision의 설정 항목을 입력받아 배치 작업 파일 템플릿을 자동으로 생성해주는 마법사를 제공한다. ===== 설명 ===== 배치 작업 설정 항목 중 Decision내에 설정할 수 있는 기본적인 항목을 사용자가 입력하는 마법사를 제공한다.\\ * 배치 작업 구성 항목 별 설명 \\ == == ^항목^하위 항목^설명^기본값^ | Job ID || 배치 작업 파일 생성시 하나의 프로세스를 나타내는 작업명 | Decision을 Add할 Job의 ID | | Decision ID || exit-code를 이용하여 분기를 설정하는 decision 명 | 사용자 지정 | | Next | on | 전달받은 Step 또는 Decision의 exit-code와의 일치 여부 판별 | COMPLETED | | Next | to | 전달받은 Step 또는 Decision의 exit-code와 일치할 경우, 지정한 Step 혹은 Decision으로 분기 | 사용자 지정 | | End | on | 전달받은 Step 또는 Decision의 exit-code와의 일치 여부 판별 | COMPLETED | | End | exit-code | 전달받은 Step 또는 Decision의 exit-code와 일치할 경우, 해당 Step의 배치 종료 상태 지정 | 사용자 지정 | | Fail | on | 전달받은 Step 또는 Decision의 exit-code와의 일치 여부 판별 | FAILED | | Fail | exit-code | 전달받은 Step 또는 Decision의 exit-code와 일치할 경우, 해당 Step의 배치 종료 상태 지정 | 사용자 지정 | | Stop | on | 전달받은 Step 또는 Decision의 exit-code와의 일치 여부 판별 | COMPLETED | | Stop | restart | 작동 중 정지한 Job이 restart할 경우, on 항목과 전달받은 Step 또는 Decision의 exit-code와 일치한다면 restart 항목에 재시작할 Step 지정 | 사용자 지정 (Step/Decision List에 등록한 항목들 중 택 1) | {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:decision_add.png?450|}} * Decision 등록시 ExitStatus 외의 특정 조건 혹은 정보를 활용하기 위하여 JobExecutionDecider를 상속받아서 구현 가능하다.\\ 다음은 전자정부 프레임워크에서 JobExecutionDecider를 상속받아 기본으로 제공하는 Decider이다. \\ \\ /** stepExecution의 exitCode를 변경 없이 return 하는 클래스 */ public class EgovDecider implements JobExecutionDecider{ public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) { return new FlowExecutionStatus(stepExecution.getExitStatus().getExitCode()); } } ** Decision에 대해 더 자세한 설명이 필요한 경우 [[egovframework:rte2:brte:batch_core:flow_control#Programmatic Flow Decisions|다음]]을 참고한다. ** \\ ** 주의 ** \\ ✔ Decision을 등록한 후 등록한 Decision을 기 등록한 Step 혹은 Decision의 next에 반드시 등록시켜야 한다. \\ ✔ next 등록시 **무한 루프를 돌지 않도록** Step 혹은 Decision을 등록해야 한다. \\ * **Example**: 하단의 그림 같은 경우 Step1이 FAILED 되었을 경우 Decision을 이용하여 Step2를 진행하도록 설정한 후 Step2 정상 작동 후 Step1을 진행하도록 설정한 Job이다. 이와 같은 경우 무한 루프를 돌게 된다.\\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:batchjobwizard_decision_infiniteloop.png?250|}} ✔ Spring의 경우 bean id 중복을 불허하기 때문에 전자정부 프레임워크 배치개발환경에서도 기존에 등록된 bean id의 중복 등록을 방지하고 있다. \\