저장 작업을 위해 서버 호출시 서버에서 리턴되어야 할 "응답 데이터"의 형식을 정의합니다.
getChangedData 메소드로 수정된 데이터만 추출 시
서버에 request로 보내지는 Data 객체는 다음과 같은 사항을 포함합니다.
1) 변경 대상이 되는 셀의 행 id
2) 셀 변경 사항의 종류(추가/삭제/변경)
3) 변경 대상이 되는 셀의 열이름을 프로퍼티로 하고 해당하는 프로퍼티의 값으로 변경된 데이터 값
Data: {"IO": { }, "Changes": [{"id": "AR1", "Changed": 1, "열이름": "변경된 값"}]}
저장 작업 후 서버 응답 데이터 규격
IBSheet8 의 저장 데이터는 반드시 IO > Result 가 포함되어 리턴 되어야 합니다.
// 서버에서 IBSheet8로 보낼 응답 규격 {"IO": {"Result": 0 , Message:"저장 되었습니다."}} // 성공 ( Result>= 0 성공) {"IO": {"Result": -100, Message:"오류내용..." }} // 실패 (Result<0 실패 )
// 서버 예제 <%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*, org.json.*"%> <% request.setCharacterEncoding("utf-8"); response.setContentType("application/json"); response.setStatus(200); JSONObject result = new JSONObject(); // 서버에서 시트로 보낼 JSON 형식의 통신 관련 객체 JSONObject IO = new JSONObject(); // 결과를 담고 있는 객체 try { if(조건) { // 결과를 담고 있는 객체에 Result 프로퍼티로 성공/실패 여부를 보냅니다. //0으로 설정 시 성공. -2 ~ -9로 설정 시 실패. 실패하는 경우 시트에서 오류 메시지를 띄웁니다. IO.put("Result", 0); // 서버에서 시트로 전달할 메시지(onAfterSave 이벤트의 message 인자로 받을 수 있습니다) IO.put("Message", "성공"); } else { IO.put("Result", -200); IO.put("Message", "실패"); } result.put("IO", IO); } catch(Exception ex) { result.put("Exception", ex); } out.print(result); %>
저장 작업시 서버에로 리턴한 데이터는 onAfterSave 이벤트를 통해 확인하실 수 있습니다.