ServiceNow Fluent
도메인별 프로그래밍 언어를 사용하여 ServiceNow Fluent 소스 코드에서 애플리케이션 메타데이터를 정의합니다.
ServiceNow Fluent 개요
ServiceNow Fluent 는 애플리케이션을 구성하는 메타데이터 파일[sys_metadata]을 정의하기 위한 TypeScript 기반의 DSL(Domain-Specific Language)이며 테이블, 역할, ACL, 비즈니스 규칙 및 Automated Test Framework 테스트와 같은 다양한 유형의 메타데이터에 대한 API를 포함합니다.
개발자는 양식 또는 작성기 도구 사용자 인터페이스를 통하지 않고 몇 줄의 코드로 이 메타데이터를 정의합니다. 를 ServiceNow IDE 사용하여 작성되거나 변환된 응용 프로그램 또는 ServiceNow SDK 에서 개발 ServiceNow Fluent중인 지원.
or 사용을 ServiceNow IDE 시작하려면 or ServiceNow SDK 설명서를 참조하십시오ServiceNow IDE.ServiceNow SDK
API
ServiceNow Fluent 에는 다음과 같은 유형의 메타데이터에 대한 API가 포함되어 있습니다. 기록 API를 사용하여 전용 API가 없는 애플리케이션 메타데이터를 정의할 수 있습니다.
API 및 예제에 대한 자세한 내용은 ServiceNow SDK 예제 GitHub 리포지토리를 참조하십시오ServiceNow Fluent API reference.
- 접근 제어 목록(ACL)
- 애플리케이션 메뉴
- Automated Test Framework 테스트
- 비즈니스 규칙
- 클라이언트 스크립트
- 목록
- 속성
- 기록
- 역할
- 스크립트 기반 REST API
- 테이블
사용량
확장명이 .now.ts 인 파일에서 API의 ServiceNow Fluent 개체를 사용하여 애플리케이션에서 메타데이터를 정의합니다. @servicenow/sdk/core에서 API에 필요한 가져오기도 포함해야 합니다.
import '@servicenow/sdk/global'
import { BusinessRule } from '@servicenow/sdk/core'
import { ClientScript } from '@servicenow/sdk/core'
import { Table, DateColumn, StringColumn } 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' },
in_progress: { 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,
applies_extended: false,
global: true,
ui_type: 'all',
description: 'Custom client script generated by Now SDK',
messages: '',
isolate_script: false,
type: 'onLoad',
script: script`function onLoad() {
g_form.addInfoMessage("Table loaded successfully!!")
}`,
})
//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,
})애플리케이션을 빌드한 후 이 소스 코드는 인스턴스에 다음과 같은 애플리케이션 메타데이터 파일을 생성합니다.
@fluent-ignore: 다음 코드 줄에서 진단 경고 및 오류를 표시하지 않습니다 ServiceNow Fluent .@fluent-disable-sync: 개체에 대한 ServiceNow Fluent 변경 내용 동기화를 끕니다. 호출 식 앞(예:Record({ ... }))을 사용하여 해당 개체 및 해당 자식 개체에 대한 동기화를 해제합니다. 개체에 대한 소스 코드 외부의 변경 내용을 무시하고 동기화할 때 업데이트하지 않으려는 경우에만 이 지시문을 사용합니다.@fluent-disable-sync-for-file: 파일에 대한 ServiceNow Fluent 변경 사항 동기화를 끕니다(.now.ts). 파일의 첫 번째 줄에서 파일의 모든 코드에 대한 동기화를 해제하는 데 사용합니다. 파일에 대한 소스 코드 외부의 변경 사항을 무시하고 동기화할 때 업데이트하지 않으려는 경우에만 이 지시문을 사용합니다.