|
기록 객체를 매개변수로 사용하는 서버측 스크립트 기능입니다. 검색 스크립트로 작성된 사후 처리기가 검색 애플리케이션 구성에 연결되면 검색 결과에 이 스크립트 기능의 기록 객체에 대한 변경 내용이 반영됩니다.
예를 들어, 이 후처리 스크립트 함수는 kb_knowledge 테이블의 검색 결과에 대해 작동하여 날짜 필드 값을 사람이 읽을 수 sys_updated_on 형식으로 변환합니다. function process(record) {
var transformableTables = ['kb_knowledge'];
var transformableDateFields = ['sys_updated_on'];
var table = record.getTable();
// Terminate early if possible, to avoid unnecessary overhead
if (transformableTables.indexOf(table) === -1)
return;
function transformToHumanFriendlyDate(rawDate) {
// Time gaps in ms
var MINUTE_GAP = 60000;
var HOUR_GAP = 3600000;
var DAY_GAP = 86400000;
var WEEK_GAP = 604800000;
var MONTH_GAP = 2592000000;
var YEAR_GAP = 31536000000;
var gap = new Date().getTime() - rawDate;
if (gap < MINUTE_GAP) {
return gs.getMessage('Just Now');
} else if (gap > MINUTE_GAP && gap < 2 * MINUTE_GAP) {
return gs.getMessage('1 minute ago');
} else if (gap < HOUR_GAP) {
return gs.getMessage('{0} minutes ago', '' + Math.floor(gap / MINUTE_GAP));
} else if (gap > HOUR_GAP && gap < 2 * HOUR_GAP) {
return gs.getMessage('1 hour ago');
} else if (gap < DAY_GAP) {
return gs.getMessage('{0} hours ago', '' + Math.floor(gap / HOUR_GAP));
} else if (gap > DAY_GAP && gap < 2 * DAY_GAP) {
return gs.getMessage('1 day ago');
} else if (gap < WEEK_GAP) {
return gs.getMessage('{0} days ago', '' + Math.floor(gap / DAY_GAP));
} else if (gap > WEEK_GAP && gap < 2 * WEEK_GAP) {
return gs.getMessage('1 week ago');
} else if (gap < MONTH_GAP) {
return gs.getMessage('{0} weeks ago', '' + Math.floor(gap / WEEK_GAP));
} else if (gap > MONTH_GAP && gap < 2 * MONTH_GAP) {
return gs.getMessage('1 month ago');
} else if (gap < YEAR_GAP) {
return gs.getMessage('{0} months ago', '' + Math.floor(gap / MONTH_GAP));
} else if (gap > YEAR_GAP && gap < 2 * YEAR_GAP) {
return gs.getMessage('1 year ago');
} else {
return gs.getMessage('{0} years ago', '' + Math.floor(gap / YEAR_GAP));
}
}
for (var i = 0; i < transformableDateFields.length; i++) {
var fieldName = transformableDateFields[i];
var updatedDateField = record.getField(fieldName);
if (updatedDateField !== null) {
var updatedDateRaw = updatedDateField.getValue();
if (updatedDateRaw != null) {
var humanFriendlyDate = transformToHumanFriendlyDate(updatedDateRaw);
updatedDateField.setDisplayValue(humanFriendlyDate);
}
}
}
}
주: UI는 후처리 스크립트 함수에서 사용할 수 있는 API 메서드의 개요를 표시합니다.
기존 후처리기 스크립트에서 코드를 복사하여 자체 스크립트 기능의 시작점으로 사용할 수 있습니다. 기존 후처리기 스크립트에 액세스하려면 다음 단계에 따라 목록 뷰에서 스크립트로 작성된 후처리기 검색[sys_search_scripted_processor] 테이블을 엽니다.
- 모두를 선택합니다.
- 필터 필드에 sys_search_scripted_processor.list를 입력합니다.
- Enter를 누릅니다.
|