비즈니스 규칙 API - ServiceNow Fluent

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 6분
  • 비즈니스 규칙 API에는 기록이 표시, 삽입, 업데이트 또는 삭제되거나 테이블이 쿼리될 때 실행되는 서버 측 스크립트[sys_script]를 정의하는 개체가 포함되어 있습니다.

    BusinessRule 객체

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

    표 1. 속성
    이름 유형 설명
    $id 문자열 또는 숫자 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.
    $id: Now.ID[<value>]

    애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다.

    이름 문자열 필수 비즈니스 규칙의 이름입니다.
    테이블 문자열 필수 비즈니스 규칙이 실행되는 테이블의 이름입니다.
    순서 정수 이 비즈니스 규칙이 실행되어야 하는 순서를 나타내는 숫자입니다. 특정 활동에 여러 규칙이 있는 경우 규칙은 가장 낮은 것부터 가장 높은 것 순으로 지정된 순서대로 실행됩니다.

    기본값: 100

    스크립트 스크립트 스크립트 태그 앞에 오는 함수 또는 인라인 스크립트입니다. 사용자 지정 스크립트는 정의된 조건이 true일 때 실행됩니다.

    함수의 경우 JavaScript 모듈에서 내보내고 .now.ts 파일로 가져온 함수, 함수 표현식 또는 기본 함수의 이름을 사용합니다. JavaScript 모듈에 대한 자세한 내용은 을 참조하십시오 JavaScript 모듈 및 타사 라이브러리.

    인라인 스크립트는 다음 형식으로 script 태그를 사용합니다.
    script: script`gs.info('info')`,
    언제 문자열 이 비즈니스 규칙을 실행해야 하는 시기입니다. 비즈니스 규칙이 실행되는 시점에 대한 자세한 내용은 다음 문서를 참조하십시오 비즈니스 규칙의 작동 방식.

    유효한 값: before, after, async, display

    기본값: before

    작업 배열 비즈니스 규칙이 적용되는 기록 옵션입니다. 비즈니스 규칙 작업에 대한 자세한 내용은 다음 문서를 참조하십시오 비즈니스 규칙의 작동 방식.

    유효한 값: insert, update, delete, query

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

    기본값: true

    add_message 부울 비즈니스 규칙이 실행될 때 나타나는 메시지를 추가할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 메시지를 표시합니다.
    • false: 메시지를 표시하지 않습니다.

    기본값: false

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

    기본값: false

    메시지 문자열 비즈니스 규칙이 실행될 때 나타나는 메시지입니다.
    role_conditions 배열 테이블의 기록을 수정하는 사용자에게 이 비즈니스 규칙을 실행하기 위해 필요한 역할 객체의 변수 식별자 목록입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오.
    condition 문자열 비즈니스 규칙을 실행하기 위해 True여야 하는 필드와 값을 지정하는 JavaScript 조건문입니다. 또는 script 속성과 함께 filter_condition 조건문을 포함하는 경우에는 이 속성을 사용하지 마십시오.

    이 속성에 조건문을 추가하면 조건을 별도로 평가하고 조건이 true인 경우에만 비즈니스 규칙을 실행하도록 시스템에 지시할 수 있습니다. 비동기 비즈니스 규칙을 실행하기 전에 인스턴스가 조건문을 다시 평가하도록 하려면 시스템 속성을 glide.businessrule.async_condition_check 추가하고 값을 true로 설정합니다.

    filter_condition 문자열 비즈니스 규칙을 실행하기 위해 True여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오.
    set_field_value 문자열 테이블의 필드를 설정하는 값입니다. set_field_value: 'sec_created=false^EQ'와 같이 인코딩된 쿼리로 제공할 수 있습니다.
    description 문자열 비즈니스 규칙이 수행하는 작업에 대한 설명입니다.
    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,
        add_message: false,
        message: '<p>message</p>',
        abort_action: 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'],
        filter_condition: `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',
        role_conditions: [admin],
        order: 100,
        active: true,
        add_message: true,
        message: '<p>message</p>',
        script: script`gs.info('info')`,
        abort_action: false,
        $id: Now.ID[3],
    })