화면 » Api

requesttran

Description

strTranMapID 파라미터를 기준으로 AJAX 통신을 수행한다. 송신/수신 처리시 on_beforetran/on_trancomplete 이벤트가 발생하며, CALLBACK_REQUESTTRAN_SENDDATAFUNC/CALLBACK_REQUESTTRAN_RECVDATAFUNC 실행 파라미터에 지정된 콜백 함수가 호출된다.

Parameters

Parameters Type Description
strTranMapID STRING 전송시 사용할 TranMapID
bProcAsync BOOL 동기/비동기 처리 여부
strTranURL STRING [옵션] 서비스 URL
bURLEncode BOOL [옵션] 서비스 URL 인코딩 여부
strHttpHeader STRING [옵션] http헤더에 추가적으로 포함하고자 하는 정보
strSendData STRING [옵션] 송신 데이터
lTranTimeOut long [옵션] 거래 Timeout

Return Value

Type Description
BOOL 전송 성공/실패 여부 (Remark 참조)

Remark

bProcAsync 파라미터에 의해서 비동기 통신 방식과 동기 통신 방식이 결정되며, 통신 방식에 따라 업무 서버에서 데이터 처리 결과 정보를 확인하는 방법이 다르다.

Example

// Async 방식 데이터 통신 버튼 : btnAsync // Sync 방식 데이터 통신 버튼 : btnSync // Async 방식 데이터 통신 버튼 클릭 이벤트 처리 function btnAsync_on_mouseup() { // 헤더부 조립 예시 (여러항목을 지정할 경우 \x0A 값 또는 개행문자로 구분 var strRequestHeader1 = "HEADER_KEY1:HEADER_VALUE1\x0AHEADER_KEY2:HEADER_VALUE2"; var strRequestHeader2 = "HEADER_KEY1:HEADER_VALUE1\nHEADER_KEY2:HEADER_VALUE2"; // Async 방식 파라미터 설정 var bRet = screen.requesttran("TR_ASYNC", true, "", true, ""); if(bRet == false) { // 데이터 송신중 오류가 발생하면 "on_submitcomplete" 이벤트가 // 발생하지 않는다. screen.alert("데이터 송신중 오류가 발생하였습니다."); } } // Async 데이터 통신 방식일때 데이터 수신 완료 이벤트 // 자세한 내용은 on_trancomplete 도움말 참조 function screen_on_trancomplete(mapid, result, recv_userheader, recv_code, recv_msg, recv_data) { { // 처리 결과를 콘솔에 출력 factory.consoleprint("mapid = " + mapid); factory.consoleprint("result = " + result); factory.consoleprint("recv_userheader = " + recv_userheader); factory.consoleprint("recv_code = " + recv_code); factory.consoleprint("recv_msg = " + recv_msg); factory.consoleprint("recv_data = " + recv_data); return; } // Async 방식 데이터 통신 버튼 클릭 이벤트 처리 function btnSync_on_mouseup() { var strSendDataKey = "SEND_DATA_KEY"; var strSendDataValue = "SEND_DATA_VALUE"; var strSendData = strSendDataKey + "=" + encodeURIComponent(strSendDataValue); // Sync 방식 파라미터 설정 var bRet = screen.requesttran("TR_SELECT", false, "demo/SelectData.jsp", false, "", strSendData, 0); if(bRet == false) { screen.alert("데이터 송신중 오류가 발생하였습니다."); return; } // 데이터 통신 결과 정보 오브젝트를 구함 // 오브젝트에는 on_trancomplete 이벤트의 파라미터로 전달되는 // 데이터를 포함하고 있음. var instResult = screen.gettranresult(); if(instResult == null) { screen.alert("데이터 처리 결과를 얻을 수 없습니다."); return; } // 처리 결과를 콘솔에 출력 factory.consoleprint("mapid = " + instResult.mapid); factory.consoleprint("result = " + instResult.result); factory.consoleprint("recvuserheader = " + instResult.recvuserheader); factory.consoleprint("recvcode = " + instResult.recvcode); factory.consoleprint("recvmsg = " + instResult.recvmsg); factory.consoleprint("recvdata = " + instResult.recvdata); } /** * 실행 파라미터 - CALLBACK_REQUESTTRAN_SENDDATAFUNC * 화면 requesttran 송신 데이터 처리 콜백 * 화면 requesttran API 함수 호출시 AJAX로 데이터를 송신하기 전에 호출됨 * 화면내에서 settranmaptraninfo 함수를 통해서 송신 데이터 및 부가 정보를 설정해야 함 * @param objScreen 화면 오브젝트 * @param strTranMapId 트랜맵 ID */ function CallbackTranSendDataFunc(objScreen, strTranMapId) { var send_data_str, optionInfo; console.log(this); console.log("CallbackTranSendDataFunc> Screen URL = " + objScreen.getscreenurl()); console.log("CallbackTranSendDataFunc> strTranMapId = " + strTranMapId); // TODO: strTranMapId에 대한 송신 데이터 문자열 생성 send_data_str = "senddata_" + strTranMapId; optionInfo = { tran_url: "terminal/jsp/" + strTranMapId + ".jsp", is_async: true, is_encode_url: true, http_header_str: "", timeout: 0, http_method: "POST" }; // requesttran 송신 데이터 및 옵션 설정 objScreen.settranmaptraninfo(strTranMapId, send_data_str, optionInfo); } /** * 실행 파라미터 - CALLBACK_REQUESTTRAN_RECVDATAFUNC * 화면 requesttran 수신 데이터 처리 콜백 * 화면 on_trancomplete 이벤트가 호출된기 전에 호출됨 * @param objScreen 화면 오브젝트 * @param strTranMapId 트랜맵 ID * @param result 처리 결과 (1: 성공, 그외 오류) * @param recv_userheader 서버에서 수신된 사용자 정의 데이터 (기본값: "") * @param recv_code 서버에서 수신된 처리 결과 코드 (기본값: "") * @param recv_msg 서버에서 수신된 처리 결과 메시지 (기본값: "") * @param recv_data 서버에서 수신된 데이터 */ function CallbackTranRecvDataFunc(objScreen, strTranMapId, result, recv_userheader, recv_code, recv_msg, recv_data) { var tran_url, is_async, is_encode_url, http_header_str, send_data_str, timeout, http_method; console.log(this); console.log("CallbackTranRecvDataFunc> Screen URL = " + objScreen.getscreenurl()); console.log("CallbackTranRecvDataFunc> strTranMapId = " + strTranMapId); console.log("CallbackTranRecvDataFunc> result = " + result); console.log("CallbackTranRecvDataFunc> recv_userheader = " + recv_userheader); console.log("CallbackTranRecvDataFunc> recv_code = " + recv_code); console.log("CallbackTranRecvDataFunc> recv_msg = " + recv_msg); console.log("CallbackTranRecvDataFunc> recv_data = " + recv_data); // TODO: recv_data 파라미터 값을 기준으로 수신 데이터를 파싱하여 화면에 표시 처리 }

See Also

gettranresult
on_trancomplete
istrancomplete

Viewer Ver.

9.1.1.1

Update Date

20241016