メインコンテンツまでスキップ
Version: 3.4.4

送受信ログユーザープログラム

ユーザーデータカスタム

プログラムの用途実装するJavaインターフェース注意事項
ユーザー呼び出しプログラムImageLoggingUserProcessプログラムIDをimageLoggingUserProcessorで登録

イメージログを保存する際に、必要なユーザーデータを追加保存できる。

この方法で保存したユーザーデータは、必要に応じて、BXIのTransaction Historyで検索条件に使用できる。 送受信ログユーザープログラムは、送受信ログをロギングする機能をカスタマイズする場合に使用する。

開発方法

下記は、送受信ログに、ユーザーデータの取引GUIDや元取引GUIDを追加する例である。

caution

プログラム情報を登録する際に、プログラムIDをimageLoggingUserProcessorで入力する必要がある。

@Component
public class ImageLoggingUserProcessor implements ImageLoggingUserProcess {

@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"));

return srLog;
}
}

実データカスタム

プログラムの用途実装するJavaインターフェース注意事項
ユーザー呼び出しプログラムRealDataCustomProcessエンジンのApplicationContext.xmlに適用

取引する際に発生するイメージログの実データ(BXI_SR_LOG.IMG_DATA)をカスタムできる。

開発方法

開発したプログラムは、Program Informationに登録し、ApplicationContext.xmlにビーンを追加する。

${BXIHOME}/config/ApplicationContext.xml
<bean id="realDataCustomProcess" class="bxi.logging.process.DefaultRealDataCustomProcess" />

下記は、JSON電文の最後にfileContentフィールドが存在する場合、そのフィールドを削除する電文データカスタムプログラムの例である。

package bxi.extension.customizing.api;
import java.nio.charset.Charset;
import bxi.api.RealDataCustomProcess;
import bxi.common.utility.ByteUtil;
import bxi.common.utility.CharsetUtil;
/**
* Ok RealDataCustom Process
* JSON電文の最後に"fileContent"フィールドが存在する場合
* , そのフィールドを削除する電文データのカスタムプログラム
* ------------------- 入力電文の例 --------------------
* {"maxSrMsgLen":65536,"chlBizCd":"IA","bizRmk":null,"fileContent":"ABCDEFGHI12345678"}
* ------------------------------------------------
*
* @author sample
* @history
* 2016.05.19 initial
*/
public class OkRealDataCustomProcess 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);

return realData.replaceAll(str + ".*22", "");
}
}