Center-Cut 커스터마이징 클래스

BXM Center-Cut에서 제공하는 커스터마이징에 대하여 설명한다.

1. System Header 커스터마이징

BXM Web Admin 및 Center-Cut 메인 서비스에서 리모트콜을 실행할 때 사용할 헤더를 정의한다.

구현 Interface: bxm.centercut.inf.ISysHeaderGenerator

package bxm.centercut.inf;

import bxm.request.ContextHeader;

public interface ISysHeaderGenerator {

    public ContextHeader createSystemHeader(String domainId, String trxCd) throws Exception;
}

구현 예시: bxm-centercut-default-extension의 DefaultCcutHeaderGenImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.header.generator

적용 예시

System Header 커스터마이징 구현체 클래스 설정
Figure 1. System Header 커스터마이징 구현체 클래스 설정

2. Center-Cut Executor 커스터마이징

Center-Cut에서 사용하는 여러 종류의 Executor를 정의한다.

구현 Interface: bxm.centercut.inf.ICcutExecutor

package bxm.centercut.inf;

import bxm.centercut.dto.SCC200101In;
import bxm.centercut.dto.SCC200101Out;
import bxm.centercut.dto.SCC300101In;
import bxm.centercut.dto.SCC300101Out;
import bxm.omm.root.IOmmObject;
import bxm.request.ContextHeader;

public interface ICcutExecutor {
    public <R, S> S executeOnline(String trxCd, R requestData) throws Exception;
    public void executeAsyncCcut(String trxCd, IOmmObject input, int timeout) throws Exception;
    public SCC200101Out executeCcutMain(String mainUrl, final ContextHeader header, final SCC200101In requestData) throws Exception;
    public SCC300101Out executeCcutProcess(String processUrl, final ContextHeader header, final SCC300101In requestData) throws Exception;
}
  • <R, S> S executeOnline(String trxCd, R requestData) throws Exception

    Center-Cut 처리 서비스에서 온라인 업무 서비스를 호출하는 로직을 구현한다. 반드시 Sync 거래로 작성한다.

  • void executeAsyncCcut(String trxCd, IOmmObject input, int timeout) throws Exception

    Center-Cut 메인 및 처리에서 실행 서비스를 호출하는 로직을 구현한다. 반드시 Async 거래로 작성한다.

  • SCC200101Out executeCcutMain(String mainUrl, final ContextHeader header, final SCC200101In requestData) throws Exception

    Center-Cut 실행을 위하여 메인 서비스를 리모트콜하는 로직을 작성한다.

  • SCC300101Out executeCcutProcess(String processUrl, final ContextHeader header, final SCC300101In requestData) throws Exception

    Center-Cut 메인 서비스에서 처리 서비스를 리모트콜하는 로직을 작성한다.

구현 예시: bxm-centercut-default-extension의 DefaultCcutExecutorImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.remote.executor

적용 예시

Executor 커스터마이징 구현체 클래스 설정
Figure 2. Executor 커스터마이징 구현체 클래스 설정

3. Center-Cut Main Control Loader 커스터마이징

Center-Cut으로 등록된 작업의 파라미터를 로드한다.

구현 Interface: bxm.centercut.inf.ICcutMainControl

public interface ICcutMainControl {
    /**
     * Load Ccut Main Parameters
     * @param dataSource
     * @param domainId
     * @param ccId
     */
    public void loadCcutMainParameter(DataSource dataSource, String domainId, String ccId) throws Exception;

    /**
     * Return DomainId
     * @return domainId
     */
    public String getDomainId();
    /**
     * Return CentercutId
     * @return ccId
     */
    public String getCcId();
    /**
     * @return useYn
     */
    public String getUseYn();
    ...
  • public void loadCcutMainParameter(DataSource dataSource, String domainId, String ccId) throws Exception

    BXM_CC_MAIN, BXM_CC_MAIN_NODE 테이블에 등록된 Center-Cut 파라미터 내용을 로드한다.

  • 그 외 getter 메소드들

    Center-cut 파라미터 항목들을 리턴한다.

구현 예시: bxm-centercut-default-extension의 DefaultCcutMainControlImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.main.parameter

적용 예시

Main Control Loader 커스터마이징 구현체 클래스 설정
Figure 3. Main Control Loader 커스터마이징 구현체 클래스 설정

4. Center-Cut 메인 선/후처리 커스터마이징

Center-Cut 메인의 선/후처리를 정의한다.

구현 Interface: bxm.centercut.inf.ICcutMainPrePostProcessor

public interface ICcutMainPrePostProcessor {
    public void preProcess(CcutMainInput mainInput, ICcutMainControl mainControl) throws Exception;
    public void postProcess(CcutMainInput mainInput, ICcutMainControl mainControl, CcutMainStatus mainStatus) throws Exception;
    public void onException(CcutMainInput mainInput, ICcutMainControl mainControl, CcutMainStatus mainStatus);
}
  • public void preProcess(CcutMainInput mainInput, ICcutMainControl mainControl) throws Exception

    Center-Cut 메인의 선처리 내용을 정의한다.

  • public void postProcess(CcutMainInput mainInput, ICcutMainControl mainControl, CcutMainStatus mainStatus) throws Exception

    Center-Cut 메인의 후처리 내용을 정의한다. Center-Cut 작업이 정상 종료될
    시에만 호출된다.

  • public void onException(CcutMainInput mainInput, ICcutMainControl mainControl, CcutMainStatus mainStatus)

