123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : HIT
- * Job Name :
- * File Name : comm_tran.xjs
- * Creator : 임준호
- * Make Date : 2014-02-18
- *
- * Description :
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2014-02-18 HIT
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
-
- /********************************************************************************************************************/
- /************************* 트랜잭션 관련 함수 *********************************************************************/
- /********************************************************************************************************************/
- // tranf_submit : 공통 Transaction
- // tranf_submitCdw : CDW용 Transaction (신규 2014-05-15)
- // tranf_transaction : 기본 Transaction - !!! 업무화면에서는 사용하면 안됨!!!
- // tranf_surrogate : 임시로그인을 위하여 세션토큰을 서버에서 받아와 세션토큰 값을 교체한다.
- // tranf_transactionCallback : 공통 Transaction Callback
- //var SPLITCHAR = "▥"; //Split구분상수
- var SERVER_DEF = "SVR::";
- var SERVER_DEF_CDW = "SVR_CDW::";
- //var SERVER_DEF_SSL = "SVR_SSL::";
- /********************************************************************************************************************/
- /************************* 트랜잭션 관련 함수 *********************************************************************/
- /********************************************************************************************************************/
- /**********************************************************************************
- * 함수명 : tranf_submit
- * 설 명 : 공통 Transaction
- * argument : param.id - transaction을 구분하기 위한 ID
- * : param.service - service ID
- * : param.method - method ID
- * : param.inds - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- * : param.outds - transaction을 처리 결과를 받을 Dataset의 ID
- * : param.args - transaction을 위한 인자값
- * : param.callback - transaction의 결과를 돌려줄 Function의 이름
- * : param.progress - Progress 사용여부 확인) (true : 사용-default, false : 사용안함
- * : param.async - 비동기 여부를 지정 (true : 비동기, false : 동기)
- * : param.alert - 트랙잭션 완료시 메시지박스 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.error - 에러 발생시 경고 창 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.surrogate - 임시로그인 - userid='ENRBC' dutplcecd='B051'
- * : param.typeStr - 사용자 정의 row type 구분자
- * : param.force - session timeout 에 상관없이 transaction이 실행(true : 사용, false : 사용안함-default)
- * : sSystem - transaction을 수행할 system구분, null일 경우 EMR
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_submit_20180601(param, sSystem){
-
- // quick view 모드이고 세션이 null 이면 서버를 호출하여 개발자가 지정한 세션을 받아옴
- if(sysf_isQuickView() && utlf_isNull(gv_sSessionToken)) {
- tranf_transaction("tr_quicksession", SERVER_DEF+"target=hismainapp.Login&method=reqGetTempSessionInfo", "req=gds_userInfo",
- "gds_userInfo=userinfo gds_systemInfo=systeminfo", undefined, undefined, undefined, false,
- undefined, undefined, undefined, undefined);
- }
- // gv_sSessionToken 정보가 특정 시점에 변경되는 현상이 있어서 트랜잭션시 "sessioninfo" (원본 세션값)으로 다시 갱신 하도록 함 2017.03.02 smkim
- var sessioninfo = gds_userInfo.getColumn(0, "sessioninfo");
- if(!utlf_isNull(gv_sSessionToken) && !utlf_isNull(sessioninfo) && (sessioninfo != gv_sSessionToken)) {
- sysf_accountTrace("submit에서 토큰 다른 경우");
- var scnID = frmf_getScreenID();
- trace("ScreenID : " + scnID + "\nparam.id : " + param.id + "\nparam.service : " + param.service + "\nparam.method : " + param.method +
- "\ngv_sSessionToken : " + gv_sSessionToken + "\nsessioninfo : " +sessioninfo);
- }
-
- gv_sSessionToken = sessioninfo;
- gv_sSessionToken_ENC = gds_userInfo.getColumn(0,"sessioninfo_enc");
-
- var sSvcID = "";
- var serverTarget = "";
-
- var sScreenID = frmf_getScreenID();
-
- //transaction system 구분 null일 경우 emr
- var sUrl = "";
- if(utlf_isNull(sSystem)){
- sUrl = SERVER_DEF;
- }else if(sSystem = "CDW"){
- sUrl = SERVER_DEF_CDW;
- }
- sUrl = sUrl + "target="+param.service+"&method="+param.method+"&submit_id="+param.id+"&screen_id="+sScreenID;
-
-
- if(utlf_isNull(param.id)){
- sSvcID = "tr_"+param.service+"_"+param.method;
- }else{
- sSvcID = param.id;
- }
- utlf_addLog("sSvcID ; " + sSvcID );
- /*
- if(utlf_isNull(param.inds)) param.inds = "";
-
- if(utlf_isNull(param.outds)) param.outds = "";
-
- if(utlf_isNull(param.args)) param.args = "";
-
- if(utlf_isNull(param.callback)) param.callback = "";
-
- if((param.progress != true) && (param.progress != false)) param.progress = true;
-
- if((param.async != true) && (param.async != false)) param.async = false;
-
- if((param.alert != true) && (param.alert != false)) param.alert = true;
- */
- tranf_transaction(sSvcID
- , sUrl
- , param.inds
- , param.outds
- , param.args + " screen_id=" + wrapQuote(sScreenID)
- , param.callback
- , param.progress
- , param.async
- , param.alert
- , param.error
- , param.surrogate
- , param.typeStr
- , param.force
- , param.transaction);
- }
- /**********************************************************************************
- * 함수명 : tranf_submit
- * 설 명 : 공통 Transaction
- * argument : param.id - transaction을 구분하기 위한 ID
- * : param.service - service ID
- * : param.method - method ID
- * : param.inds - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- * : param.outds - transaction을 처리 결과를 받을 Dataset의 ID
- * : param.args - transaction을 위한 인자값
- * : param.callback - transaction의 결과를 돌려줄 Function의 이름
- * : param.progress - Progress 사용여부 확인) (true : 사용-default, false : 사용안함
- * : param.async - 비동기 여부를 지정 (true : 비동기, false : 동기)
- * : param.alert - 트랙잭션 완료시 메시지박스 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.error - 에러 발생시 경고 창 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.surrogate - 임시로그인 - userid='ENRBC' dutplcecd='B051'
- * : param.typeStr - 사용자 정의 row type 구분자
- * : param.force - session timeout 에 상관없이 transaction이 실행(true : 사용, false : 사용안함-default)
- * : sSystem - transaction을 수행할 system구분, null일 경우 EMR
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_submit(param, sSystem){
- // Start of 메세지 처리를 위한 변수 추가
- var bRtn = true;
- var sReTranYn = "Y"; // 처음 한번은 Call 하도록 설정(오류가 있을경우 화면에서 처리 하고, 다시 Call 하도록
-
- var sMsgNo = "";
- var nHistNo = 0; // tran 호출 횟수
- var nBfOpCnt = 0; // tran전 오픈 카운트
- var nBfOpCnt = 0; // tran전 오픈 카운트
- var nAfOpCnt = 0; // tran후 오픈 카운트
- var nExcpCnt = 0; // 예외 항목
- var nErroCnt = 0; // 에러 항목
- var nResnCnt = 0; // 사유 입력 항목
- var nInfoCnt = 0; // 정보 확인 항목
-
- var ds_sys = null; // 메세지 처리 APP으로 넘기는 메세지정보 데이터셋 중복을 피하기위해 키값으로 생성
- var ds_arg_sys = null; // 메세지 처리 화면으로 넘기는 arg 데이터셋 중복을 피하기위해 키값으로 생성
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = this.getOwnerFrame().position.x + 50;
- var ypt = this.getOwnerFrame().position.y + 50;
- // End of 메세지 처리를 위한 변수 추가
-
- // quick view 모드이고 세션이 null 이면 서버를 호출하여 개발자가 지정한 세션을 받아옴
- if(sysf_isQuickView() && utlf_isNull(gv_sSessionToken)) {
- tranf_transaction("tr_quicksession", SERVER_DEF+"target=hismainapp.Login&method=reqGetTempSessionInfo", "req=gds_userInfo",
- "gds_userInfo=userinfo gds_systemInfo=systeminfo", undefined, undefined, undefined, false,
- undefined, undefined, undefined, undefined);
- }
- // gv_sSessionToken 정보가 특정 시점에 변경되는 현상이 있어서 트랜잭션시 "sessioninfo" (원본 세션값)으로 다시 갱신 하도록 함 2017.03.02 smkim
- var sessioninfo = gds_userInfo.getColumn(0, "sessioninfo");
- if(!utlf_isNull(gv_sSessionToken) && !utlf_isNull(sessioninfo) && (sessioninfo != gv_sSessionToken)) {
- sysf_accountTrace("submit에서 토큰 다른 경우");
- var scnID = frmf_getScreenID();
- trace("ScreenID : " + scnID + "\nparam.id : " + param.id + "\nparam.service : " + param.service + "\nparam.method : " + param.method +
- "\ngv_sSessionToken : " + gv_sSessionToken + "\nsessioninfo : " +sessioninfo);
- }
-
- gv_sSessionToken = sessioninfo;
- gv_sSessionToken_ENC = gds_userInfo.getColumn(0,"sessioninfo_enc");
-
- var sSvcID = "";
- var serverTarget = "";
-
- var sScreenID = frmf_getScreenID();
-
- //transaction system 구분 null일 경우 emr
- var sUrl = "";
- if(utlf_isNull(sSystem)){
- sUrl = SERVER_DEF;
- }else if(sSystem = "CDW"){
- sUrl = SERVER_DEF_CDW;
- }
- sUrl = sUrl + "target="+param.service+"&method="+param.method+"&submit_id="+param.id+"&screen_id="+sScreenID;
-
- if(utlf_isNull(param.id)){
- sSvcID = "tr_"+param.service+"_"+param.method;
- }else{
- sSvcID = param.id;
- }
- utlf_addLog("sSvcID ; " + sSvcID );
- dsf_createDsRow("ds_sys_" + sSvcID, [{col:"retranyn", type:"string", size:256, val:"N"},
- {col:"histno", type:"string", size:256, val:"0"},
- {col:"bfopcnt", type:"string", size:256, val:"0"},
- {col:"afopcnt", type:"string", size:256, val:"0"},
- {col:"excpcnt", type:"string", size:256, val:"0"},
- {col:"errocnt", type:"string", size:256, val:"0"},
- {col:"resncnt", type:"string", size:256, val:"0"},
- {col:"infocnt", type:"string", size:256, val:"0"},
- {col:"screenid", type:"string", size:256, val:frmf_getScreenID()},
- {col:"submitid", type:"string", size:256, val:param.id},
- {col:"service", type:"string", size:256, val:param.service},
- {col:"method", type:"string", size:256, val:param.method},
- {col:"async", type:"string", size:256, val:param.async},
- {col:"transact", type:"string", size:256, val:param.transaction}]);
-
- param.inds = param.inds + " sys=ds_sys_" + sSvcID;
- param.outds = param.outds + " ds_sys_" + sSvcID + "=sys";
-
- ds_sys = this.objects["ds_sys_" + sSvcID];
-
- while (sReTranYn == "Y" && nHistNo <10) {
- if(!utlf_isNull(sMsgNo)) {
- dsf_createDs("ds_sys_" + sSvcID);
- ds_sys = this.objects["ds_sys_" + sSvcID];
-
- dsf_copyDs(ds_sys, ds_arg_sys, "replace");
- }
-
- nHistNo = nHistNo +1;
- ds_sys.setColumn(0, "histno", nHistNo);
-
- tranf_transaction(sSvcID
- , sUrl
- , param.inds
- , param.outds
- , param.args + " screen_id=" + wrapQuote(sScreenID)
- , param.callback
- , param.progress
- , param.async
- , param.alert
- , param.error
- , param.surrogate
- , param.typeStr
- , param.force
- , param.transaction);
-
- if(!utlf_isNull(this.objects["ds_sys_" + sSvcID])) {
- ds_sys = this.objects["ds_sys_" + sSvcID];
-
- nExcpCnt = ds_sys.getColumn(0, "excpcnt"); // 예외 항목
- if (nExcpCnt > 0) { // 예외 항목
- bRtn = false;
- }
- }
-
- if (!param.async && !utlf_isNull(this.objects["ds_sys_" + sSvcID]) && !utlf_isNull(dsf_getColumnNullToEmpty(ds_sys, 0, "msgno"))) { // 리턴 메세지 정보가 있을 경우
- sMsgNo = ds_sys.getColumn(0, "msgno");
- sReTranYn = ds_sys.getColumn(0, "retranyn"); // 다시 transaction 할지 여부
- nBfOpCnt = ds_sys.getColumn(0, "bfopcnt"); // tran전 오픈 카운트
- nAfOpCnt = ds_sys.getColumn(0, "afopcnt"); // tran후 오픈 카운트
- nErroCnt = ds_sys.getColumn(0, "errocnt"); // 에러 항목
- nResnCnt = ds_sys.getColumn(0, "resncnt"); // 사유 입력 항목
- nInfoCnt = ds_sys.getColumn(0, "infocnt"); // 정보 확인 항목
-
- dsf_createDs("ds_sys_" + sMsgNo);
- ds_arg_sys = this.objects["ds_sys_" + sMsgNo]; // 메세지 처리 화면으로 넘기는 arg 데이터셋 중복을 피하기위해 키값으로 생성
- dsf_copyDs(ds_arg_sys, ds_sys, "replace");
-
- var objArg = new Object();
- objArg.arg_sys = ds_arg_sys;
- } else {
- sReTranYn = "N";
- nBfOpCnt = 0; // tran전 오픈 카운트
- nAfOpCnt = 0; // tran후 오픈 카운트
- nErroCnt = 0; // 에러 항목
- nResnCnt = 0; // 사유 입력 항목
- nInfoCnt = 0; // 정보 확인 항목
- }
-
- if (nBfOpCnt > 0) { // tran전 오픈 카운트
- frmf_clearParameter("SPZUM90100_msgcls");
- frmf_setParameter("SPZUM90100_msgcls", "B"); // transaction 전 오픈 메세지 타입
-
- frmf_modal("SPZUM90100", "SPZUM90100", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오픈팝업
-
- bRtn = false;
- break;
- }
-
- if (nErroCnt > 0) { // 에러 항목
- frmf_modal("SPZUM90200", "SPZUM90200", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
-
- bRtn = false;
- break;
- }
-
- if (nResnCnt > 0) { // 사유 입력 항목
- frmf_clearParameter("SPZUM90300_rtn");
-
- frmf_modal("SPZUM90300", "SPZUM90300", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //사유팝업
-
- if(frmf_getParameter("SPZUM90300_rtn") != "Y") {
- bRtn = false;
- break;
- }
- }
-
- if (nInfoCnt > 0) { // 정보 확인 항목
- frmf_clearParameter("SPZUM90400_rtn");
-
- frmf_modal("SPZUM90400", "SPZUM90400", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //정보팝업
-
- if(frmf_getParameter("SPZUM90400_rtn") != "Y") {
- bRtn = false;
- break;
- }
- }
-
- if (nAfOpCnt > 0) { // tran후 오픈 카운트
- frmf_clearParameter("SPZUM90100_msgcls");
- frmf_setParameter("SPZUM90100_msgcls", "F"); // transaction 후 오픈 메세지 타입
-
- frmf_open("SPZUM90100", "SPZUM90100", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오픈팝업
- }
- }
-
- dsf_deleteDs("ds_sys_" + sSvcID); // Submit 인풋 메세지 정보 삭제
- dsf_deleteDs("ds_sys_" + sMsgNo); // Submit 리턴 메세지 정보 삭제
-
- return bRtn;
- }
- /**********************************************************************************
- * 함수명 : tranf_submitCdw
- * 설 명 : CDW용 Transaction
- * argument : param.id - transaction을 구분하기 위한 ID
- * : param.service - service ID
- * : param.method - method ID
- * : param.inds - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- * : param.outds - transaction을 처리 결과를 받을 Dataset의 ID
- * : param.args - transaction을 위한 인자값
- * : param.callback - transaction의 결과를 돌려줄 Function의 이름
- * : param.progress - Progress 사용여부 확인) (true : 사용-default, false : 사용안함
- * : param.async - 비동기 여부를 지정 (true : 비동기, false : 동기)
- * : param.alert - 트랙잭션 완료시 메시지박스 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.error - 에러 발생시 경고 창 사용 여부 (true : 사용 -default, false : 사용안함)
- * : param.surrogate - 임시로그인 - userid='ENRBC' dutplcecd='B051'
- * : param.typeStr - 사용자 정의 row type 구분자
- * : param.force - session timeout 에 상관없이 transaction이 실행(true : 사용, false : 사용안함-default)
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_submitCdw(param){
-
- tranf_submit(param, "CDW");
- }
- /**********************************************************************************
- * 함수명 : tranf_transaction
- * 설 명 : 공통 Transaction
- * argument : sSvcID - transaction을 구분하기 위한 ID
- * : sUrl - transaction url
- * : sInDataset - transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
- * : sOutDataset - transaction을 처리 결과를 받을 Dataset의 ID
- * : sArguments - transaction을 위한 인자값
- * : sCallbackFunc - transaction의 결과를 돌려줄 Function의 이름
- * : bProgress - Progress 사용여부 확인 (true : 사용-default, false : 사용안함)
- * : bAsync - 비동기 여부를 지정 (true : 비동기, false : 동기)
- * : bAlert - 트랙잭션 완료시 메시지박스 사용 여부 (true : 사용 -default, false : 사용안함)
- * : bError - 에러 발생 시 경고 창 사용 여부 (true : 사용 -default, false : 사용안함)
- * : objPaging - 페이징 정보
- * : sSurrogate - 임시로그인 - userid='ENRBC' dutplcecd='B051')
- * : sTypeStr - 사용자 정의 row type 구분자
- * : bForce - session timeout 에 상관없이 transaction이 실행(true : 사용, false : 사용안함-default)
- * : bTransaction - db transaction 사용 여부(true : 사용-default, false : 사용안함)
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_transaction(sSvcID, sUrl, sInDataset, sOutDataset, sArguments, sCallbackFunc, bProgress, bAsync, bAlert, bError, sSurrogate, sTypeStr, bForce, bTransaction)
- {
- //세션타임아웃
- if(utlf_isNull(bForce)) bForce = false;
-
- if(!bForce && !sysf_isQuickView() && !utlf_isNull(gv_sSessionToken)){
-
- var nSessionTimeout = toNumber(sysf_getSystemInfo("sessiontimeout"));
- var dtDate = new Date();
- var nDate = dtDate.getTime();
- var nDiffTime = 0;
- if(agv_nLastTransactionTime > 0){
- nDiffTime = (nDate - agv_nLastTransactionTime)/1000/60;
- }
-
- if(nSessionTimeout != 0 && nDiffTime > nSessionTimeout){
- //if(true){
- var islogout = appf_openPasswordValidate("session", "암호확인", "");
- if(islogout){
- frmf_logout();
- return;
- }
- }
- }
-
- // 서비스 ID
- var sMergeSvcID;
- // 전송 형태 (0:XML 타입,1:Binary 타입, 2:SSV 타입)
- var nDataType = 0;
- // postdata 압축 여부
- var bCompress = false;
- // alert 사용 여부
- var sAlert = "FALSE";
- // error 사용 여부
- var sError = "TRUE";
- // progress 사용 여부
- var sProgress = "TRUE";
- // 추가정보
- var sParam = "&macaddr="+sysf_getMacAddress();
-
- // Progress 사용여부 확인
- if((bProgress != true) && (bProgress != false)) bProgress = true;
- if(!bProgress) sProgress = "FALSE";
-
- // async 확인
- if ((bAsync != true) && (bAsync != false)) bAsync = false;
-
- // alert 확인
- if ((bAlert != true) && (bAlert != false)) bAlert = false;
- if(bAlert) sAlert = "TRUE";
- else sAlert = "FALSE";
-
- // error 확인
- if ((bError != true) && (bError != false)) bError = true;
- if(bError) sError = "TRUE";
- else sError = "FALSE";
-
- //임시 로그인
- if(!utlf_isNull(sSurrogate)){
- //sUrl = sUrl+"&surrogate_session="+encodeURIComponent(tranf_surrogate(sSurrogate));
- //sUrl = sUrl+"&surrogate_session="+tranf_surrogate(sSurrogate);
- tranf_surrogate(sSurrogate);
- sSurrogate = "TRUE";
- }else{
- sSurrogate = "FALSE";
- }
-
- // 서비스 ID merge
- sMergeSvcID = sProgress + "|" + sAlert + "|" + sSvcID + "|" + sCallbackFunc + "|" + sSurrogate + "|" + sError;
-
- // url 작성
- sUrl = sUrl + sParam;
-
- //loading
- if(bProgress) this.setWaitCursor(true, true);
-
- //스크롤 페이징
- /*
- if(!utlf_isNull(objPaging)){
- var objColInfo = new Array();
- if(!utlf_isNull(objPaging.offset)){
- objColInfo.push({col: "offset", val: objPaging.offset});
- }
- if(!utlf_isNull(objPaging.pagesize)){
- objColInfo.push({col: "pagesize", val: objPaging.pagesize});
- }
- if(!utlf_isNull(objPaging.totCnt)){
- if(objPaging.totCnt){
- objPaging.totCnt = "true";
- }else{
- objPaging.totCnt = "false";
- }
- objColInfo.push({col: "totCnt", val: objPaging.totCnt});
- }
-
- dsf_createDsRow("tranDs_paging", objColInfo);
-
- sInDataset = sInDataset + " "+objPaging.dsNm+"=tranDs_paging";
- }
- */
- /*
- if(!utlf_isNull(objPaging)){
- if(!utlf_isNull(objPaging.offset)){
- sArguments = sArguments + " offset="+wrapQuote(objPaging.offset)
- }
-
- if(!utlf_isNull(objPaging.offset)){
- sArguments = sArguments + " pagesize="+wrapQuote(objPaging.pagesize)
- }
-
- if(!utlf_isNull(objPaging.totCnt)){
- if(objPaging.totCnt){
- objPaging.totCnt = "true";
- }else{
- objPaging.totCnt = "false";
- }
- sArguments = sArguments + " totCnt="+wrapQuote(objPaging.totCnt);
- }
- }
- */
-
- //db transaction
- if(!utlf_isNull(bTransaction)){
- if(bTransaction){
- sArguments = sArguments + " transaction='true'";
- }else{
- sArguments = sArguments + " transaction='false'";
- }
- }
-
- //save row type String
- if(!utlf_isNull(sTypeStr)){
- sArguments = sArguments + " rowTypeString='" + sTypeStr + "'";
- }
-
- //args
- if(utlf_isNull(sArguments)) sArguments = "";
-
- transaction(sMergeSvcID, sUrl, sInDataset, sOutDataset, sArguments, "tranf_transactionCallback", bAsync, nDataType, bCompress);
- }
- /**********************************************************************************
- * 함수명 : tranf_surrogate
- * 설 명 : 임시로그인을 위하여 세션토큰을 서버에서 받아와 세션토큰 값을 교체한다.
- * argument : sSurrogate
- * : 작성예 (userid='ENRBC' dutplcecd='B051')
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_surrogate(sSurrogate){
- tranf_submit({
- id: "tr_reqGetSurrogateSession"
- , service: "hismainapp.HisMain"
- , method: "reqGetSurrogateSession"
- , inds: "req="+dsf_createDsRow("ds_req", utlf_args2Object(sSurrogate))
- , outds: dsf_createDs("ds_sessionvalue")+"=sessionvalue"
- , progress: false
- });
-
- //임시 토큰을 원본 토큰으로 교체
- gv_sSessionTokenTemp = gv_sSessionToken;
- gv_sSessionToken = ds_sessionvalue.getColumn(0, "sessionstr");
- }
- /**********************************************************************************
- * 함수명 : tranf_transactionCallback
- * 설 명 : 공통 Transaction Callback
- * argument : strSvcId (transaction을 구분하기 위한 ID)
- * : nErrorCode (에러코드)
- * : strErrorMsg (에러메세지)
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function tranf_transactionCallback(sSvcId, nErrorCode, sErrorMsg){
- var sArrSvcID = sSvcId.split("|");
- var sProgress = sArrSvcID[0];
- var sAlert = sArrSvcID[1];
- var serviceID = sArrSvcID[2];
- var callbackFunc = sArrSvcID[3];
- var sSurrogate = sArrSvcID[4];
- var sError = sArrSvcID[5];
-
- //마지막 트랜잭션 시간을 밀리초 단위로 기록함.
- if(!sysf_isQuickView()){
- var dtDate = new Date();
- agv_nLastTransactionTime = dtDate.getTime();
- }
-
- // 예외 발생시 시스템 메세지 처리 부분에 연동 하기 위해 추가 2018.08.24 엄영만
- if(nErrorCode < 0){
- if(!utlf_isNull(this.objects["ds_sys_" + serviceID])) {
- var ds_sys = this.objects["ds_sys_" + serviceID];
- ds_sys.setColumn(0, "excpcnt", 1);
- }
- }
-
- //progress
- if(sProgress == "TRUE") this.setWaitCursor(false, true);
-
- //error
- if(gv_bErrorMsg && sError == "TRUE"){
- var paramArr = new Object();
- if(nErrorCode < 0){
- //error 메세지 처리
- var tempArr = sErrorMsg.split("|");
- paramArr.errorMsg01 = tempArr[0];
- paramArr.errorMsg02 = tempArr[1];
- paramArr.errorMsg03 = tempArr[2];
- frmf_modalInternal("xp_system_error_pop", "com_hismainxp::form_system_error.xfdl", paramArr, false, null, null, null, 496, 164);
- }
- }
-
- //alert
- if(sAlert == "TRUE"){
- //정상 메세지
- sysf_messageBox(sErrorMsg, "I");
- }
-
- //서비스 처리 결과 출력
- //application.mainframe.statustext = sErrorMsg;
- if(nErrorCode > -1){
- try{
- agv_objAppBottomPath.form.stt_statusMsg.text = sErrorMsg;
- }catch(e){}
- }
-
- //임시로그인 - 원본토큰으로 원복
- if(sSurrogate == "TRUE"){
- gv_sSessionToken = gv_sSessionTokenTemp;
- gv_sSessionTokenTemp = "";
- }
-
- if(callbackFunc == null) return;
- if(callbackFunc == "undefined") return;
- if(callbackFunc.length == 0) return;
-
- // Form Callback 함수 호출
- //eval(callbackFunc + "('" + serviceID + "', '"+nErrorCode+"', '"+sErrorMsg+"');");
- eval(callbackFunc + "(serviceID, nErrorCode, sErrorMsg);");
- }]]></Script>
|