Files
eapim-admin/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp
T
daekuk 9bab1c8d1b - tab1,2 버튼 스타일 통일
- 여백수정
- pretty 버튼 클릭시 자동정렬
- api id/명 이름 통일
2026-02-23 18:02:28 +09:00

1238 lines
47 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/>
<style>
#tab4 div {
display: block;
overflow-wrap: break-word;
word-break: break-all;
white-space: normal;
}
</style>
<script language="javascript" >
// var eaiBzwkDstcd = window.dialogArguments["eaiBzwkDstcd"];
// var msgDpstYMS = window.dialogArguments["msgDpstYMS"];
// var eaiSvcSerno = window.dialogArguments["eaiSvcSerno"];
// var logPrcssSerno = window.dialogArguments["logPrcssSerno"];
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
var eaiBzwkDstcd = urlParams.get("eaiBzwkDstcd");
var msgDpstYMS = urlParams.get("msgDpstYMS");
var eaiSvcSerno = urlParams.get("eaiSvcSerno");
var logPrcssSerno = urlParams.get("logPrcssSerno");
let fullMessageData;
let layoutInfo = [];
let bzwkdatatntInfo;
var isPrettyView = false;
var eaiSvcCode = "";
var eaiMsg = "";
let bodyCodeEditor ;
let errStandardHeaderTextEditor = null;
// 데이터의 왼쪽에 0으로 채우는 함수 (표준전문 헤더의 전문길이 8자리 포맷 지정)
function lpad(str, len, chr)
{
var max = 0;
if(!str || !chr || str.length >= len)
{
return str;
}
max = len-str.length;
for(var i = 0; i < max; i++)
{
str = chr + str;
}
return str;
}
// 문자열 Byte 계산 함수 (표준전문 전체 길이 체크)
function getBytes(str) {
var orgVal = str;
var bytes =0;
for( var k=0;k < orgVal.length;k++) {
var tmp = orgVal.charAt(k);
var b=0;
if(escape(tmp).length > 4) {
b=2;
} else if( tmp != '\r' ) { // 리눅스는 \r를 인식하지 못함
b=1;
}
bytes += b;
}
return bytes;
}
// 표준전문 생성 함수
function getMsg(msgHeader, msgCommon, msgMsg, msgDataheader, msgBzwkdatactnt)
{
var tempEaiMsg = "";
if(msgMsg == null)
{
tempEaiMsg = msgHeader + msgCommon + msgDataheader + msgBzwkdatactnt + "@@";
}
else
{
tempEaiMsg = msgHeader + msgCommon + msgMsg + msgDataheader + msgBzwkdatactnt + "@@";
}
return tempEaiMsg;
}
function initializeEditGrid(gridName, layoutData){
const itemTypes = [{id:2, name:'Field'}, {id:3, name:'Group'}, {id:4, name:'Grid'}, {id:5, name:'Field Array'}, {id:9, name:'Biz Data'}];
let columns = [ // for columnData prop
{
title: '<%= localeMessage.getString("standardLayout.itemName") %>',
name: 'name',
type: 'text',
width: 230,
readOnly:true
},
{
title: '<%= localeMessage.getString("standardLayout.itemDesc") %>',
name: 'desc',
type: 'text',
width: 230,
readOnly:true
},
{
title: '<%= localeMessage.getString("standardLayout.itemLevel") %>',
name: 'level',
type: 'text',
width: 40,
readOnly:true
},
{
title: '<%= localeMessage.getString("tracking.columnType") %>',
name: 'type',
type: 'dropdown',
source: itemTypes,
width: 60,
readOnly:true
},
{
title: '<%= localeMessage.getString("tracking.length") %>',
name: 'length',
type: 'numeric',
width: 40,
align: 'center',
readOnly:true
},
{
title: '<%= localeMessage.getString("tracking.value") %>',
name: 'value',
type: 'text',
align: 'left',
width: 280,
readOnly:true
}
];
defaultEditGrid($('#'+gridName), columns, '', 'level', layoutData, 93, ['value']);
}
function selectHttpLog(url, prcsDate, guid, serviceProcessNumber){
$.ajax({
type : "GET",
url:url,
dataType:"json",
data:{cmd: 'DETAIL_HTTP_LOG', prcsDate, guid, serviceProcessNumber },
success:function(res){
$('#labelHttpMethod').text(res.httpMethod);
$('#labelUrl').text(res.url);
if(res.httpStatus > 0){
$('#httpStatusGroup').css('display', 'inline');
if(res.httpStatus >= 400){
$('#labelHttpStatus').css('color', '#d70000');
}
$('#labelHttpStatus').text(res.httpStatus);
}
res.headerList.forEach(header => {
$('#sectionHttpHeaders').append('<div><spen>'+header.name+':</spen> <spen style="color: #136fd9">'+header.value+'</spen></div>');
});
}
});
}
function extractDayOfWeek(datetimeStr) {
// 날짜를 각 부분으로 분리합니다.
const year = datetimeStr.substring(0, 4);
const month = datetimeStr.substring(4, 6);
const day = datetimeStr.substring(6, 8);
// JavaScript의 Date 객체는 월을 0에서 시작하므로 1을 빼줍니다.
const date = new Date(year, month - 1, day);
// getDay()는 일요일(0)부터 토요일(6)까지의 숫자를 반환합니다.
// 이를 1(일요일)부터 7(토요일)로 조정합니다.
return date.getDay() === 0 ? 1 : date.getDay() + 1;
}
function detail(url){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'DETAIL', eaiSvcSerno : eaiSvcSerno, logPrcssSerno:logPrcssSerno,eaiBzwkDstcd:eaiBzwkDstcd,msgDpstYMS:msgDpstYMS },
success:function(json){
var data = json;
const logDayOfWeek = extractDayOfWeek(json.MSGDPSTYMS);
const prcsDate = json.MSGDPSTYMS.substring(0, 8);
const isInboundPart = json.LOGPRCSSSERNO === '100' || json.LOGPRCSSSERNO === '400';
const isOutboundPart = json.LOGPRCSSSERNO === '200' || json.LOGPRCSSSERNO === '300';
const isInboundWithoutNet = !json.GSTATSYSADPTRBZWKGROUPNAME.includes('NET');
const isOutboundWithoutNet = !json.PSVSYSADPTRBZWKGROUPNAME.includes('NET');
fullMessageData = json.FULLMESSAGEDATA;
layoutInfo = json.standardHeader;
bzwkdatatntInfo = json.BZWKDATACTNT;
if((isInboundPart && isInboundWithoutNet) || (isOutboundPart && isOutboundWithoutNet)){
selectHttpLog(url, prcsDate, json.EAISVCSERNO.trim(), logPrcssSerno);
}else{
$("#tab4Button").hide();
}
$("#ajaxForm input,#ajaxForm textarea").each(function(){
var name = $(this).attr("name");
if (name == null || name==undefined || name=="") return;
var tag = $(this).prop("tagName").toLowerCase();
$(tag+"[name="+name+"]").val(data[name.toUpperCase()]);
//업체코드.업체명
if(name=="eaiSvcSerno"){
if(data["COMPANYCODE"] !=null && data["COMPANYCODE"].trim() != ''){
$("input[name=companyName]").val("["+data["COMPANYCODE"]+"] "+data[name.toUpperCase()]);
}
}
//RSPNSCHNGMSGTYPE 오류변환 =1
//if(data["LOGPRCSSSERNO"] == '400' && data["RSPNSCHNGMSGTYPE"] == '1'){
//$("#errorYn").text("[오류전문 레이아웃]");
//}
//서비스코드 추가
if(name == "eaiSvcName"){
eaiSvcCode = data["EAISVCNAME"];
}
});
// 거래고유번호 trim
var $svcSernoInput = $("input[name=eaiSvcSerno]");
if($svcSernoInput.val()) {
$svcSernoInput.val( $svcSernoInput.val().trim() );
}
$("input[name=gstatSysAdptrBzwkGroupName],input[name=psvSysAdptrBzwkGroupName]").each(function(){
var name = $(this).attr("name");
if ("${rmsMenuAuth}" =="W"){ //2020.07.08 admin 만 버튼보이게 수정
$("#"+name).show();
$("input[name="+name+"]").css("width","185px");
}
});
$("input[name=inptMsgIDName],input[name=chngMsgIdName],input[name=bascRspnsChngMsgIdName],input[name=errRspnsChngMsgIdName]").each(function(){
var name = $(this).attr("name");
if($("input[name="+name+"]").val().trim() != ""){
$("#"+name).show();
$("input[name="+name+"]").css("width","185px");
}
});
if(data.errStandardHeaderText != null && data.errStandardHeaderText != ''){
$("#grid1").hide();
$("#errStandardHeaderTextPart").css('display','block');
errStandardHeaderTextEditor = CodeMirror.fromTextArea(document.getElementById('errStandardHeaderTextarea'), {
lineNumbers : true,
matchBrackets : true,
autoCloseBrackets : false,
lineWrapping: true,
readOnly : true,
mode: "application/json",
gutters: ["CodeMirror-lint-markers"],
lint: true
});
const prettyValue = prettyJson(data.errStandardHeaderText);
errStandardHeaderTextEditor.setValue(prettyValue);
} else {
initializeEditGrid('grid1', json.standardHeader)
}
$("#tab2").hide();
if(data.subHeaderExist == '1') {
if(data.errSubHeaderText != null && data.errSubHeaderText != '') {
$("#grid3").hide();
$("#errStandardHeaderTextPart3").css('display','block');
errStandardHeaderTextEditor = CodeMirror.fromTextArea(document.getElementById('errStandardHeaderTextarea3'), {
lineNumbers : true,
matchBrackets : true,
autoCloseBrackets : false,
lineWrapping: true,
readOnly : true,
mode: "application/json",
gutters: ["CodeMirror-lint-markers"],
lint: true
});
const prettyValue = prettyJson(data.errStandardHeaderText);
errStandardHeaderTextEditor.setValue(prettyValue);
} else {
initializeEditGrid('grid3', json.subHeader)
}
}
else {
$("#tab3Button").hide();
$("#grid3").hide();
}
$("#tab3").hide();
if(json.xmlDataYn =="Y"){
$("#btn_xml").show();
$("#btn_json").show();
}
else {
$("#btn_xml").hide();
$("#btn_json").hide();
}
if(json.iso8583DataYn =="Y"){
$("#btn_iso8583").show();
}
else {
$("#btn_iso8583").hide();
}
if(json.orgDataYn =="Y" && json.iso8583DataYn !="Y"){
$("#btn_orgmsg").show();
}
else {
$("#btn_orgmsg").hide();
}
// if(json.bizDataYn =="Y"){
// $("#btn_bizmsg").show();
// }
// else {
// $("#btn_bizmsg").hide();
// }
if(json.inputMediaDataYn =="Y"){
$("#btn_inptmdia").show();
}
else {
$("#btn_inptmdia").hide();
}
const bodyTextarea = document.getElementById('bodyTextarea');
bodyCodeEditor = CodeMirror.fromTextArea(bodyTextarea, {
lineNumbers : false,
matchBrackets : true,
autoCloseBrackets : false,
lineWrapping: true,
readOnly : true,
});
const syntax = json.msgType;
// doChangeSyntax(syntax);
$('#selectBodySyntax').change(function(){
const syntax = $(this).val()
doChangeSyntax(syntax);
});
if(syntax === 'JSN' || syntax === 'XML'){
$('#selectBodySyntax').val(syntax).trigger('change');
}else{
$('#selectBodySyntax').val('TEXT').trigger('change');
};
$('#btn_pretty_body').click(function(){
const syntax = $('#selectBodySyntax').val();
const value = bodyCodeEditor.getValue();
let prettyValue = value;
if(syntax === 'JSN'){
prettyValue = vkbeautify.json(value);
}else if(syntax === 'XML'){
prettyValue = vkbeautify.xml(value).trim();
}
bodyCodeEditor.setValue(prettyValue);
});
//에러시 에러탭이 보이도록
if($("textarea[name=eaiErrCtnt]").val().trim() != ""){
$("ul.tabs li[rel=tab5]").click();
}
if(json.bizGridRows){
$("#grid4")[0].addJSONData(json); //업무데이터 그리드로 보여주기 추가
}else{
$('#btn_bizmsg').hide();
}
if(json.bizLogObjectDetail){
const decodeString = decodeURIComponent(escape(atob(json.bizLogObjectDetail)));
//$('#bizLogObjectText').text(decodeString);
document.getElementById('bizLogObjectText').innerText = decodeString;
}else{
$('#btn_bizLogObjectDetail').hide();
}
},
error:function(e){
alert(e.responseText);
}
});
}
function doChangeSyntax(syntax){
if(syntax === 'JSN'){
$('#btn_pretty_body').css('display', 'block');
bodyCodeEditor.setOption("mode", "application/json");
}else if(syntax === 'XML'){
$('#btn_pretty_body').css('display', 'block');
bodyCodeEditor.setOption("mode", "application/xml");
}else{
$('#btn_pretty_body').css('display', 'none');
bodyCodeEditor.setOption("mode", "text/plain");
}
}
function copy(obj){
var sel = obj.jqGrid('getGridParam', 'selrow');
var colmodel = obj.jqGrid('getGridParam',"colModel");
data = "";
for (var col = 1 ;col < colmodel.length;col++){
if(!colmodel[col].hidden ){
data += obj.jqGrid('getCell',sel,colmodel[col].name)+" ";
}
}
data +="\n";
window.clipboardData.setData("Text",data);
}
function fnModalClose(){
var opener = window.dialogArguments['self'];
var url = opener.document.location.href;
if(url.indexOf("pop=true")>0){
opener.fnModalClose();
top.opener = null;
top.window.close();
}else{
opener.document.location.href=opener.document.URL;
top.opener = null;
top.window.close();
}
}
var lastsel1;
var lastsel2;
var lastsel3;
var lastsel4;
function initDialog(){
$( '#bizLogObjectDialog' ).dialog({
autoOpen: false,
height: 900,
width: 1050,
modal: true,
buttons: {
Cancel: function() {
$( '#bizLogObjectDialog' ).dialog('close');
}
}
});
}
$(document).ready(function() {
var url ='<c:url value="/onl/transaction/tracking/trackingMan.json" />';
initDialog();
detail(url);
$('textarea').attr("readonly","readonly");
$('input').attr("readonly","readonly");
$('#grid4').jqGrid({ //업무데이터 변경 GRID
datatype : "json",
mtype : 'POST',
colNames : ['순서',
'이름',
'설명',
'값',
'길이'
],
colModel : [ { name : 'rownum', align : 'center', width:'30', editable : true, editoptions : {readonly : true} },
{ name : 'name', align : 'left', width:'110', editable : true, editoptions : {readonly : true} },
{ name : 'desc', align : 'left', width:'110', editable : true, editoptions : {readonly : true} },
{ name : 'value', align : 'left', editable : true, editoptions : {readonly : true} },
{ name : 'len', align : 'center', width:'30', editable : true, editoptions : {readonly : true} }
],
jsonReader : {
repeatitems : false,
root : "bizGridRows"
},
rowNum: 10000,
height : "287px",
autowidth : true,
viewrecords : true,
ondblClickRow: function(rowId) {
lastsel4=rowId;
$('#grid4').editRow(rowId,false);
},
onSelectRow: function(rowId,status){
$('#grid4').restoreRow((lastsel4)?lastsel4:rowId);
},
});
resizeJqGridWidth('grid4','tab1','1000');
$('#selectBodySyntax').select2({
minimumResultsForSearch: Infinity
});
$(".data_content").hide();
$(".tab_content").hide();
$(".tab_content:first").show();
$("#tab2").show();
$(".layout_btn").hide();
$(".adapter_btn").hide();
$("ul.tabs li").click(function () {
$("ul.tabs li").removeClass("active");
$(this).addClass("active");
$(".tab_content").hide();
var activeTab = $(this).attr("rel");
$("#" + activeTab).show();
if(activeTab === 'tab2' && errStandardHeaderTextEditor != null){
setTimeout(function() {
// $('#errStandardHeaderTextarea').click();
errStandardHeaderTextEditor.focus();
errStandardHeaderTextEditor.setCursor({line: 0, ch: 0})
}, 10);
}
});
$("ul.tabs li[rel=tab2]").dblclick(function () {
var data = $("input[name=realHeader]").val();
var body = $("textarea[name=bzwkDataCtnt]").val();
var objBody = null;
try{
objBody = JSON.parse(body);
}catch(e){
}
if (objBody != null){
var objData = JSON.parse(data);
objData["Body"] = objBody;
data = JSON.stringify(objData);
}
if (isChromeBrowse()){
if (typeof(navigator.clipboard) =='undefined'){
var textArea = document.createElement("textarea");
textArea.value = data;
textArea.style.position="fixed";
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
var successful = false;
try{
successful = document.execCommand('copy');
}catch(err){
}
document.body.removeChild(textArea);
if (!successful){
prompt("Ctrl+C 를 눌러 클립보드로 복사하세요.",data);
}
}else{
navigator.clipboard.writeText(data).then(function (){});
}
}else{
window.clipboardData.setData("Text", data);
}
});
$("#btn_close").click(function(){
window.close();
});
$("#btn_xml").click(function(){
var url = '<c:url value="/onl/transaction/tracking/trackingMan.json" />';
url += "?cmd=DETAIL_XML";
url += '&eaiSvcSerno=' +$("input[name=eaiSvcSerno]").val();
url += '&msgDpstYMS=' +$("input[name=msgDpstYMS]").val();
url += '&eaiBzwkDstcd=' +$("input[name=eaiBzwkDstcd]").val();
url += '&logPrcssSerno=' +$("input[name=logPrcssSerno]").val();
var showXml = windowOpen(url,"showXML",700,600,",location=0,menubar=0,titlebar=0,toolbar=0,status=0,directories=0,resizable=no,scrollbars=yes");
showXml.focus();
// showModal2(url,"showXML",700,600);
});
$("#btn_json").click(function(){
var url = '<c:url value="/common/jsp/popupJson.jsp" />';
url += "?cmd=DETAIL_JSON";
url += '&eaiSvcSerno=' +$("input[name=eaiSvcSerno]").val();
url += '&msgDpstYMS=' +$("input[name=msgDpstYMS]").val();
url += '&eaiBzwkDstcd=' +$("input[name=eaiBzwkDstcd]").val();
url += '&logPrcssSerno=' +$("input[name=logPrcssSerno]").val();
var showJson = windowOpen(url, "showJSON", 1000, 700, ",location=0,menubar=0,titlebar=0,toolbar=0,status=0,directories=0,resizable=no,scrollbars=yes");
showJson.focus();
});
$("#btn_ebcdic").click(function(){
var url = '<c:url value="/onl/transaction/tracking/trackingMan.json" />';
url += "?cmd=DETAIL_EBCDIC";
url += '&eaiSvcSerno=' +$("input[name=eaiSvcSerno]").val();
url += '&msgDpstYMS=' +$("input[name=msgDpstYMS]").val();
url += '&eaiBzwkDstcd=' +$("input[name=eaiBzwkDstcd]").val();
url += '&logPrcssSerno=' +$("input[name=logPrcssSerno]").val();
var showXml = windowOpen(url,"showMessage",700,600);
showXml.focus();
});
$("#btn_bizLogObjectDetail").click(function(){
$( '#bizLogObjectDialog' ).dialog("open");
});
$("#btn_orgmsg").click(function(){
var url = '<c:url value="/onl/transaction/tracking/trackingMan.json" />';
url += "?cmd=DETAIL_ORG";
url += '&eaiSvcSerno=' +$("input[name=eaiSvcSerno]").val();
url += '&msgDpstYMS=' +$("input[name=msgDpstYMS]").val();
url += '&eaiBzwkDstcd=' +$("input[name=eaiBzwkDstcd]").val();
url += '&logPrcssSerno=' +$("input[name=logPrcssSerno]").val();
url += '&serviceType=DSG';
showModal2(url,"showXML",700,300,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
$("#btn_iso8583").click(function(){
var url = '<c:url value="/onl/transaction/tracking/trackingMan.json" />';
url += "?cmd=DETAIL_8583";
url += '&eaiSvcSerno=' +$("input[name=eaiSvcSerno]").val();
url += '&msgDpstYMS=' +$("input[name=msgDpstYMS]").val();
url += '&eaiBzwkDstcd=' +$("input[name=eaiBzwkDstcd]").val();
url += '&logPrcssSerno=' +$("input[name=logPrcssSerno]").val();
url += '&serviceType=DSG';
showModal2(url,"showXML",700,300,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
//업무데이터 그리드로 보여주기
$("#btn_bizmsg").click(function(){
if($(".data_content").css("display") == "none"){
$("#data_org").hide();
$(".data_content").show();
// $("#btn_excel").show();
}else{
$("#data_org").show();
$(".data_content").hide();
// $("#btn_excel").hide();
}
});
//입력매체부 팝업
$("#btn_inptmdia").click(function(){
var args = new Object();
args['eaiSvcSerno'] = $("input[name=eaiSvcSerno]").val();
args['msgDpstYMS'] = $("input[name=msgDpstYMS]").val();
args['eaiBzwkDstcd'] = $("input[name=eaiBzwkDstcd]").val();
args['logPrcssSerno'] = $("input[name=logPrcssSerno]").val();
var url = '<c:url value="/onl/transaction/tracking/trackingMan.view" />';
url += "?cmd=DETAILPOPUP";
url += '&pop=true';
showModal2(url,args,800,600,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
//EAI 서비스코드 팝업
$("#eaiSvcName").click(function(){
var selectId = $(this).attr('id');
var eaiSvcName = $("input[name="+selectId+"]").val();
if($.trim(eaiSvcName) =="") return;
var args = new Object();
var url = '<c:url value="/onl/admin/service/eaiMsgMan.view" />';
url += "?cmd=DETAILPOPUP";
url += '&eaiSvcName='+eaiSvcName;
url += '&pop=true';
showModal2(url,args,1000,1218,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
//기동 수동 어댑터 팝업
$("#gstatSysAdptrBzwkGroupName,#psvSysAdptrBzwkGroupName").click(function(){
var selectId = $(this).attr('id');
var adptrBzwkGroupName = $("input[name="+selectId+"]").val();
if($.trim(adptrBzwkGroupName) =="") return;
var args = new Object();
var url = '<c:url value="/onl/admin/adapter/adapterMan.view" />';
url += "?cmd=DETAILPOPUP";
url += '&adptrBzwkGroupName='+adptrBzwkGroupName;
url += '&pop=true';
showModal2(url,args,1000,1218,'','scroll:on',false);
});
$("input[name=inptMsgIDName]").dblclick(function(){
var layoutName = $(this).val();
if($.trim(layoutName) =="") return;
var args = new Object();
var url = '<c:url value="/onl/admin/rule/layoutMan.view" />';
url += "?cmd=DETAILPOPUP";
url += '&loutName='+layoutName;
url += '&pop=true';
showModal2(url,args,890,940,'','scroll:on',false);
});
$("#inptMsgIDName").click(function(){
var selectId = $(this).attr('id');
var layoutName = $("input[name="+selectId+"]").val();
if($.trim(layoutName) =="") return;
var args = new Object();
var url = '<c:url value="/onl/admin/rule/layoutMan.view" />';
url += "?cmd=DETAILPOPUP";
url += '&loutName='+layoutName;
url += '&pop=true';
showModal2(url,args,890,940,'','scroll:on',false);
});
$("input[name=chngMsgIdName], input[name=bascRspnsChngMsgIdName],input[name=errRspnsChngMsgIdName]").dblclick(function(){
var name = $(this).attr('name');
if($("input[name="+name+"]").val().trim() == ""){
alert("데이터 없음");
return false;
}
if($.trim(name) =="") return;
var args = new Object();
var eaiSvcName = $("input[name=eaiSvcName]").val();
var cnvsnName = $(this).val();
//args['cnvsnDesc'] = $("input[name=cnvsnName_"+gbn+"]").val();
var url='<c:url value="/onl/transaction/tracking/trackingMan.view"/>';
url += '?cmd=TRANSFORMPOPUP2';
//key값
url += '&cnvsnName='+cnvsnName;
url += '&eaiSvcName='+eaiSvcName;
var ret = showModal2(url,args,1750,750,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
$("#chngMsgIdName, #bascRspnsChngMsgIdName ,#errRspnsChngMsgIdName").click(function(){
var name = $(this).attr('id');
if($("input[name="+name+"]").val().trim() == ""){
alert("데이터 없음");
return false;
}
if($.trim(name) =="") return;
var args = new Object();
var eaiSvcName = $("input[name=eaiSvcName]").val();
var cnvsnName = $("input[name="+name+"]").val();
//args['cnvsnDesc'] = $("input[name=cnvsnName_"+gbn+"]").val();
var url='<c:url value="/onl/transaction/tracking/trackingMan.view"/>';
url += '?cmd=TRANSFORMPOPUP2';
//key값
url += '&cnvsnName='+cnvsnName;
url += '&eaiSvcName='+eaiSvcName;
var ret = showModal2(url,args,1750,750,undefined,"scroll:yes;status:no;resizable:yes;", false);
});
$("input[name=msgDpstYMS],input[name=msgPrcssYMS]").inputmask("9999-99-99 99:99:99.999",{'autoUnmask':true});
$("#sp_bzwkData").dblclick(function(){
window.clipboardData.setData("Text", eaiMsg);
});
if(isChromeBrowse()){
$("html, hbody").css("overflow-x","scroll");
}
$('#headerToClipboard').click(function(){
if($('#grid1').get(0) == null || $('#grid1').get(0).jexcel == null){
return;
}
const jexcelGrid = $('#grid1').get(0).jexcel;
const data = jexcelGrid.getData();
let paddedValues = "";
for (let row of data) {
paddedValues += row[5].padEnd(row[4], " ");
}
navigator.clipboard.writeText(paddedValues);//클립보드로 복사
alert('헤더값이 복사되었습니다.')
});
$('#messageToClipboard').click(function() {
navigator.clipboard.writeText(fullMessageData);//클립보드로 복사
alert('전체 전문 복사되었습니다.')
});
$('#btn_pretty_print').click(function () {
var $button = $(this);
// Pretty View → 원본 복구
if (typeof isPrettyView !== 'undefined' && isPrettyView) {
var originalData = (typeof bzwkdatatntInfo !== 'undefined')
? bzwkdatatntInfo
: "";
if (typeof bodyCodeEditor !== 'undefined') {
bodyCodeEditor.setValue(originalData);
}
isPrettyView = false;
$button.text("PRETTY_PRINT");
return;
}
var intrefaceId = ($("input[name=eaiSvcName]").val() || "").trim();
var logProcessNo = ($("input[name=logPrcssSerno]").val() || "").trim();
var bizData = (typeof bzwkdatatntInfo !== 'undefined')
? bzwkdatatntInfo
: "";
var error = false;
if (!intrefaceId || !logProcessNo || !bizData) {
alert("필수값이 누락되어 조회가 불가능합니다.");
return;
}
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: {
cmd: "DETAIL_PRETTY_VIEW",
intrefaceId: intrefaceId,
logProcessNo: logProcessNo,
bizData: bizData
},
success: function (response) {
var xmlString = response.result;
if (xmlString) {
if (typeof bodyCodeEditor !== 'undefined') {
bodyCodeEditor.setValue(xmlString);
}
$('#selectBodySyntax')
.val('XML')
.trigger('change');
$('#btn_pretty_body').click();
isPrettyView = true;
$button.text("업무데이터 보기");
} else {
alert("변환된 데이터 내용이 없습니다.");
}
},
error: function (xhr, status, error) {
console.error("AJAX Error:", xhr);
var errorMsg = "처리 중 오류가 발생했습니다.";
if (xhr.responseJSON) {
var errResponse = xhr.responseJSON;
if (errResponse.result) {
errorMsg = errResponse.result;
}
else if (errResponse.message) {
errorMsg = errResponse.message;
}
}
// JSON 파싱 실패 대비
else if (xhr.responseText) {
errorMsg = xhr.responseText;
}
alert(errorMsg);
}
});
});
});
</script>
<style>
.dialog_confirm{
/* position : absolute; */
left:0px;
top: 0px;
width:100%;
height:100%;
text-align:center;
z-index:1000;
}
html,hbody {
overflow-x:hidden;
}
</style>
</head>
<body>
<div class="popup_scrollbox">
<div class="search_wrap">
<%-- <img src="<c:url value="/img/btn_close.png"/>" alt="" id="btn_close" level="R" /> --%>
<button type="button" class="cssbtn" id="btn_close" level="R"><i class="material-icons">cancel</i> <%= localeMessage.getString("button.close") %></button>
</div>
<div class="title"><%=localeMessage.getString("trackingDetail.logDetail")%></div>
<form id="ajaxForm">
<input type=hidden name=realHeader>
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.common")%></div>
<table class="table_row" cellspacing="0">
<tr>
<th><%=localeMessage.getString("trackingDetail.eaiSvcSerno")%></th>
<td colspan="3"><input type="text" name="eaiSvcSerno" readonly="readonly"/> </td>
</tr>
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.eaiBzwkDstcd")%></th>
<td style="width:30%;"><input type="text" name="eaiBzwkDstcd" readonly="readonly"/> </td>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.msgDpstYMS")%></th>
<td style="width:30%;"><input type="text" name="msgDpstYMS" readonly="readonly"/> </td>
</tr>
<tr>
<th><%= localeMessage.getString("eaiMessage.eaiSvcName")%></th><td><input type="text" name="eaiSvcName" readonly="readonly" />
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="eaiSvcName" class="eaiSvcName_btn" /> --%>
<%-- <button type="button" class="cssbtn smallBtn2" id="eaiSvcName" style="vertical-align:middle; font-weight:bold;"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>--%>
</td>
<th><%=localeMessage.getString("trackingDetail.msgPrcssYMS")%></th><td><input type="text" name="msgPrcssYMS" readonly="readonly"/> </td>
</tr>
<tr>
<th><%= localeMessage.getString("eaiMessage.eaiSvcDesc")%></th><td><input type="text" name="eaiSvcDesc" readonly="readonly"/> </td>
<th>ORG GUID</th><td><input type="text" name="pguid" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.keyMgtMsgCtnt")%></th><td><input type="text" name="keyMgtMsgCtnt" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.logPrcssSerno")%></th><td><input type="text" name="logPrcssSerno" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.eaiSevrInstncName")%></th>
<td><input type="text" name="eaiSevrInstncName" readonly="readonly"/> </td>
<th>Client IP</th>
<td><input type="text" name="clientip" readonly="readonly"/> </td>
</tr>
<%-- <tr>
<th><%=localeMessage.getString("trackingDetail.tranType")%></th><td><input type="text" name="tranType" readonly="readonly"/></td>
<th><%=localeMessage.getString("trackingDetail.svcHMSEonot")%></th><td><input type="text" name="svcHMSEonot" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("tracking.companyname")%></th><td ><input type="text" name="companyName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("tracking.osidinstinm")%></th><td><input type="text" name="adptrInstiName" readonly="readonly"/> </td>
</tr> --%>
</table>
<div class="table_row_title">API 정보</div>
<table class="table_row" cellspacing="0">
<tr>
<th style="width:20%;">APP(Client) ID</th>
<td style="width:30%;"><input type="text" name="clientId" readonly="readonly"/> </td>
<th style="width:20%;">APP 명</th>
<td style="width:30%;"><input type="text" name="clientName" readonly="readonly"/> </td>
</tr>
<tr>
<th>법인 ID</th><td ><input type="text" name="orgId" readonly="readonly"/> </td>
<th>법인명</th><td><input type="text" name="orgName" readonly="readonly"/> </td>
</tr>
</table>
<div id="container-1">
<ul class="tabs">
<li class="active" rel="tab1"><%=localeMessage.getString("trackingDetail.BizData")%></li>
<li rel="tab2"><%=localeMessage.getString("trackingDetail.Header")%></li>
<li id="tab3Button" rel="tab3"><%=localeMessage.getString("trackingDetail.SubHeader")%></li>
<li id="tab4Button" rel="tab4">HTTP</li>
<li rel="tab5"><%=localeMessage.getString("trackingDetail.Error")%></li>
</ul>
<div class="tab_container">
<div id="tab1" class="tab_content" >
<table id="grid" ></table>
<div style="margin-top:0px; margin-bottom:10px;">
<table width="100%"><tr>
<td width="90%">
<!--
<img id="btn_xml" src="<c:url value="/img/btn_show_xml.png" />" class="btn_img" style="display: none;"/>
<img id="btn_json" src="<c:url value="/img/btn_show_json.png" />" class="btn_img" style="display: none;"/>
-->
<%-- <img id="btn_orgmsg" src="<c:url value="/img/btn_detail.png" />" class="btn_img" style="display: none;"/> --%>
<button type="button" class="cssbtn" id="btn_orgmsg" ><i class="material-icons">details</i> <%= localeMessage.getString("button.detail") %></button>
<button type="button" class="cssbtn" id="btn_iso8583" ><i class="material-icons">details</i> <%= localeMessage.getString("button.detail") %></button>
<button type="button" class="cssbtn" id="btn_bizmsg" ><i class="material-icons">window</i> <%=localeMessage.getString("button.gridView")%></button>
<button type="button" class="cssbtn" id="btn_bizLogObjectDetail" ><i class="material-icons">details</i> <%=localeMessage.getString("button.detail")%></button>
<img id="btn_inptmdia" src="<c:url value="/img/btn_inmedia.png" />" class="btn_img" style="display: none;"/>
<%-- <img id="btn_excel" src="<c:url value="/img/btn_excel.png" />" class="btn_img" style="display: none;"/>--%>
</td>
<td>
<button type="button" class="cssbtn" id="messageToClipboard" ><i class="material-icons">content_paste</i> 전문복사</button>
</td>
<td>
<button type="button" class="cssbtn" id="btn_pretty_body" ><i class="material-icons">format_align_left</i> <%= localeMessage.getString("trackingDetail.btnMakePretty") %></button>
</td>
<td>
<button type="button" class="cssbtn" id="btn_pretty_print" ><i class="material-icons">format_align_left</i>PRETTY_PRINT</button>
</td>
<td style="text-align: right;">
<span style="text-align: center;">
<select id="selectBodySyntax" style="width:100px;">
<option value="TEXT">Text</option>
<option value="XML">XML</option>
<option value="JSN">JSON</option>
</select>
</span>
</td>
<td width="10px">&nbsp;</td>
<td>
<span id = "errorYn"></span>
</td>
</tr></table>
</div>
<div></div>
<table class="table_row" cellspacing="0" id="data_org" >
<tr>
<td style="max-width: 500px">
<textarea id="bodyTextarea" rows="" cols="" name="bzwkDataCtnt" style="width: 100%;height:192px"></textarea>
</td>
</tr>
</table>
<div class="data_content"><table id="grid4"></table></div>
</div><!-- end#tab1 -->
<div id="tab2" class="tab_content">
<div style="display: flex; justify-content: flex-end;">
<button type="button" class="cssbtn" id="headerToClipboard" style="vertical-align:middle; margin-bottom:10px; "><i class="material-icons">content_paste</i> 헤더 복사</button>
</div>
<div id="grid1" ></div>
<div id="errStandardHeaderTextPart" style="display: none">
<div id="errStandardHeaderMessage" style="color:#BE2E22; font-weight: bold"> Header part that failed analysis</div>
<textarea id="errStandardHeaderTextarea" style="width: 100%;height:192px"></textarea>
</div>
</div><!-- end#tab2 -->
<div id="tab3" class="tab_content">
<div id="grid3" ></div>
<div id="errStandardHeaderTextPart3" style="display: none">
<div id="errStandardHeaderMessage3" style="color:#BE2E22; font-weight: bold"> Header part that failed analysis</div>
<textarea id="errStandardHeaderTextarea3" style="width: 100%;height:192px"></textarea>
</div>
</div><!-- end#tab2 -->
<div id="tab4" class="tab_content">
<div>
<label style="color: #888888;">Method:</label>
<label id="labelHttpMethod" style="font-weight: bold"></label>
<label style="color: #888888; margin-left: 15px;">Url:</label>
<label id="labelUrl"></label>
<span id="httpStatusGroup" style="display:none">
<label style="color: #888888; margin-left: 15px;">Status:</label>
<label id="labelHttpStatus" style="color: #00ab11;"></label>
</span>
</div>
<br/>
<div>
<div>[Headers]</div>
<div id="sectionHttpHeaders"></div>
</div>
</div><!-- end#tab2 -->
<div id="tab5" class="tab_content">
<div style="margin-bottom:15px;">[<%=localeMessage.getString("trackingDetail.errorInfo")%>]</div>
<table class="table_row" cellspacing="0">
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.eaiErrCd")%></th>
<td style="width:80%;"><input type="text" name="eaiErrCd"/></td>
</tr>
<tr>
<td colspan="2"><textarea rows="" cols="" name="eaiErrCtnt" style="width: 100%;height:198px"></textarea></td>
</tr>
</table>
</div><!-- end#tab5 -->
</div><!-- end.tab_container -->
</div><!-- end.container-1 -->
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.inbound")%></div>
<table class="table_row" cellspacing="0" >
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.svcMotivUseDstcd")%></th>
<td style="width:30%;"><input type="text" name="svcMotivUseDstcd" readonly="readonly"/> </td>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.gstatSysAdptrBzwkGroupName")%></th>
<td style="width:30%;"><input type="text" name="gstatSysAdptrBzwkGroupName" readonly="readonly"/>
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="gstatSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
<button type="button" class="cssbtn smallBtn2" id="gstatSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.flowCtrlRoutName")%></th><td><input type="text" name="flowCtrlRoutName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.stndMsgUseYn")%></th><td><input type="text" name="stndMsgUseYn" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.svcPrcssDsticName")%></th><td><input type="text" name="svcPrcssDsticName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.svcBfClmnLogYn")%></th><td><input type="text" name="svcBfClmnLogYn" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.svcPrcssNo")%></th><td><input type="text" name="svcPrcssNo" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.intgraDsticName")%></th><td><input type="text" name="intgraDsticName" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.gstatSvcDsticName")%></th><td><input type="text" name="gstatSvcDsticName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.prsntMsgIdName")%></th><td><input type="text" name="prsntMsgIdName" readonly="readonly"/> </td>
</tr>
</table>
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.outbound")%></div>
<table class="table_row" cellspacing="0" >
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvIntfacDsticName")%></th>
<td style="width:30%;"><input type="text" name="psvIntfacDsticName" readonly="readonly"/> </td>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvSysAdptrBzwkGroupName")%></th>
<td style="width:30%;"><input type="text" name="psvSysAdptrBzwkGroupName" readonly="readonly"/>
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="psvSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
<button type="button" class="cssbtn smallBtn2" id="psvSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.outbndRoutName")%></th><td><input type="text" name="outbndRoutName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.toutVal")%></th><td><input type="text" name="toutVal" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.psvSysSvcDsticName")%></th><td><input type="text" name="psvSysSvcDsticName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.psvBzwkSysName")%></th><td><input type="text" name="psvBzwkSysName" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.rspnsErrFldName")%></th><td><input type="text" name="rspnsErrFldName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.psvSysIdName")%></th><td><input type="text" name="psvSysIdName" readonly="readonly"/> </td>
</tr>
</table>
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.MAPPING")%></div>
<table class="table_row" cellspacing="0" >
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.chngYn")%></th>
<td style="width:30%;"><input type="text" name="chngYn" readonly="readonly"/> </td>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.chngMsgIdName")%></th>
<td style="width:30%;"><input type="text" name="chngMsgIdName" readonly="readonly"/>
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="chngMsgIdName" class="layout_btn" /-->
<button type="button" class="cssbtn smallBtn2" id="chngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngYn")%></th><td><input type="text" name="bascRspnsChngYn" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngMsgIdName")%></th>
<td>
<input type="text" name="bascRspnsChngMsgIdName" readonly="readonly"/>
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="bascRspnsChngMsgIdName" class="layout_btn" /-->
<button type="button" class="cssbtn smallBtn2" id="bascRspnsChngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.errRspnsChngYn")%></th><td><input type="text" name="errRspnsChngYn" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.errRspnsChngMsgIdName")%></th>
<td>
<input type="text" name="errRspnsChngMsgIdName" readonly="readonly"/>
<img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="errRspnsChngMsgIdName" class="layout_btn" /> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.inptMsgIDName")%></th>
<td>
<input type="text" name="inptMsgIDName" readonly="readonly" />
<img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="inptMsgIDName" class="layout_btn" /> </td>
<th><%=localeMessage.getString("trackingDetail.errRspnsMsgCmprCtnt")%></th><td><input type="text" name="errRspnsMsgCmprCtnt" readonly="readonly" /> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.bascRspnsMsgCmprCtnt")%></th><td><input type="text" name="bascRspnsMsgCmprCtnt" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.flovrYn")%></th><td><input type="text" name="flovrYn" readonly="readonly"/> </td>
</tr>
</table>
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.etc")%></div>
<table class="table_row" cellspacing="0" >
<tr>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.rspnsErrcdName")%></th>
<td style="width:30%;"><input type="text" name="rspnsErrcdName" readonly="readonly"/> </td>
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.sevrLogLvelNo")%></th>
<td style="width:30%;"><input type="text" name="sevrLogLvelNo" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.svcLogLvelNo")%></th><td><input type="text" name="svcLogLvelNo" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.errEAISvcName")%></th><td><input type="text" name="errEAISvcName" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.dmndErrChngIDName")%></th><td><input type="text" name="dmndErrChngIDName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.dmndErrFldName")%></th><td><input type="text" name="dmndErrFldName" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.rspnsErrChngIdName")%></th><td><input type="text" name="rspnsErrChngIdName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.nextSvcPrcssNo")%></th><td><input type="text" name="nextSvcPrcssNo" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.sevrGroupName")%></th><td><input type="text" name="sevrGroupName" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.cmpenSvcPrcssName")%></th><td><input type="text" name="cmpenSvcPrcssName" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.trackAsisKey1Ctnt")%></th><td><input type="text" name="trackAsisKey1Ctnt" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.trackAsisKey2Ctnt")%></th><td><input type="text" name="trackAsisKey2Ctnt" readonly="readonly"/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("trackingDetail.trackAsisKey3Ctnt")%></th><td><input type="text" name="trackAsisKey3Ctnt" readonly="readonly"/> </td>
<th><%=localeMessage.getString("trackingDetail.trackAsisKey4Ctnt")%></th><td><input type="text" name="trackAsisKey4Ctnt" readonly="readonly"/> </td>
</tr>
</table>
</form>
</div><!-- end.popup_box -->
<div id="bizLogObjectDialog" style="white-space: pre-wrap; overflow-y:auto" title="Biz Log Object Detail">
<div id="bizLogObjectText" style="font-family:'Courier';margin-top:-30px;margin-bottom:-30px"></div>
</div>
</body>
</html>