    Center-Cut 작업이 비정상종료 될 때에 호출되어야 할 내용을 정의한다.

구현 예시: bxm-centercut-default-extension의 DefaultCcutMainProcessorImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.pre.post.processor

적용 예시

Center-Cut 메인 선/후처리 커스터마이징 구현체 클래스 설정
Figure 4. Center-Cut 메인 선/후처리 커스터마이징 구현체 클래스 설정

5. Center-Cut 처리 모듈 커스터마이징

Center-Cut 처리에 필요한 내용을 정의한다.

구현 Interface: bxm.centercut.inf.ICcutProcProcessor

public interface ICcutProcProcessor {
    public IOmmObject createOnlineRequest(String inputDtoFql, byte[] inputData) throws Exception;
    public void preProcess(ContextHeader cheader, ICcutMainControl ccutMain, CcutInpb inputInfo, IOmmObject requestData) throws Exception;
    public void postProcess(ContextHeader cheader, ICcutMainControl ccutMain, CcutInpb inputInfo, IOmmObject requestData, IOmmObject responseData) throws Exception;
}
  • public IOmmObject createOnlineRequest(String inputDtoFql, byte[] inputData) throws Exception

    DB에 저장된 입력 데이터를 서비스 호출을 위한 IO로 변환한다.

  • public void preProcess(ContextHeader cheader, ICcutMainControl ccutMain, CcutInpb inputInfo, IOmmObject requestData) throws Exception

    Center-Cut 처리의 선처리를 정의한다. 온라인 서비스 실행 전에 호출된다.

  • public void postProcess(ContextHeader cheader, ICcutMainControl ccutMain, CcutInpb inputInfo, IOmmObject requestData, IOmmObject responseData) throws Exception

    Center-Cut 처리의 후처리를 정의한다. 온라인 서비스 실행 후에 호출된다.

구현 예시: bxm-centercut-default-extension의 DefaultCcutProcProcessorImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.proc.processor

적용 예시

Center-Cut 처리 모듈 커스터마이징 구현체 클래스 설정
Figure 5. Center-Cut 처리 모듈 커스터마이징 구현체 클래스 설정

6. Center-Cut 입력 데이터 커스터마이징

Center-Cut 입력 데이터에 관한 내용을 정의한다.

구현 Interface: bxm.centercut.inf.ICcutInputController

public interface ICcutInputController {
    public void insertCcutInputData(List<CcutInpb> inputList, String dbEncoding, Connection con) throws Exception;
    public List<CcutInpb> selectCcutTargetList(CcutInputDataSelector inputDataSelector) throws Exception;
    public void insertErrorInputData(List<CcutErrorDataInfo> errorDataInfoList) throws Exception;
    public void updateProcessResult(CcutInpb input) throws Exception;
    public CcutInputSummarizedInfo getInputSummarizedInfo(CcutWorkStatus workStatus) throws Exception;
    public List<CcutSvccHist> getInputSummaryByNode(CcutBasicInfo info) throws Exception;
    public String generateMessage(IOmmObject object) throws Exception;
    public long selectLastProcNo(CcutWorkStatus workStatus, Connection con) throws Exception;
}
  • public void insertCcutInputData(List<CcutInpb> inputList, String dbEncoding, Connection con) throws Exception

    발췌 대상 데이터를 DB에 입력한다.

  • public List<CcutInpb> selectCcutTargetList(CcutInputDataSelector inputDataSelector) throws Exception

    센터컷 처리 서버에서 온라인 서비스 호출에 사용할 입력 데이터를 검색한다.

  • public void insertErrorInputData(List<CcutErrorDataInfo> errorDataInfoList) throws Exception

    처리 오류가 발생한 데이터의 재 처리를 위하여 재 발췌시 호출되어 입력 데이터 테이블에 입력한다.

  • public void updateProcessResult(CcutInpb input) throws Exception

    센터컷 처리 서비스에서 온라인 서비스 호출 결과를 입력 데이터 테이블에 기록한다.

  • public CcutInputSummarizedInfo getInputSummarizedInfo(CcutWorkStatus workStatus) throws Exception

    비정상종료된 작업을 재 실행했을 때, 실행 번호 별로 처리 건수 등을 집계하기 위하여 입력 데이터 테이블을 검색한다.

  • public List<CcutSvccHist> getInputSummaryByNode(CcutBasicInfo info) throws Exception

    비정상종료된 작업을 재 실행했을 때, 처리 서비스 노드 별로 처리 건수 등을 집계하기 위하여 입력 데이터 테이블을 검색한다.

  • public String generateMessage(IOmmObject object) throws Exception

    입력으로 받은 IOmmObject 객체를 DB에 입력하기 위한 String 형태로 변형한다. String 포맷은 각 사이트에서 정한 형태로 한다.(ex: FLD, Json 등)

  • public long selectLastProcNo(CcutWorkStatus workStatus, Connection con) throws Exception

    입력 데이터 테이블의 데이터를 조회하여 최종 접수 번호를 반환한다.

구현 예시: bxm-centercut-default-extension의 DefaultCcutInputControllerImpl 클래스 참조

적용 방법: WebAdmin의 Admin 설정 화면을 이용하여 등록한다.

설정 키: bxm.centercut.input.controller

적용 예시

Center-Cut 입력 데이터 커스터마이징 구현체 클래스 설정
Figure 6. Center-Cut 입력 데이터 커스터마이징 구현체 클래스 설정

Copyright© Bankwareglobal All Rights Reserved.