[SAP Analytics Cloud] Table 위젯의 신규 “onAfterDataEntryProcess” 이벤트
사용자 데이터 입력 후 특정 로직 자동 실행하는 방법
Apr 09, 2025
이 새로운 이벤트는 사용자가 테이블에 데이터를 입력하고 변경 사항이 처리된 후에 자동 실행됩니다.
테이블 위젯의 데이터 변경은 연속 데이터 입력, 개별 데이터 입력, 기본 데이터 입력, 복사 및 붙여넣기, 계획 패널을 통한 배부 또는 "submitData" 스크립트 함수를 통해 발생할 수 있습니다.
본 이벤트의 매개변수를 통해 변경된 테이블 셀의 컨텍스트는 물론, 변경 전후의 셀 값을 가져올 수 있습니다.
onAfterDataEntryProcess (cells: IChangedCell[], effectiveContext: SelectionContext): void
" cells " 배열은 변경된 테이블 셀로 구성되며, 변경된 각 셀에는 새 값, 이전 값, 셀 컨텍스트가 포함됩니다. 셀 컨텍스트에는 행 및 열 축 모두에서 셀과 연관된 모든 차원 멤버가 포함됩니다.
“ effectiveContext ”는 변경된 모든 셀의 컨텍스트를 포함합니다.
테이블 위젯의 onAfterDataEntryProcess 스크립트를 클릭하여, 스크립트 에디터 창을 열어 처리하고자 하는 로직을 스크립트로 구현합니다.
변경된 셀에 입력된 값을 확인하여 1000보다 크면 해당 셀의 컨텍스트 정보를 표시하고, 최종적으로 입력을 취소합니다.
var allocatedBudget = 1000; // 입력 한도 금액, 실제 데이터를 읽어서 처리할 수도 있음.
var vConsUnit = "";
var vDate = "";
var vRevert = false;
for (var j=0;j<cells.length; j++){
if (ConvertUtils.stringToNumber(cells[j].newValue) > allocatedBudget){
vConsUnit = cells[j].context["ConsUnit"];
vDate = cells[j].context["Date"];
Application.showMessage(ApplicationMessageType.Error, "입력할 숫자는 " + allocatedBudget.toFixed(0) + "을 초과할 수 없습니다. - Unit: " + vConsUnit + ", Date: " + vDate);
vRevert = true;
};
};
//초과 금액 입력 시 입력 취소
if (vRevert === true) {
Table_1.getPlanning().getPublicVersion("Actual").revert();
};
스토리 입력 모드에서 1000보다 큰 금액을 입력하고, 결과를 확인합니다.
추후 “onBeforeDataEntryProcess” 이벤트도 제공되면 좋겠습니다.
Share article
ASPN의 최신 IT 정보를 구독해보세요!