[SAP Analytics Cloud] Table 위젯의 신규 “onAfterDataEntryProcess” 이벤트

사용자 데이터 입력 후 특정 로직 자동 실행하는 방법
BAC's avatar
Apr 09, 2025
[SAP Analytics Cloud] Table 위젯의 신규 “onAfterDataEntryProcess” 이벤트

이 새로운 이벤트는 사용자가 테이블에 데이터를 입력하고 변경 사항이 처리된 후에 자동 실행됩니다.

테이블 위젯의 데이터 변경은 연속 데이터 입력, 개별 데이터 입력, 기본 데이터 입력, 복사 및 붙여넣기, 계획 패널을 통한 배부 또는 "submitData" 스크립트 함수를 통해 발생할 수 있습니다.

본 이벤트의 매개변수를 통해 변경된 테이블 셀의 컨텍스트는 물론, 변경 전후의 셀 값을 가져올 수 있습니다.

onAfterDataEntryProcess (cells: IChangedCell[], effectiveContext: SelectionContext): void

" cells " 배열은 변경된 테이블 셀로 구성되며, 변경된 각 셀에는 새 값, 이전 값, 셀 컨텍스트가 포함됩니다. 셀 컨텍스트에는 행 및 열 축 모두에서 셀과 연관된 모든 차원 멤버가 포함됩니다.

“ effectiveContext ”는 변경된 모든 셀의 컨텍스트를 포함합니다.

  1. 테이블 위젯의 onAfterDataEntryProcess 스크립트를 클릭하여, 스크립트 에디터 창을 열어 처리하고자 하는 로직을 스크립트로 구현합니다.

  1. 변경된 셀에 입력된 값을 확인하여 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();	
	
};
  1. 스토리 입력 모드에서 1000보다 큰 금액을 입력하고, 결과를 확인합니다.

추후 “onBeforeDataEntryProcess” 이벤트도 제공되면 좋겠습니다.

사업계획부터 예측까지, 데이터 기반의 경영관리를 시작하세요.

실적과 계획을 연결하고, 다양한 가정에 따른 변화를 검토할 수 있도록.
SAP Analytics Cloud 기반의 계획·예측 환경 도입 방안을 ASPN과 상담해 보세요.

Share article