diff --git a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp
index e954f51..0951b54 100644
--- a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp
+++ b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp
@@ -28,6 +28,8 @@
var eaiSvcSerno = urlParams.get("eaiSvcSerno");
var logPrcssSerno = urlParams.get("logPrcssSerno");
let fullMessageData;
+ let layoutInfo = [];
+ let bzwkdatatntInfo;
var eaiSvcCode = "";
@@ -198,6 +200,8 @@
const isInboundWithoutNet = !json.GSTATSYSADPTRBZWKGROUPNAME.includes('NET');
const isOutboundWithoutNet = !json.PSVSYSADPTRBZWKGROUPNAME.includes('NET');
fullMessageData = json.FULLMESSAGEDATA;
+ layoutInfo = json.standardHeader;
+ bzwkdatatntInfo = json.BZWKDATATNT;
if((isInboundPart && isInboundWithoutNet) || (isOutboundPart && isOutboundWithoutNet)){
selectHttpLog(url, prcsDate, json.EAISVCSERNO.trim(), logPrcssSerno);
@@ -353,6 +357,10 @@
$('#btn_pretty_body').click(function(){
const syntax = $('#selectBodySyntax').val();
+
+ // FLAT view를 위해 생성된 데이터 -> 기존 업무데이터
+ bodyCodeEditor.setValue(bzwkdatatntInfo);
+
const value = bodyCodeEditor.getValue();
let prettyValue = value;
if(syntax === 'JSN'){
@@ -392,6 +400,7 @@
$('#btn_pretty_body').css('display', 'block');
bodyCodeEditor.setOption("mode", "application/json");
}else if(syntax === 'XML'){
+ $('#btn_pretty_body').css('display', 'block');
$('#btn_pretty_body').css('display', 'block');
bodyCodeEditor.setOption("mode", "application/xml");
}else{
@@ -789,6 +798,78 @@ $(document).ready(function() {
alert('전체 전문 복사되었습니다.')
});
+ // FLAT 데이터를 전문정보로 잘라서 JSON / XML VIEW 로 볼 수 있는 버튼
+ $('#btn_convert_view').click(function() {
+ var type = $('select[id=selectBodySyntax]').val();
+
+ if (!fullMessageData || !layoutInfo) {
+ alert("데이터가 없습니다.");
+ return;
+ }
+
+ parserCommon(fullMessageData, layoutInfo, type);
+ });
+
+ function parserCommon(flatData, layoutInfo, type) {
+ var cursor = 0;
+ var parsedList = [];
+
+ layoutInfo.forEach(function(field) {
+ var fieldLen = field.length;
+
+ if (fieldLen > 0) {
+ var rawValue = flatData.substring(cursor, cursor + fieldLen);
+
+ parsedList.push({
+ engName: field.name,
+ korName: field.desc || field.name,
+ value: rawValue // trim 금지.
+ });
+
+ cursor += fieldLen;
+ }
+ });
+
+ // CodeMirror 에디터에 값 세팅
+ var finalString = "";
+
+ if (type == "JSN") {
+
+ var jsonResult = {};
+
+ parsedList.forEach(function(item) {
+ jsonResult[item.engName] = {
+ "한글명": item.korName,
+ "값": item.value
+ };
+ });
+
+ finalString = JSON.stringify(jsonResult, null, 4);
+
+ } else if (type == "XML") {
+
+ var xmlResult = "