API de regra de negócio - ServiceNow Fluent

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 4 min. de leitura
  • A API de regra de negócio inclui objetos que definem scripts do lado do servidor [sys_script] que são executados quando um registro é exibido, inserido, atualizado ou excluído, ou quando uma tabela é consultada.

    Objeto BusinessRule

    Crie uma regra de negócio [sys_script] que muda automaticamente os valores nos campos de formulário quando determinadas condições do lado do servidor são atendidas.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    $id Cadeia de caracteres ou número Obrigatório. Um ID exclusivo para o objeto de metadados fornecido no seguinte formato, em que<value> é uma cadeia de caracteres ou um número.
    $id: Now.ID[<value>]

    Quando você cria a aplicação, esse ID é convertido em um sys_ID exclusivo.

    nome Cadeia de caracteres Obrigatório. Um nome para a regra de negócio.
    tabela Cadeia de caracteres Obrigatório. O nome da tabela na qual a regra de negócio é executada.
    pedido Inteiro Um número que indica a sequência na qual esta regra de negócio deve ser executada. Se houver várias regras em uma atividade específica, as regras serão executadas na ordem especificada, da mais baixa para a mais alta.

    Padrão: 100

    script Script Uma função ou script em linha precedido por um marcador de script. O script personalizado é executado quando as condições definidas são verdadeiras.

    Para funções, use o nome de uma função, expressão de função ou função padrão exportada de um módulo JavaScript e importada para o arquivo .now.ts. Para obter informações sobre módulos JavaScript, consulte Módulos JavaScript e bibliotecas de terceiros.

    Os scripts em linha usam o marcador de script no seguinte formato:
    script: script`gs.info('info')`,
    quando Cadeia de caracteres Quando esta regra de negócio deve ser executada. Para obter mais informações sobre quando as regras de negócio são executadas, consulte Como as regras de negócio funcionam.

    Valores válidos: antes, depois, assíncrono, exibição

    Padrão: antes

    ação Matriz As opções de registro às quais a regra de negócio se aplica. Para obter mais informações sobre ações de regra de negócio, consulte Como as regras de negócio funcionam.

    Valores válidos: inserir, atualizar, excluir, consultar

    ativo Booliano Sinalizador que indica se a regra de negócio deve ser usada.
    Valores válidos:
    • verdadeiro: a regra de negócio é imposta.
    • falso: a regra de negócio não é imposta.

    Padrão: verdadeiro

    adicionar_mensagem Booliano Sinalizador que indica se uma mensagem que aparece quando a regra de negócio é executada deve ser adicionada.
    Valores válidos:
    • verdadeiro: exibe uma mensagem.
    • falso: não exibe uma mensagem.

    Padrão: falso

    anular_ação Booliano Sinalizador que indica se a transação do banco de dados atual deve ser anulada. Por exemplo, em uma regra de negócio de inserção anterior, se as condições forem atendidas, não insira o registro no banco de dados.
    Valores válidos:
    • falso: não anula a transação atual do banco de dados.
    • verdadeiro: anula a transação atual do banco de dados. Você não pode executar ações adicionais no registro, como definir valores de campos e executar scripts. Você ainda pode exibir uma mensagem para usuários com as propriedades add_message e message.

    Padrão: falso

    mensagem Cadeia de caracteres Uma mensagem que aparece quando a regra de negócio é executada.
    função_condições Matriz Uma lista de identificadores de variáveis de objetos de função que os usuários que estão modificando registros na tabela devem ter para que esta regra de negócio seja executada. Para obter mais informações, consulte API de função - ServiceNow Fluent.
    condição Cadeia de caracteres Uma declaração condicional JavaScript que especifica os campos e valores que devem ser verdadeiros para que a regra de negócio seja executada. Não use esta propriedade se você incluir a declaração de condição com as propriedades filter_condition ou script.

    Ao adicionar a declaração de condição a esta propriedade, você instrui o sistema a avaliar a condição separadamente e executar a regra de negócio somente se a condição for verdadeira. Para que a instância reavalie a declaração de condição uma segunda vez antes de executar uma regra de negócio assíncrona, adicione a propriedade do sistema glide.businessrule.async_condition_check e defina o valor como verdadeiro.

    filter_condition Cadeia de caracteres Uma consulta de filtro que especifica os campos e valores que devem ser verdadeiros para que a regra de negócio seja executada. Para obter mais informações, consulte Operators available for filters and queries.
    definir_campo_valor Cadeia de caracteres Os valores para definir campos na tabela. Isso pode ser fornecido como uma consulta codificada, como set_field_value: 'sec_created=false^EQ'.
    descrição Cadeia de caracteres Uma descrição do que a regra de negócio faz.
    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],
    })