본문 바로가기
Nexacro

[Nexacro] 데이터 통신(Transaction)

by bjgu97 2021. 11. 18.
반응형

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으로 호출해야함.

 

 

댓글