ServiceNow 개발 요소_클라이언트측
9057 단어 ServiceNow
소개
본고에서는 ServiceNow 개발에서의 지견을 쓰려고 합니다.
이번은 개발에서 자주 사용하는 기능(table)에 대해입니다.
ServiceNow는 '표준적', '빠른' 도입이 가능한 애플리케이션을 표방하고 있으며, 그 실현을 위해 상당한 부분이 논코딩의 초기 상태(OOTB:out of the box)로 할 수 있게 되어 있다. 합니다.
그럼에도 불구하고 코딩해야 할 부분도 다소 존재하고 있으며 그 부분에 대해서는 별고 ServiceNow에서 사용하는 JavaScript 정리【On Youtube】에 양보합니다.
이번 투고 범위는, 논코딩으로 실현할 수 있는 범위이며, 업무에 있어서 반드시 사용할 것이다 기능에 대한 해설입니다. 아래 내용을 이해하면 ServiceNow 개발자가 될 수 있습니다.
구체적으로는 아래와 같습니다.
입니다. 다른 중요한 주제가 있지만 별도로 설명합니다.
그럼 내용으로 이동합시다.
UI 액션
한마디로, 버튼이나 링크 등의 클라이언트 액션.
URL : 공식 문서
심상:
설명:
플랫폼상에서 요구·승인·각하등의 액션을 정의하는 버튼.
상기 버튼을 클릭하면 서버 처리 및 워크 플로우를 실행하기위한 트리거가된다.
클라이언트 측에 해당한다.
액세스 경로:
System Definition > UI Actions
스크립트:
ui_action_resolve.jsfunction resolveIncident(){
//Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
g_form.setValue('incident_state', 6);
g_form.setValue('state', 6);
g_form.setValue('resolved_by', g_user.userID);
gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
}
//Code that runs without 'onclick'
//Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
serverResolve();
function serverResolve(){
current.incident_state = IncidentState.RESOLVED;
current.state = IncidentState.RESOLVED;
current.resolved_by = gs.getUserID();
current.update();
}
클라이언트 스크립트
한마디로 말하면, 클라이언트 측에서의 메시지 밸리데이션 등의 처리.
URL : 공식 문서
심상:
설명:
플랫폼상에서의 동작에 따라, 메시지나 검증이나 값의 자동 세트를 실시한다.
위의 이미지는 선택 사항에 따라 메시지를 표시합니다.
클라이언트 측에 해당한다.
액세스 경로:
System Definition > Client Scripts
스크립트:
display_info_message.jsfunction onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var count = 0;
var gr = new GlideRecord('incident');
//実装上ではbad practice
gr.addQuery('urgency',g_form.getValue('urgency'));
gr.query();
while(gr.next()){
count = count + 1;
}
g_form.addInfoMessage("同じ緊急度のインシデントが他にも"+ count + "件あります。");
}
UI 정책
한마디로, 클라이언트측의 표시·필수 제어를 말한다.
URL : 공식 문서
심상:
설명:
플랫폼상에서의 화면 로드시의 단순 처리를 정의.
기본 용도는 필수 및 읽기 전용을 적용하는 데 사용됩니다.
위의 이미지에서 선택 사항은 필수 항목입니다.
클라이언트 측에 해당한다.
액세스 경로:
System UI > UI Policies
이미지 2
UI 정책:Fields set to mandatory for all states
의미: 모든 상태의 필드에 적응하는 필수 항목
조건 : 모든 조건
동작 : UI 정책 동작
caller_id,short_description=>필수 항목
후술 기사
function resolveIncident(){
//Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
g_form.setValue('incident_state', 6);
g_form.setValue('state', 6);
g_form.setValue('resolved_by', g_user.userID);
gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
}
//Code that runs without 'onclick'
//Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
serverResolve();
function serverResolve(){
current.incident_state = IncidentState.RESOLVED;
current.state = IncidentState.RESOLVED;
current.resolved_by = gs.getUserID();
current.update();
}
한마디로 말하면, 클라이언트 측에서의 메시지 밸리데이션 등의 처리.
URL : 공식 문서
심상:
설명:
플랫폼상에서의 동작에 따라, 메시지나 검증이나 값의 자동 세트를 실시한다.
위의 이미지는 선택 사항에 따라 메시지를 표시합니다.
클라이언트 측에 해당한다.
액세스 경로:
System Definition > Client Scripts
스크립트:
display_info_message.js
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var count = 0;
var gr = new GlideRecord('incident');
//実装上ではbad practice
gr.addQuery('urgency',g_form.getValue('urgency'));
gr.query();
while(gr.next()){
count = count + 1;
}
g_form.addInfoMessage("同じ緊急度のインシデントが他にも"+ count + "件あります。");
}
UI 정책
한마디로, 클라이언트측의 표시·필수 제어를 말한다.
URL : 공식 문서
심상:
설명:
플랫폼상에서의 화면 로드시의 단순 처리를 정의.
기본 용도는 필수 및 읽기 전용을 적용하는 데 사용됩니다.
위의 이미지에서 선택 사항은 필수 항목입니다.
클라이언트 측에 해당한다.
액세스 경로:
System UI > UI Policies
이미지 2
UI 정책:Fields set to mandatory for all states
의미: 모든 상태의 필드에 적응하는 필수 항목
조건 : 모든 조건
동작 : UI 정책 동작
caller_id,short_description=>필수 항목
후술 기사
에 대해서는 다른 기사에서 기재할 예정입니다.
Reference
이 문제에 관하여(ServiceNow 개발 요소_클라이언트측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yasutaka_ono/items/df971c4d9dc54c044496텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)