기능 필드
에서 ServiceNow AI Platform 함수 필드와 스크립트를 생성하여 공통 데이터베이스 변환 및 계산을 수행합니다.
일반 필드는 데이터베이스에 값을 저장합니다. 함수 필드는 데이터를 저장하는 대신 데이터베이스 쿼리의 결과를 표시합니다. 함수 필드에 연결된 데이터베이스 열이 없습니다. 대신, 함수 필드는 다른 필드와 상수의 단순 계산을 기반으로 값을 생성합니다. 시스템은 시스템의 다른 필드와 마찬가지로 양식, 목록, 쿼리 조건, 보고서, 데이터 시각화 등에서 사용할 수 있습니다.
사용 케이스
10자 미만의 쓸모없는 짧은 설명으로 모든 인시던트를 식별하려고 합니다.지정된 기준을 충족하는 기록을 결정하기 위해 모든 기록을 쿼리하는 대신, 기준을 충족하는 기록만 검색하는 함수 필드 또는 함수 스크립트를 만듭니다.
간단한 계산의 경우 계산된 값을 저장하는 것보다 함수 필드 또는 함수 스크립트를 사용하는 것이 좋습니다. 이 값은 항상 검색 시 계산됩니다. 함수 필드를 사용하는 또 다른 이점은 애플리케이션 노드가 아닌 데이터베이스 서버가 변환을 수행한다는 것입니다.
함수 필드와 계산된 필드 비교
계산된 필드의 값은 데이터베이스에 저장됩니다. 함수 필드 또는 함수 스크립트의 값은 데이터베이스에 저장되지 않지만 검색 시 계산됩니다. 함수 필드 값은 항상 최신 상태입니다.
함수 필드와 비즈니스 규칙 비교
비즈니스 논리가 하나 이상의 기존 필드의 단순 변환을 기반으로 하는 경우 함수 필드 또는 스크립트를 사용합니다. 함수 필드와 스크립트를 사용하면 변환 결과를 저장하거나 유지관리하지 않고도 비즈니스 논리를 구현할 수 있습니다.
함수 필드와 필터, 쿼리 문자열 및 Rhino 비교
문자열 변환을 수행하기 위해 Rhino를 호출하는 대신, 함수 필드 또는 함수 스크립트를 사용하여 변환을 수행할 수 있습니다. 함수 필드와 함수 스크립트는 효율성이 더 높으며 저장하거나 유지 관리할 필요가 없는 최신 값을 생성합니다.
함수 필드 제한 사항
- 함수 필드는 직접 감사하거나 인덱싱할 수 없습니다.주:함수 필드를 일반 필드처럼 인덱싱하려면 함수에서 사용하는 개별 필드가 인덱싱되어야 합니다. 또는 최상의 성능을 위해 함수에 사용되는 모든 필드를 포함하는 복합 인덱스가 있는지 확인합니다.
- 함수 필드 값은 데이터베이스에 저장되지 않으므로 함수 필드를 암호화할 수 없습니다.
- 기능 필드는 일반 필드로 변환하거나 그 반대로 변환할 수 없습니다.
- 보고 UI에서 생성하는 함수 필드는 닷워킹을 지원하지 않습니다. 자세한 내용은 보고에서 함수 필드 구성을 참조하십시오.
- 보안은 함수의 구성요소와 필드의 계산된 값에 따라 평가됩니다. 시각화에서 사용하면 사용자가 볼 수 없는 정보가 포함된 섹션이 사용자에게 숨겨집니다.
- 필드 함수 이름은 고유해야 합니다.
플랫폼 기능 정의
- 다음 API(애플리케이션 프로그래밍 인터페이스)를 사용하여 스크립트에서 함수를 빌드하고 사용합니다.
표 1. 함수 API API 설명 범위가 지정된 GlideDBFunctionBuilder SQL 작업을 수행할 함수를 구성합니다. GlideRecord - addFunction(객체 함수) GlideRecord에 함수를 적용합니다. GlideDBFunctionCaseBuilder - Global 케이스 문을 작성합니다. - 다음 예와 같이 함수 정의를 포함하는 필드를 만듭니다.
딕셔너리 항목 [sys_dictionary] 양식에서 함수 필드 확인란을 선택합니다. 이 작업은 필드가 값을 저장하지 않고 기능을 실행하도록 지정합니다.
GlideFunction 운영
glidefunction:<operation> 구문을 사용하여 다음 작업을 수행할 수 있습니다. 필드를 인수로 제공할 때 관련 필드로 닷워킹할 수 있습니다. 예를 들어 cmdb_ci.name입니다.| 운영 | 설명 | 예제 |
|---|---|---|
| 추가() | 두 개의 숫자 필드를 입력으로 취하고, 추가하고, 결과를 필드 값으로 반환합니다. 이 함수는 두 입력 중 하나에 대한 숫자 값도 사용합니다. 숫자 값을 작은따옴표 또는 큰따옴표로 묶습니다. |
glidefunction:add(child_incidents, parent_incident) 인시던트에 하위 인시던트 5개와 상위 인시던트 1개가 있는 경우 6을 반환합니다. 가능한 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 |
| 병합() | 쉼표로 구분된 필드 수를 입력으로 받고 첫 번째 비어 있지 않은 값을 반환합니다. | glidefunction:coalesce(closed_at, resolved_at, sys_updated_on) closed_at 값이 비어 있으면 함수는 resolved_at 값을 반환합니다. resolved_at 값도 비어 있으면 함수는 sys_updated_on 값을 반환합니다. 수익 유형: 텍스트 |
| concat() | 쉼표로 구분된 필드와 상수의 수를 입력으로 받고, 입력을 연결하고, 단일 문자열을 필드 값으로 반환합니다. | glidefunction:concat(incident_number, '/', short_description) 숫자 필드의 값이 "INC0001"이고 short_description이 "내 클라이언트에 새 노트북 필요"인 경우 "INC0001 / 내 클라이언트에 새 노트북이 필요합니다."를 반환합니다. 수익 유형: 텍스트 |
| datediff() | 두 날짜/시간 필드를 입력으로 받고, 날짜와 일, 분, 초 사이의 차이를 계산하여 결과를 기간 필드 값으로 반환합니다. | glidefunction:datediff(closed_at, sys_created_on) 작성 날짜부터 종결 날짜까지의 인시던트 기간을 반환합니다. 예시 결과: 10일 8시간 23분 11초 수익 유형: 기간 |
| dayofweek() | 두 개의 인수를 취합니다. 날짜 필드와 '1' (일요일에 주 시작) 또는 '2' (주 월요일에 시작)의 상수를 취합니다. 요일을 나타내는 정수 값으로 결과를 반환합니다. dayofweek() 함수는 UTC 날짜를 사용하지만 인스턴스의 시간대에 따라 비교 값을 조정합니다. |
glidefunction:dayofweek(resolved_at, '1') 수요일에 resolved_at 발생하는 경우 정수가 1이면 4를 반환하고 정수가 2이면 3을 반환합니다. 반환 유형: 정수 |
| distance_sphere() | 두 위치를 가져와 둘 사이의 거리를 미터 단위로 반환합니다. |
수익 유형: 10진수 |
| 나누기() | 두 개의 숫자 필드를 입력으로 취하고, 첫 번째 숫자 필드를 초로 나누고, 결과를 필드 값으로 반환합니다. 이 함수는 두 입력 중 하나에 대한 숫자 값도 사용합니다. 숫자 값을 작은따옴표 또는 큰따옴표로 묶습니다. |
glidefunction:divide(u_num2,u_num1) num2 = 10 및 num1 = 2인 경우 5를 반환합니다. 가능한 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 |
| get_latitude() | 지리적 지점 열, 숫자 필드 또는 숫자 상수를 가져와 [-90,90] 범위 내의 유효한 위도 값으로 변환합니다. |
반환 유형: 부동 소수점 숫자 |
| get_longitude() | 지리적 지점 열, 숫자 필드 또는 숫자 상수를 가져와 [-179,180] 범위 내에서 유효한 경도 값으로 변환합니다. |
반환 유형: 부동 소수점 숫자 |
| greatest() | 두 개 이상의 값을 입력으로 받아 인수 목록의 최대값을 반환합니다. | glidefunction:최대(10,100,1000) 1000을 반환합니다. 가능한 숫자 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 이 함수는 날짜 및 문자열 필드에도 작동합니다. |
| 최소한() | 두 개 이상의 값을 입력으로 사용하고 인수 목록의 가장 낮은 값을 반환합니다. | glidefunction:최소(10,100,1000) 10을 반환합니다. 가능한 숫자 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 이 함수는 날짜 및 문자열 필드에도 작동합니다. |
| 길이() | 문자열 필드를 입력으로 받고, 문자로 필드 길이를 계산하고, 결과를 필드 값으로 반환합니다. | glidefunction:length(short_description) short_description = "이 애플리케이션은 테스트를 수행하고 있습니다"인 경우 37을 반환합니다. 반환 유형: 정수 |
| 곱하기() | 두 개의 숫자 필드를 입력으로 취하고, 곱셈을 수행하고, 결과를 필드 값으로 반환합니다. 이 함수는 두 입력 중 하나에 대한 숫자 값도 사용합니다. 숫자 값을 작은따옴표 또는 큰따옴표로 묶습니다. |
glidefunction:multiply(u_num1, u_num2) num1 = 8 및 num_2 = 6인 경우 48을 반환합니다. 가능한 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 |
| 위치() | 두 개의 텍스트 필드 또는 두 개의 텍스트 필드와 정수를 입력으로 가져옵니다. 텍스트 필드 중 하나 또는 둘 모두 문자열일 수도 있습니다.
첫 번째 텍스트 필드가 두 번째 텍스트 필드(지정된 경우 정수의 위치 다음)에 없으면 0을 반환합니다. |
반환 유형: 정수 |
| 하위 문자열() | 텍스트 필드와 두 개의 정수를 입력으로 가져옵니다. 첫 번째 정수의 위치에서 시작하여 두 번째 길이인 문자열의 첫 번째 인스턴스를 반환합니다. | glidefunction:substring(short_description, '7', '2') short_description 필드의 값이 "매장에 갈게"인 경우 "이동"을 반환합니다. 수익 유형: 텍스트 |
| 빼기() | 두 개의 숫자 필드를 입력으로 취하고, 첫 번째 숫자에서 두 번째 숫자를 뺀 다음 결과를 필드 값으로 반환합니다. 이 함수는 두 입력 중 하나에 대한 숫자 값도 사용합니다. 숫자 값을 작은따옴표 또는 큰따옴표로 묶습니다. |
glidefunction:subtract(u_num1, u_num2) num1 = 8 및 num_2 = 6인 경우 2를 반환합니다. 가능한 반환 유형: 10진수, 부동 소수점 숫자, 큰 정수, 정수 |
| to_geopoint() | 위도 및 경도 열 또는 숫자 값을 가져와 지리적 지점 열로 변환합니다. |
수익 유형: 지리적 지점 |
데이터베이스 기능을 수행할 함수 필드 만들기
수학 연산, 필드 길이 계산 또는 요일 계산과 같은 데이터베이스 함수의 결과를 표시하는 필드를 만듭니다. 프로덕션 인스턴스에 배포하기 전에 하위 프로덕션 인스턴스에서 테스트합니다.
시작하기 전에
프로시저
결과
함수 정의가 잘못되면 예상 값 대신 함수 필드가 문자열 유형 필드이거나 다른 필드 유형에 대해 빈 값인 경우 함수가 잘못 됨이라는 메시지가 표시됩니다.