0. Transaction이란?
: 서버와 통신하여 데이터를 전송하고 받아오기 위한 메소드
- Service를 호출하여 여러 개의 Dataset와 Variable를 주고받는다.
- 기본 통신은 Async(비동기)방식으로 통신 완료 후 결과값을 Callback(콜백) 함수로 받는다.
cf) 데이터통신(Sync & Async)
- Sync(동기) : transaction 함수가 Service 호출 후 통신이 완료되는 시점까지 대기하다가 통신 결과를 받으면 다음 스크립트 실행
- Async(비동기) : transaction 함수가 Service 호출 후 통신이 완료되지 않아도 다음 스크립트 실행하고 통신 완료 후 결과를 콜백(Callback) 함수로 받음
1. Form.transaction(strSvcID, strURL, strInDatasets, strOutDatasets, strArgument, strCallback,
bAsync [,nDataType [,bCompress]]] )
[필수]
- strSvcId : 트랜잭션을 구분하기 위한 서비스 ID
- strURL : 트랜잭션을 요청할 서버 페이지 주소(URL)
- strInDatasets : 서버로 보낼 데이터셋
* 형식 : "ServerDatasetID=FormDatasetID:A ServerDatasetID=FormDatasetID:U" // 빈칸으로 구분하여 여러 개의 데이터셋 전송 가능; 각각의 FormDatasetID 뒤에 U, A, N 중 하나의 옵션 붙인다.
( :U - 갱신된데이터 / :A - 모든데이터 / :N - 삭제된데이터를 제외한 데이터)
- strOutDatasets : 서버에서 보내는 데이터를 받을 데이터셋
* 형식 : "FormDatasetID=ServerDatasetID"
- strArgument : 서버로 보낼 변수
* 형식 : "변수ID = 변수값" // 역시나 빈칸으로 구분하여 여러 개의 변수 전송 가능
변수값으로 공백 포함 문자 넘기고 싶다면... nexacro.wrapQuote("2 3")
- strCallbackFunc : 서버의 처리 결과를 받을 콜백 함수
[옵션]
- bAync : Transaction을 비동기(Async)로 할지, 동기(Sync)로 할지 여부 (true-비동기 / false-동기 / default-비동기)
- nDataType : Transaction 전송되는 데이터 형태 (0-XML / 1-Binary / 2-SSV / default-XML)
- bCompress : 데이터 압축 여부 (true-압축 / false-압축X / default-압축X)
cf) X-API
: 넥사크로플랫폼 클라이언트와 서버의 통신을 위한 API; 데이터 구조 정의와 데이터 통신 수행
2. PlatformData
: 데이터 송수신의 기본 단위로 데이터를 보내기 위해 사용. (여러 개의 Dataset, Variable 담을 수 있음)
ex) PlatformData out_pData = new PlatformData();
String sDept = (request.getParameter("sDept") == null) ? "" : request.getParameter("sDept");
- Variable는 getString으로, Dataset는 getDataset로 받는다.
cf) CacheLevel 속성
- none : 캐시 기능 사용 안함
- Dynamic : 서버로부터 내려받은 파일이 갱신되었을 때만 수신
- session : 서버상의 파일이 갱신되지 않은 경우 로컬캐시를 파일을 재사용. 엔진을 가동할 떄, 단 한번만 수신하고 해당 엔진이 종료될 때 까지 로컬 캐시 파일만을 사용.
- Static : 서버로부터 한 번이라도 내려받은 파일은 앤진 재실행과 상관 없이 로컬 캐시 파일만 사용.
3. 콜백함수: function(strSvcID, nErrorCode, strErrorMag)
- strSvcID : Transaction 구분자 ID
- nErrorCode : 서버에서 받은 에러코드 값; 마이너스 = 실패
cf) 동일 출처 정책
: 웹 브라우저 실행시 클라이언트의 화면 페이지와 데이터 통신시 호출하는 서버페이지의 도메인이 일치해야한다.
ex) 로컬PC에서 http://localhost:8080 으로 실행했으면, 해당 화면 호출하는 서버 페이지도 동일하게 http://localhost:8080으로 호출해야함.
'Nexacro' 카테고리의 다른 글
[Nexacro] 데이터셋(Dataset)의 이벤트 처리 순서 & 이벤트 발생 멈추기 & 중복체크 (0) | 2021.11.18 |
---|---|
[Nexacro] 로그 확인 방법 (0) | 2021.11.18 |
[Nexacro] 데이터셋(Dataset) '복사' 관련 메소드 정리 (0) | 2021.11.18 |
[Nexacro] 데이터셋(Dataset) 레코드 추가/삭제/반환 관련 메소드 정리 (0) | 2021.11.18 |
[Nexacro] 데이터셋(Dataset) 주요 메소드 정리 (0) | 2021.11.18 |
댓글