비즈니스 규칙 API - ServiceNow Fluent

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 8분
  • 비즈니스 규칙 API는 기록이 표시, 삽입, 업데이트 또는 삭제되거나 테이블이 쿼리될 때 실행되는 서버 측 스크립트[sys_script]를 정의합니다.

    주:
    최신 ServiceNow Fluent API 설명서 및 예제는 ServiceNow Fluent API 참조ServiceNow SDK 예제 리포지토리 는 의 위치에 있습니다 GitHub.

    비즈니스 규칙에 대한 일반적인 정보는 다음 문서를 참조하십시오 Classic Business rules.

    BusinessRule 객체

    특정 서버 측 조건이 충족될 때 양식 필드의 값을 자동으로 변경하는 비즈니스 규칙 [sys_script]을 만듭니다.

    표 1. 속성
    이름 유형 설명
    $id 문자열 또는 숫자 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 ServiceNow Fluent 언어 구성 문서를 참조하십시오.

    형식: Now.ID['문자열' 또는 숫자]

    이름 문자열 필수 비즈니스 규칙의 이름입니다.
    테이블 문자열 필수 비즈니스 규칙이 실행되는 테이블의 이름입니다.
    스크립트 스크립트 정의된 조건이 true이면 사용자 지정 스크립트가 실행됩니다. 이 속성은 JavaScript 모듈의 함수, 스크립트가 포함된 애플리케이션의 다른 파일에 대한 참조 또는 인라인 JavaScript를 지원합니다.
    체재:
    • 함수의 경우 JavaScript 모듈에서 익스포트한 함수, 함수 표현식 또는 기본 함수의 이름을 사용하여 .now.ts 파일로 임포트합니다. JavaScript 모듈에 대한 자세한 내용은 다음 문서를 참조하십시오 JavaScript 모듈 및 타사 라이브러리.
    • 다른 파일의 텍스트 콘텐츠를 사용하려면 Now.include('경로/대상/파일') 형식을 사용하여 애플리케이션에서 파일을 참조합니다. 자세한 내용은 ServiceNow Fluent 언어 구성 문서를 참조하십시오.
    • 인라인 스크립트를 제공하려면 여러 줄의 코드에 문자열 리터럴 또는 템플릿 리터럴을 사용합니다( 'Script' 또는 'Script').
    순서 번호 비즈니스 규칙이 실행되어야 하는 순서를 나타내는 숫자입니다. 특정 활동에 대한 규칙이 여러 개 있는 경우 규칙은 가장 낮은 것부터 가장 높은 것 순으로 지정된 순서대로 실행됩니다.

    기본값: 100

    활성 부울 비즈니스 규칙을 사용할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 비즈니스 규칙이 적용됩니다.
    • false: 비즈니스 규칙이 적용되지 않습니다.

    기본값: true

    시기 문자열 비즈니스 규칙을 실행해야 하는 시간입니다. 비즈니스 규칙이 실행되는 시기에 대한 자세한 내용은 다음 문서를 참조하십시오 How business rules work.
    유효한 값은 다음과 같습니다.
    • 다음 날짜 전
    • 다음 날짜 후
    • 비동기
    • 표시

    기본값: 이전

    작업 배열 비즈니스 규칙이 적용되는 기록 옵션입니다. 비즈니스 규칙 작업에 대한 자세한 내용은 다음 문서를 참조하십시오 How business rules work.
    유효한 값은 다음과 같습니다.
    • 삽입
    • 업데이트
    • 삭제
    • 쿼리
    추가 메시지 부울 비즈니스 규칙이 실행될 때 나타나는 메시지를 추가할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 메시지를 표시합니다.
    • false: 메시지를 표시하지 않습니다.

    기본값: false

    abort작업 부울 현재 데이터베이스 트랜잭션을 중단할지 여부를 나타내는 플래그입니다. 예를 들어 삽입 전 비즈니스 규칙에서 조건이 충족되면 데이터베이스에 기록을 삽입하지 마십시오.
    유효한 값은 다음과 같습니다.
    • false: 현재 데이터베이스 트랜잭션을 중단하지 않습니다.
    • true: 현재 데이터베이스 트랜잭션을 중단합니다. 필드 값 설정 및 스크립트 실행과 같은 기록에 대한 추가 작업은 수행할 수 없습니다. addMessagemessage 속성을 사용하여 사용자에게 메시지를 표시할 수 있습니다.

    기본값: false

    메시지 문자열 비즈니스 규칙이 실행될 때 나타나는 메시지입니다.
    역할 조건 배열 비즈니스 규칙을 실행하려면 테이블의 기록을 수정하는 사용자가 가지고 있어야 하는 역할 객체의 변수 식별자 목록입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오.
    조건 문자열 스크립트가 실행되기 위해 예여야 하는 필드와 값을 지정하는 JavaScript 조건문입니다. 이 속성은 인라인 JavaScript 또는 스크립트가 포함된 애플리케이션의 다른 파일에 대한 참조를 지원합니다.
    주:
    filterCondition 또는 script 속성과 함께 조건문을 포함하는 경우에는 이 속성을 사용하지 마십시오.

    이 속성으로 조건문을 지정하면 조건이 별도로 평가되고 조건이 true인 경우에만 비즈니스 규칙이 실행됩니다. 비동기 비즈니스 규칙을 실행하기 전에 조건문을 두 번째로 다시 평가하려면 시스템 속성을 true로 설정합니다 glide.businessrule.async_condition_check .

    체재:
    • 다른 파일의 텍스트 콘텐츠를 사용하려면 Now.include('경로/대상/파일') 형식을 사용하여 애플리케이션에서 파일을 참조합니다. 자세한 내용은 ServiceNow Fluent 언어 구성 문서를 참조하십시오.
    • 인라인 스크립트를 제공하려면 여러 줄의 코드에 문자열 리터럴 또는 템플릿 리터럴을 사용합니다( 'Script' 또는 'Script').
    filterCondition 문자열 비즈니스 규칙을 실행하기 위해 True여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오.
    setFieldValue 문자열 테이블의 필드에 대해 설정할 값입니다. 이는 setFieldValue: 'sec_created=false^EQ'와 같이 인코딩된 쿼리로 제공할 수 있습니다.
    설명 문자열 비즈니스 규칙이 수행하는 작업에 대한 설명입니다.
    보호 정책 문자열 애플리케이션이 인스턴스에 설치된 후 다른 사용자가 스크립트 포함을 보거나 편집할 수 있는지 여부를 결정하는 정책입니다. 정의되지 않은 경우 다른 애플리케이션 개발자가 스크립트 포함을 사용자 지정할 수 있습니다.
    유효한 값은 다음과 같습니다.
    • 읽기: 누구나 다운로드하거나 설치된 이 스크립트 포함에서 값을 읽을 수 있습니다. 누구도 스크립트 포함을 다운로드하거나 설치하는 인스턴스에서 스크립트 값을 변경할 수 없습니다.
    • 보호됨: 애플리케이션 개발자에게 지적 재산권 보호를 제공합니다. 스크립트 포함을 다운로드한 고객은 스크립트 필드의 내용을 볼 수 없습니다. 스크립트는 권한이 없는 사용자가 일반 텍스트로 볼 수 없도록 메모리에서 암호화됩니다.
    $meta 객체 애플리케이션 메타데이터의 메타데이터입니다.
    installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다.
    $meta: {
          installMethod: 'String'
    }
    installMethod에 유효한 값:
    • demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다.
    • 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다.
    import { BusinessRule } from '@servicenow/sdk/core'
    import { FunctionExport, FunctionExpression } from '../server/scripts.js'
    import DefaultExportFunction from '../server/scripts.js'
    
    const BR1 = BusinessRule({
        name: 'exportedFunction',
        table: 'x_snc_table',
        when: 'after',
        action: ['update', 'delete', 'insert'],
        script: FunctionExport,
        order: 100,
        active: true,
        addMessage: false,
        message: '<p>message</p>',
        abortAction: false,
        $id: Now.ID[0],
    })
    
    const BR2 = BusinessRule({
        name: 'businessrule2',
        table: 'x_snc_table',
        script: FunctionExpression,
        when: 'after',
        action: ['update'],
        $id: Now.ID[1],
    })
    
    const BR3 = BusinessRule({
        name: 'businessrule3',
        table: 'x_snc_table',
        script: DefaultExportFunction,
        when: 'after',
        action: ['update'],
        filterCondition: `sys_updated_onSTARTSWITHb^sys_updated_bySTARTSWITHm^EQ
        <item goto="false" or="false" field="sys_updated_on" endquery="false" value="b" operator="STARTSWITH" newquery="false"/>
        <item goto="false" or="false" field="sys_updated_by" endquery="false" value="m" operator="STARTSWITH" newquery="false"/>
        <item goto="false" or="false" field="" endquery="true" value="" operator="=" newquery="false"/>`,
        $id: Now.ID[2],
    })
    
    const BR4 = BusinessRule({
        name: 'templateBR',
        action: ['insert'],
        when: 'after',
        table: 'x_snc_table',
        roleConditions: [admin],
        order: 100,
        active: true,
        addMessage: true,
        message: '<p>message</p>',
        script: `gs.info('info')`,
        abortAction: false,
        $id: Now.ID[3],
    })