본문으로 건너뛰기

화면에서 거래 호출하기

syn.$w.transactionAction은 화면의 거래 설정을 등록하고 입력 수집, 서버 요청, 결과 매핑을 시작합니다. syn.loader.js로 화면이 초기화되고 해당 거래 계약이 서버에 준비되어 있어야 합니다.

구문​

syn.$w.transactionAction('LD01', { message: '조회 중...' });
인자타입필수의미
transactConfigInputstring 또는 object예화면의 거래 이름 또는 거래 설정 객체
optionsobject아니요이번 호출에 적용할 옵션

문자열을 전달하면 현재 화면의 transaction[이름]을 찾습니다. 직접 전달하는 객체에도 functionID 등 실행에 필요한 거래 설정이 있어야 합니다. 함수는 조회 데이터를 반환하는 Promise가 아니므로 await transactionAction(...)의 반환값을 결과 데이터로 사용하지 마세요.

기본 옵션​

옵션기본값용도
message빈 문자열진행 안내
dynamic'Y'동적 거래 요청 구분
authorize'N'요청 인증 구분
commandType'D'실행 명령 구분
returnType'Json'반환 형식
transactionScope'N'트랜잭션 범위 요청
transactionLog'Y'거래 로그 요청
endpoint'transaction'요청 엔드포인트 구분

클라이언트 옵션은 서버 인증·공개 거래 정책을 대체하지 않습니다. 서버의 허용 범위와 라우팅은 transact 설정을 확인하세요.

입출력 연결​

BOD010의 화면 거래 설정을 발췌하면 다음과 같습니다.

transaction: {
LD01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [{ type: 'Grid', dataFieldID: 'Board' }]
}
}

이 조각은 화면 객체 안의 설정이며 단독 JS 파일이 아닙니다.

연결맞춰야 하는 항목
입력 폼 → 화면 JSHTML의 syn-datafield="MainForm"과 입력 dataFieldID
입력 항목 → 거래항목의 syn-datafield와 서버 입력 필드, belongID의 LD01
화면 JS → 출력 컨트롤출력 dataFieldID: 'Board'와 HTML의 syn-datafield="Board"
거래 계약 → 화면 출력출력 데이터의 순서·형식과 화면 출력 매핑

BOD010의 JSON 계약은 ModelID: "Dynamic", Type: "Grid"로 출력을 정의합니다. HTML의 Board라는 이름을 JSON의 모든 필드에 복제하는 규칙은 아닙니다.

결과와 오류 확인​

정상 응답은 화면의 출력 매핑과 거래 설정의 callback에서 처리합니다. callback이 정의되어 있다면 error, result, additionalData, correlationID를 전달받습니다.

현재 소스에서는 다음 경우를 구분해야 합니다.

  • 거래 설정이나 화면 컨텍스트가 없으면 경고를 기록하고 호출을 중단합니다.
  • beforeTransaction이 false를 반환하면 요청하지 않고 afterTransaction에 중단 이유를 전달합니다.
  • 결과의 errorText에 오류가 있으면 로그를 기록하고 조기에 반환합니다. 모든 오류가 callback이나 afterTransaction으로 전달된다고 가정하지 마세요.

브라우저 Console·Network와 서버 로그를 함께 확인합니다. 증상별 문제 해결과 화면 수명 주기 및 나머지 API를 참고하세요.

사용 중인 배포본의 동작은 함께 제공된 syn 버전과 대조하세요. 직접 따라 하려면 조회 조건 바꾸기로 이동합니다.