ServiceNow IDE 에서 코드로 ServiceNow Fluent애플리케이션 메타데이터 정의
ServiceNow Fluent를 사용하여 코드에서 애플리케이션 메타데이터 정의 ServiceNow IDE에서 .
시작하기 전에
애플리케이션을 생성, 변환 또는 복제하여 작업 공간에 추가합니다. 자세한 내용은 ServiceNow IDE에서 애플리케이션 추가 문서를 참조하십시오.
필요한 역할: 관리자
이 태스크 정보
ServiceNow Fluent 은 애플리케이션을 구성하는 메타데이터 파일 [sys_metadata]을 정의하기 위한 TypeScript를 기반으로 하는 DSL(도메인별 언어)이며 테이블, 역할, ACL, 비즈니스 규칙 및 Automated Test Framework 테스트와 같은 다양한 유형의 메타데이터에 대한 API를 포함합니다. API 및 예제에 대한 ServiceNow Fluent 자세한 내용은 다음 문서를 참조하십시오 ServiceNow Fluent API 참조.ServiceNow IDE 기본적으로 API 및 애플리케이션에 대한 ServiceNow Fluent 언어 처리 및 확인이 있습니다.
프로시저
@fluent-ignore: 다음 코드 줄에서 진단 경고 및 오류를 표시하지 ServiceNow Fluent 않습니다.@fluent-disable-sync: 객체에 ServiceNow Fluent 대한 변경 내용 동기화를 끕니다. 호출 식(예:Record({ ... })) 앞에 사용하여 해당 객체와 해당 하위 객체에 대한 동기화를 끕니다. 객체에 대한 소스 코드 외부의 변경 사항을 무시하고 동기화할 때 업데이트하지 않으려는 경우에만 이 지시문을 사용하십시오.@fluent-disable-sync-for-file: 파일에 대한 ServiceNow Fluent 변경 내용 동기화를 끕니다(.now.ts). 파일의 첫 번째 줄에서 사용하여 파일의 모든 코드 동기화를 끕니다. 소스 코드 외부에서 파일에 대한 변경 사항을 무시하고 동기화할 때 업데이트하지 않으려는 경우에만 이 지시문을 사용하십시오.
ServiceNow Fluent를 사용하여 소스 코드에서 애플리케이션 메타데이터 정의
.now.ts 확장명이 있는 파일에서는 API의 객체를 ServiceNow Fluent 사용하여 애플리케이션의 메타데이터를 정의합니다. 또한 @servicenow/sdk/core의 API에 필요한 임포트를 포함해야 합니다. BusinessRule 개체처럼 서버 측 스크립트가 있는 개체의 경우 JavaScript 모듈에서 코드를 임포트하여 사용할 수 있습니다.
import '@servicenow/sdk/global'
import { BusinessRule, ClientScript, DateColumn, StringColumn, Table } from '@servicenow/sdk/core'
import { showStateUpdate } from '../server/script.js'
//creates todo table, with three columns (deadline, status and task)
export const x_snc_example_to_do = Table({
name: 'x_snc_example_to_do',
schema: {
deadline: DateColumn({ label: 'Deadline' }),
state: StringColumn({
label: 'State',
choices: {
ready: { label: 'Ready' },
completed: { label: 'Completed' },
inProgress: { label: 'In Progress' },
},
}),
task: StringColumn({ label: 'Task', maxLength: 120 }),
},
})
//creates a client script that pops up 'Table loaded successfully!!' message everytime todo record is loaded
ClientScript({
$id: Now.ID['cs0'],
name: 'my_client_script',
table: 'x_snc_example_to_do',
active: true,
appliesExtended: false,
global: true,
uiType: 'all',
description: 'Custom client script generated by Now SDK',
isolateScript: false,
type: 'onLoad',
script: Now.include('../client/client-script.js'),
})
//creates a business rule that pops up state change message whenever a todo record is updated
BusinessRule({
$id: Now.ID['br0'],
action: ['update'],
table: 'x_snc_example_to_do',
script: showStateUpdate,
name: 'LogStateChange',
order: 100,
when: 'after',
active: true,
})애플리케이션을 빌드한 후 이 소스 코드는 인스턴스에 다음과 같은 애플리케이션 메타데이터 파일을 생성합니다.