ServiceNow Fluent 언어 구성
ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.
Now.ID
Now.ID 구문은 소스 코드에 정의된 메타데이터에 대해 사용자가 읽을 수 있는 고유 ID를 지정하는 데 사용됩니다. Now.ID API의 ServiceNow Fluent$id 속성과 함께 Now.ID['문자열' 또는 숫자] 형식을 사용합니다. 애플리케이션을 빌드할 때 ID는 고유한 sys_id으로 해시됩니다.
Now.ID 사용하여 메타데이터의 ID를 정의할 때만 사용할 수 있으며 애플리케이션의 다른 메타데이터를 참조하는 데는 사용할 수 없습니다. 동일한 애플리케이션 내에서 다른 메타데이터를 참조하려면 객체를 const 변수에 할당하고 다른 객체에서 변수 식별자를 참조할 수 있습니다.
import { Role } from "@servicenow/sdk/core"
const managerRole = Role({
$id: Now.ID['manager_role'],
name: 'x_snc_example.manager'
})
Record({
table: 'some_table',
data: {
role: managerRole //"role" is a reference field to sys_user_role
}
})
Now.ref
Now.ref 구문은 소스 코드에 정의되지 않은 다른 애플리케이션에서 메타데이터를 참조하는 데 사용됩니다. Now.ref는 API의 ServiceNow Fluent 참조 속성과 함께 Now.ref['table', 'sys_id' 또는 {column: 'value'}, {column: 'value'}] 형식을 사용합니다.
import { Role } from "@servicenow/sdk/core"
Role({
name: 'x_test.admin',
contains_roles: [
'x_test.manager',
Now.ref('sys_user_role', { name: 'x_test.itil' }), // Coalescing ID reference
Now.ref('sys_user_role', '${itomId}'), // GUID-based reference
Now.ref('sys_user_role', '3D82d1a88947942a90b6d8aa25126d439b', { name: 'x_test.csm' }), // GUID with coalescing ID reference
],
})
Now.include
Now.include 구문은 콘텐츠를 인라인으로 포함하지 않고 동일한 애플리케이션의 다른 파일에 있는 텍스트 콘텐츠를 참조하는 데 사용됩니다. Now.include는 API의 ServiceNow Fluent 속성과 함께 Now.include("./path/to/file") 형식의 상대 파일 경로를 사용합니다. Now.include를 사용하면 파일 형식에 적합한 구문을 강조 표시하여 코딩할 수 있으며 JavaScript, HTML, CSS 등과 같은 다른 언어를 지원하는 속성에 특히 유용합니다.
Now.include 는 양방향 동기화를 지원하므로 다른 ServiceNow AI Platform 사용자 인터페이스의 필드에 대한 변경 사항은 참조된 파일의 소스 코드로 동기화되고 소스 코드에 대한 변경 사항은 인스턴스 전체의 메타데이터로 다시 동기화됩니다.
import { ScriptInclude } from '@servicenow/sdk/core'
ScriptInclude({
$id: Now.ID['my-script-include'],
name: 'MyScriptInclude',
active: true,
apiName: 'x_scriptincludes.MyScriptInclude',
script: Now.include('./MyScriptInclude.server.js') //The actual content of the "script" field is contained in the file specified
})
Now.attach
Now.attach 구문은 동일한 애플리케이션에서 이미지 파일을 참조하고 소스 코드에 정의된 메타데이터와 연결된 레코드에 첨부하는 데 사용됩니다. Now.attach는 API에서 ServiceNow Fluent 사용자 이미지(user_image 필드 유형)를 지원하는 속성이 있는 Now.attach('./path/to/file') 형식의 상대 파일 경로를 사용합니다. Now.attach 는 .jpg, .jpeg, .png, .gif, .bmp, .ico 및 .svg 파일 형식을 지원합니다.
Now.attach 는 양방향 동기화를 지원하므로 다른 ServiceNow AI Platform 사용자 인터페이스의 이미지 파일에 대한 변경 내용이 소스 코드의 응용 프로그램에 동기화되고 소스 코드의 이미지 파일에 대한 변경 내용이 인스턴스 전체의 메타데이터로 다시 동기화됩니다.
import { Record } from '@servicenow/sdk/core'
Record({
$id: Now.ID['sample-service-portal'],
table: 'sp_portal',
data: {
title: 'Sample Portal',
url_suffix: 'sample',
icon: Now.attach('../../assets/servicenow.jpg')
}
})
Now.attach 구문을 const 변수에 할당하고 다른 속성에서 변수 식별자를 참조하여 애플리케이션에서 이미지를 다시 사용할 수도 있습니다. 예:
import { Record } from '@servicenow/sdk/core'
const image = Now.attach('../../assets/servicenow.jpg')
Record({
$id: Now.ID['test'],
table: 'sp_portal',
data: {
title: 'Test Portal',
url_suffix: 'test',
icon: image,
logo: image,
}
})