====== Step Information ====== ===== 개요 ===== 개발자 편의성을 위하여 Step의 설정 항목을 입력받아 배치 작업 파일 템플릿을 자동으로 생성해주는 마법사를 제공한다. ===== 설명 ===== 배치 작업 설정 항목 중 Step 내에 설정할 수 있는 기본적인 항목을 사용자가 입력하는 마법사를 제공한다. \\ * 배치 작업 구성 항목 별 설명 \\ == == ^항목^설명^기본값^ | Job ID | 배치 작업 파일 생성시 하나의 프로세스를 나타내는 작업명 | Step을 Add할 Job의 ID | | Step Type | 한번에 하나의 Step을 처리하는 Normal과 여러 쓰레드가 분산 수행되어 파일을 나눠 처리할 수 있는 Partition(File) 중 택일하여 설정 가능 | Normal | | Step ID | 하나의 Job내부에서 독립적으로 일어나는 프로세스명 | 사용자 지정 | | [[#next 설정|next]] | Step 혹은 Decision이 하나이상 등록되어진 상태에서 현재 등록 중인 Step 다음 수행될 Step 또는 Decision 지정 | 사용자 지정 | | [[egovframework:dev2:bdev:imp:create_batch_job_wizard:job_reader_mgmt#배치 작업 파일 생성시 Job Reader 적용|Reader]] | 입력 자원의 타입에 따라 Item을 입력받기 위한 설정 | 사용자 지정 | | [[egovframework:dev2:bdev:imp:create_batch_job_wizard:job_writer_mgmt#배치 작업 파일 생성시 Job Writer 적용|Writer]] | 출력 자원의 타입에 따라 Item을 출력하기 위한 설정 | 사용자 지정 | | Commit-Interval | 한 transaction에 처리되는 자원의 양 (1이상) | 사용자 지정 | | [[:egovframework:dev2:bdev:imp:create_batch_job_wizard:listener_mgmt#배치 작업 파일 생성시 Step Listener 적용|Step Listeners]] | Step 수행 중 발생한 이벤트를 처리하기 위한 설정 | 사용자 지정 | | [[:egovframework:dev2:bdev:imp:create_batch_job_wizard:listener_mgmt#배치 작업 파일 생성시 Chunk Listener 적용|Chunk Listeners]] | Chunk 수행 중 발생한 이벤트를 처리하기 위한 설정 | 사용자 지정 | | [[#Shared values 설정|Shared values]] | 하나의 Job내에 여러 Step들이 하나의 Key를 통해 정보를 공유하기 위한 Key 설정 | 사용자 지정 | {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:step_add.png?450|}} ** 배치 작업의 구성요소에 대해 더 자세한 설명이 필요한 경우 [[egovframework:rte2:brte:batch_core:step|다음]]을 참고한다. ** ** 주의 ** \\ ✔ 하나의 Job 내에 두 개 이상의 Step을 등록할 경우 반드시 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의 중복 등록을 방지하고 있다. \\ ==== next 설정 ==== * Job내에 등록된 Step 혹은 Decision간의 순차적인 흐름을 사용자가 지정할 수 있다.\\ * Step과 Decision이 총 두개 이상 등록된 경우, 반드시 next를 통해 다음 진행 될 Step 혹은 Decision을 지정해줘야 한다. * 아래의 예시에서 SampleStep1은 다음 진행 될 Step(SampleStep2)을 next로 지정해줘야 한다. * SampleStep2에서는 SampleStep1을 다시 next로 지정 가능하지만 이런 경우 무한 루프의 위험이 있으므로 주의 해야한다. * 아래의 Step 흐름을 보면 'SampleStep1 -> SampleStep2' 의 순서로 진행된다. ^ SampleStep1 설정 ^ SampleStep2 설정 ^ |{{:egovframework:dev2:bdev:imp:create_batch_job_wizard:step_next1.png?450|}} |{{:egovframework:dev2:bdev:imp:create_batch_job_wizard:step_next2.png?450|}}| ==== Shared values 설정 ==== - Shared values를 사용할 경우 Shared values 탭에서 Shared values 우측의 **Add**를 클릭한다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:sharedvalue_add.png?450|}} \\ \\ - 공유하고자 하는 Key를 선택 및 설정하고 **OK**를 클릭한다. \\ ✔ Shared values란 작업간 정보 공유 관리로 Job내의 Step을 수행하던 중에 나온 결과값을 다른 Step에서 사용할 수 있다. \\ ✔ Shared values는 다음과 같이 사용할 수 있다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:sharedvalue_select.png?450|}} \\ \\ === 설정 XML 예시 보기 === 위의 위자드 사용 예제를 통해 Shared Value를 설정한 XML이다. XML에 보이듯이 TestStep1에서 설정한 'FlatFileItemReader.read.count'가 Key값으로 설정 되있는 것을 볼 수 있다. \\ 결과적으로 TestStep1에서 'FlatFileItemReader.read.count' Key에 해당하는 정보를 TestStep2에서 'FlatFileItemReader.read.count' Key를 통해 사용할 수 있게 된다. \\ FlatFileItemReader.read.count