후행 처리 업무 정의 Interface
후행 처리 시 타켓 테이블 처리일련번호 조회, 테이블 넘버링, 영업일 조회는 커스텀마이징에서 처리 할 수 있을 뿐만 아니라, 업무에서 작성하여 처리할 수 있는 기능과 Interface를 제공하고 있다.
여기서 말하는 업무란 업무 쪽 어플리케이션 소스를 의미한다.
1. 업무 정의 Interface
업무 정의 Interface는 아래의 3가지의 Interface를 이용하여 처리할 수 있다.
Interface | 설명 |
---|---|
DeferredTargetTableReader |
타겟 테이블에서 처리일련번호를 조회 처리 |
DeferredTableNumbering |
타겟 테이블 넘버링 |
DeferredBizDt |
영업일 조회 |
2. DeferredTargetTableReader Interface
타겟 테이블에서 후행 처리의 일련번호를 조회 하는 Interface 이다.
2.1. 구현 Method
DeferredTargetTableReader 의 구현 Method는 다음과 같다.
public DeferredServiceExecInfo readTableInfo(final IDeferredMainInfo deferredMainInfo, final long lastSeq);
2.1.1. readTableInfo() Method
타겟 테이블에서 후행 처리의 일련번호를 조회 한다.
속성 |
설명 |
|
파라 미터 |
IDeferredMainInfo deferredMainInfo |
후행 처리 메인/상태 정보 |
long lastSeq |
후행 처리 작업(BXM_DEFERRED_WORK) 테이블에서 마지막으로 조회한 종료일련번호 |
|
리턴 |
DeferredServiceExecInfo |
처리일련번호를 조회한 정보 |
readTableInfo() Sample
아래의 예는 타겟 테이블에서 후행 처리의 일련번호를 조회하는 예로서, 만일 실행할 일련번호가 존재하지 않으면 null 을 return 하거나 exist 필드에 false 로 설정 하면 된다.
@Override
public DeferredServiceExecInfo readTableInfo(IDeferredMainInfo deferredMainInfo, long lastSeq)
{
DeferredServiceExecInfo deferredServiceExecInfo = new DeferredServiceExecInfo();
// 채번 처리할 DBIO 호출
// 존재할 경우
deferredServiceExecInfo.setExist(true);
deferredServiceExecInfo.setStartSeq(startSeq);
deferredServiceExecInfo.setEndSeq(endSeq);
// 존재하지 않을 경우
deferredServiceExecInfo.setExist(false);
return deferredServiceExecInfo;
}
3. DeferredTableNumbering Interface
타겟 테이블을 넘버링 할 수 있는 Interface 로서 Default 로 30초 마다 불려진다.
3.1. 구현 Method
DeferredTableNumbering 의 구현 Method는 다음과 같다.
public void callNumbering(final IDeferredMainInfo deferredMainInfo);
3.1.1. callNumbering() Method
타겟 테이블을 넘버링 할 수 있는 Method이다.
속성 | 설명 | |
---|---|---|
파라 미터 |
IDeferredMainInfo deferredMainInfo |
후행 처리 메인/상태 |
리턴 |
void |
callNumbering() Sample
아래는 넘버링 Sample Method이다.
@Override
@TransactionalOperation(propagation=Propagation.REQUIRES_NEW)
public void callNumbering(IDeferredMainInfo deferredMainInfo)
{
// Numbering 처리 로직 구현
}