송수신로그 사용자프로그램
사용자 데이터 커스터마이징
프로그램용도 | 구현할 Java인터페이스 | 유의사항 |
---|---|---|
사용자호출프로그램 | ImageLoggingUserProcess | 프로그램ID를 imageLoggingUserProcessor 로 등록 |
송수신로그 사용자 프로그램은 송수신 로그를 로깅하는 기능을 커스터마이징 할 때 사용한다.
필요한 사용자 데이터를 추가 저장할 수 있으며,
저장한 사용자 데이터는 필요 시 BXI의 거래내역조회
에서 검색 조건으로 사용할 수 있다.
개발방법
송수신로그에 사용자 데이터인 거래 GUID나 원거래 GUID를 추가한다.
주의
프로그램정보 등록 시 반드시 프로그램ID를 imageLoggingUserProcessor
로 입력해야 한다.
@Component
public class ImageLoggingUserProcessor implements ImageLoggingUserProcess {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public BxiSrLogIO setUserData(BxiSrLogIO srLog, Map<String, String> userData) {
if (userData == null) {
return null;
}
srLog.setUserTrxGuid(userData.get("guid"));
srLog.setUserOrntxGuid(userData.get("fstGuid"));
logger.debug("sr log result : {}", srLog);
return srLog;
}
}
실데이터 커스터마이징
프로그램용도 | 구현할 Java인터페이스 | 유의사항 |
---|---|---|
사용자호출프로그램 | RealDataCustomProcess | 프로그램ID를 realDataCustomProcessor 로 등록 |
거래 시 발생하는 이미지로그의 실데이터(BXI_SR_LOG.IMG_DATA)를 커스텀할 수 있다.
개발방법
JSON 전문 마지막에 fileContent
필드가 존재할 경우,
해당 필드를 삭제하는 전문 데이터 커스텀 프로그램 예시이다.
주의
프로그램정보 등록 시 반드시 프로그램ID를 realDataCustomProcessor
로 입력해야 한다.
package bxi.extension.customizing.api;
import org.springframework.stereotype.Component;
import java.nio.charset.Charset;
import bxi.api.RealDataCustomProcess;
import bxi.common.utility.ByteUtil;
import bxi.common.utility.CharsetUtil;
/**
* JSON 전문 마지막에 "fileContent" 필드가 존재할 경우
* , 해당 필드를 삭제하는 전문 데이터 커스텀 프로그램
* ------------------- 입력 전문 예시 --------------------
* {"maxSrMsgLen":65536,"chlBizCd":"IA","bizRmk":null,"fileContent":"ABCDEFGHI12345678"}
* ------------------------------------------------
*
* @author sample
* @history
* 2016.05.19 initial
*/
@Component
public class RealDataCustomProcessor implements RealDataCustomProcess {
@Override
public String process(String realData, String charsetName) {
Charset charset = CharsetUtil.getCharsetWithDefault(charsetName);
// 전문이 헥사바이트로 되어있으므로 정규식 패턴도 헥사바이트로 변경
byte[] regx = ",\"fileContent\"".getBytes(charset);
String str = ByteUtil.byte2hex(regx, regx.length);
// .* 은 정규식 패턴을 사용해야 하므로 그대로 표현하고 마지막 쌍따옴표(")도
// 헥사바이트로 표현해야하므로 쌍따옴표의 헥사바이트인 22를 하드코딩
return realData.replaceAll(str + ".*22", "");
}
}