본문으로 건너뛰기

이벤트와 거래 연결

주제 목차 · 이전: 화면 스크립트 구조 · 다음: 화면 이동과 메뉴

이 문서의 결과: BOD010 조회, BOD011 등록 이벤트에 거래 호출을 연결한다.

시작 조건

BOD010.js: 목록 조회 연결

'use strict';
let $BOD010 = {
transaction: {
LD01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [{ type: 'Grid', dataFieldID: 'Board' }]
}
},
hook: {
pageLoad() {
syn.$w.transactionAction('LD01');
}
},
event: {
btnSearch_click(evt) {
syn.$w.transactionAction('LD01');
}
}
};

pageLoad에서 LD01을 한 번 호출해 두면 화면이 열리자마자 목록이 채워집니다. 조회 버튼 클릭도 같은 기능을 다시 호출할 뿐입니다.

BOD011.js: 등록과 유효성 검사

'use strict';
let $BOD011 = {
transaction: {
ID01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [],
callback: (error, responseObject) => {
if ($string.isNullOrEmpty(error) == true) {
syn.$w.notify('success', '저장 되었습니다');
}
else {
syn.$w.notify('warning', '저장에 실패했습니다. 오류: ' + error);
}
}
}
},
event: {
btnConfirm_click() {
var title = syn.$l.get('txtTitle').value.trim();
if (title == '') {
syn.$w.alert('제목을 입력하세요');
return false;
}

var author = syn.$l.get('txtAuthor').value.trim();
if (author == '') {
syn.$w.alert('작성자를 입력하세요');
return false;
}

syn.$w.transactionAction('ID01');
}
}
};

유효성 검사는 서버 호출 전에 화면에서 먼저 확인해 불필요한 요청을 줄입니다. 다만 화면 검사만 믿지 않고, 서버 쪽에서도 같은 조건을 07. dbclient SQL 계약의 SQL이나 08. transact 거래 계약의 계약 설정으로 한 번 더 점검하는 것이 안전합니다.

콜백에서 결과 처리하기

callback은 거래 응답을 받은 뒤 실행됩니다. error가 비어 있으면 성공, 값이 있으면 실패입니다. 성공/실패에 따라 사용자에게 알림을 보여주는 처리를 이 안에서 합니다.

성공 증거 / 실패하면

확인성공실패 시 확인할 것
화면 로드 시 목록 표시pageLoad에서 그리드가 채워짐transactionAction 호출 여부, 콘솔 오류
등록 버튼 클릭성공 알림 표시필수값 검사 로직, 네트워크 탭의 요청 여부

다음 문서

화면 이동과 메뉴에서 팝업 이동과 목록 자동 갱신을 연결합니다.