Criando aplicações no código-fonte

  • Versão de lançamento: Zurich
  • Atualizado 30 de jan. de 2025
  • 8 min. de leitura
  • Crie e desenvolva aplicações personalizadas em código-fonte usando ferramentas e processos de desenvolvimento familiares.

    Visão geral do desenvolvimento no código-fonte

    Você pode criar aplicações com escopo no código usando IDE da ServiceNowem ServiceNow AI Platformou localmente em Visual Studio CodeDesktop com ServiceNow SDK.

    Em qualquer ambiente de desenvolvimento, você usa ServiceNow Fluent, uma linguagem de programação específica do domínio, para definir os metadados que compõem as aplicações. ServiceNow FluentInclui APIs para definir os diferentes tipos de metadados.

    Com o. IDE da ServiceNowou ServiceNow SDK, Você também pode criar módulos JavaScript e usar bibliotecas de terceiros em sua aplicação para otimizar a reutilização de código em scripts em uma aplicação com escopo.

    O desenvolvimento e a manutenção de aplicações no código-fonte permitem que você trabalhe em ambientes de desenvolvimento familiares, crie e modifique aplicações complexas, gerencie código no controle de código-fonte com mais facilidade e detecte erros no tempo de compilação.

    Nota:
    . IDE da ServiceNowe. ServiceNow SDKNo momento, não são compatíveis com o escopo global ou com as aplicações globais.

    Comparação de IDE da ServiceNowe o. ServiceNow SDK

    Recurso IDE da ServiceNow ServiceNow SDK
    Ambiente de desenvolvimento On-line ServiceNowinstância Desenvolvimento local e a capacidade de trabalhar offline
    Interface do usuário IDE baseado em Visual Studio CodePara a web Visual Studio Code Desktop
    Colaboração Visualize as mudanças do usuário em tempo real em código ou incorporado ServiceNow AI PlatformInterfaces do usuário do Explorador de metadados.

    Colabore com outros desenvolvedores em aplicações no controle de código-fonte.

    Faça download de mudanças de uma instância e instale mudanças locais em uma instância usando o. ServiceNow SDKCLI para colaborar com outros usuários.

    Colabore com outros desenvolvedores em aplicações no controle de código-fonte.

    Controle de código-fonte Compatível com a funcionalidade Git mais comum e integrando-se com um provedor Git de sua escolha.

    Uma ramificação simultânea por repositório por instância (ou sandbox do desenvolvedor) .

    Suporte completo
    Conversão da aplicação Suporte para converter aplicações com escopo existentes não criadas com o. IDE da ServiceNowou ServiceNow SDK. Suporte para converter aplicações com escopo existentes não criadas com o. IDE da ServiceNowou ServiceNow SDK.
    ServiceNow Fluent Suporte completo

    . ServiceNow FluentO servidor de idiomas está incluído com o. IDE da ServiceNow.

    Suporte completo

    . ServiceNow FluentO servidor de idiomas pode ser instalado a partir do Visual Studio CodeMercado de extensões.

    Módulos JavaScript e bibliotecas de terceiros Suporte completo Suporte completo
    Now Assist para Code Suporte de preenchimento automático de código para scripts.

    Para obter informações sobre ativação, consulte Now Assist for Code.

    Sem suporte
    Agente de desenvolvimento Suporte completo. Criar agente é acessado a partir de um painel de bate-papo no IDE da ServiceNow.

    Para obter informações sobre ativação, consulte ../../build-agent/concept/build-agent.html.

    Sem suporte

    Estrutura da aplicação

    Aplicações com escopo personalizado criadas com o. IDE da ServiceNowou ServiceNow SDKIncluir arquivos de código-fonte e arquivos XML de metadados. . pacote.json e. now.config.json Os arquivos definem a estrutura da aplicação, que é semelhante à das aplicações Node.js ou aos pacotes do Gerenciador de pacotes de nós (npm).

    Figura 1. Estrutura padrão de uma aplicação criada no IDE da ServiceNow
    A estrutura de uma aplicação criada no IDE da ServiceNow

    Por padrão, as aplicações incluem os seguintes diretórios e arquivos. Você pode modificar determinados aspectos da estrutura da aplicação para atender às suas necessidades no now.config.json arquivo.

    .vsscode
    Diretório que contém Recomendado Visual Studio Codeextensões.
    dist
    Diretório que contém os artefatos de compilação para empacotamento. Este diretório inclui os seguintes subdiretórios:
    • app : Diretório que contém os arquivos XML de metadados criados.
    • estático : Diretório que contém os arquivos de ativos estáticos criados.
    metadados

    Diretório que contém os metadados da aplicação (xml) da aplicação, como esquemas de tabela e regras de negócios, organizados na mesma estrutura de diretório existente ServiceNowaplicações.

    Nota:
    Os metadados da aplicação não devem ser editados a partir dos arquivos XML. Edite metadados da aplicação no código-fonte ou no ServiceNow AI Platform.
    node_modules
    Diretório que contém os módulos Node.js de terceiros dos quais sua aplicação depende.
    src
    Diretório que contém o código-fonte da sua aplicação. Este diretório inclui os seguintes subdiretórios:
    • cliente : Diretório que contém os arquivos do lado do cliente para desenvolver interfaces do usuário.
    • fluente : Diretório que contém ServiceNow Fluententrada de código .now.ts arquivos. . gerado o subdiretório contém os arquivos da aplicação convertidos para ServiceNow Fluent.
    • servidor : Diretório que contém o código do módulo JavaScript em .js ou .ts arquivos.
    target
    Diretório que contém um pacote instalável ( .zip arquivo) para carregar em uma instância.
    .eslintrc.json
    Arquivo que contém a configuração do ESLint. O ESLint ajuda a identificar e corrigir problemas no código da aplicação.
    .gitignore
    Arquivo que contém uma lista de diretórios ou arquivos a serem ignorados pelo Git. Esses arquivos não são rastreados no controle de código-fonte.
    now.config.json
    Arquivo que contém ServiceNowconfiguração da aplicação. . now.config.json o arquivo deve estar no diretório base de uma aplicação.
    Você pode configurar a estrutura de diretórios de uma aplicação adicionando os seguintes parâmetros. Por exemplo:
    {
      "scope": "x_snc_example_app",
      "scopeId": "2f8400eb07426110f736e28f69d3017a",
      "name": "ExampleApp",
      "dependencies": {
        "global": {
          "tables": ["incident"],
          "roles": ["admin"],
        },
        "x_custom": {
          "tables": ["custom_table"]
        }
      },
      "metadataDir": "metadata",
      "fluentDir": "src/fluent",
      "generatedDir": "generated",
      "serverModulesDir": "src/server",
      "clientDir": "src/client",
      "appOutputDir": "dist/app",
      "staticContentDir": "dist/static",
      "packOutputDir": "target",
      "modulePaths": {
          "src/server/*.ts": "dist/server/*.js",
        },
      "staticContentPaths": {
          "src/client/*.html": "dist/static/*.html",
        },
      "ignoreTransformTableList": ["ua_table_licensing_config", "sys_embedded_help_role"],
      "taxonomy": {
            "mapping": {
                "sys_script": "scripts/server/rules",
                "custom_table": "my-custom-folder/my-nested-folder"
            },
            "fallbackFolderName": "unclassified" 
        }
    }
    Tabela 1. Parâmetros now.config.json compatíveis
    Parâmetro Descrição
    dependências Os itens em outro escopo da aplicação do qual sua aplicação depende. Você deve especificar o escopo da aplicação e o tipo de dependência e os nomes ou sys_ids.
    "dependencies": {
        "<scope>": {
          "<type>": ["<sys_id or name>"],
          ...
        },
        ...
    }

    Para obter mais informações, consulte Download ServiceNow Fluentdependências da aplicação.

    MetadataDir Diretório que contém os metadados da aplicação como arquivos XML.

    Padrão: metadados

    FluentDir Diretório que contém ServiceNow Fluentarquivos ( .now.ts ) que definem metadados da aplicação no código-fonte.

    Padrão: src/fluente

    GeradoDir Diretório que contém gerado ServiceNow Fluentarquivos, incluindo metadados da aplicação existentes convertidos em ServiceNow Fluentcódigo. Este diretório é relativo ao diretório definido com fluentDirparâmetro.

    Padrão: gerado

    ServerModulesDir Diretório que contém os arquivos javascript ou typescript a serem incorporados nos módulos JavaScript para uso em scripts do lado do servidor.

    Padrão: src/servidor

    ClienteDir Diretório que contém os arquivos do lado do cliente para desenvolver interfaces do usuário com o React.

    Padrão: src/cliente

    AppOutputDir

    Diretório para gerar os artefatos de compilação para o empacotamento. Os comandos de pacote e instalação referem-se a este diretório empacota os artefatos.

    Padrão: dist/app

    StaticContentDir Diretório para gerar os arquivos de ativos estáticos usados para desenvolver interfaces do usuário.

    Padrão: dist/estático

    Dir Diretório para gerar o pacote instalável ( .zip arquivo) ao criar a aplicação. O comando install se refere a este diretório para instalar o pacote.

    Padrão: destino

    ServerModulesIncludePatterns Uma lista de padrões de arquivo a serem incluídos ao criar módulos JavaScript.
    Padrão:
    [
      "**/*.ts",
      "**/*.tsx",  
      "**/*.js",
      "**/*.jsx",
      "**/*.cts",
      "**/*.cjs",
      "**/*.mts",
      "**/*.mjs",
      "**/*.json"
    ]
    ServerModulesExcludePatterns Uma lista de padrões de arquivo a serem excluídos ao criar módulos JavaScript.
    Padrão:
    [
      "**/*.test.ts",
      "**/*.test.js",
      "**/*.d.ts"
    ]
    ModulePaths Um mapa dos arquivos de origem do módulo para seus arquivos de saída equivalentes para se você usar uma etapa de transpilação personalizada antes de criar a aplicação. Para obter mais informações, consulte Usando typescript em módulos JavaScript com ServiceNow SDK.
    Aviso:
    Você não pode usar este parâmetro e o. TsconfigPath parâmetro. A configuração de ambos resulta em um erro.
    StaticContentPaths Um mapa dos arquivos de origem do lado do cliente para os caminhos de saída dos arquivos de ativos estáticos.
    TsconfigPath Um caminho para um tsconfig.json Arquivo com opções personalizadas para transcodificar o typescript para JavaScript durante o processo de compilação. Especificando um TsconfigPath Gera resultados de diagnóstico do typescript usando o. tsconfig.json arquivo.
    Aviso:
    Você não pode usar este parâmetro e o. ModulePaths parâmetro. A configuração de ambos resulta em um erro.

    Padrão: .

    IgnoreTransformTableList Uma lista de tabelas a serem ignoradas ao transformar metadados da aplicação em código-fonte.
    TableOutputFormat O tipo de artefatos de compilação para XML de metadados da tabela gerados ServiceNow Fluentcódigo.
    Valores válidos:
    • Inicialização: O processo de compilação gera um arquivo XML de inicialização com o. <database> Elemento raiz da tabela, arquivos XML de rótulo de campo [sys_documentation], arquivos XML de configuração de licenciamento [ua_table_licensing_config] e arquivos XML de numeração automática [sys_number].
    • Componente: O processo de compilação gera arquivos XML para cada componente da API de tabela.

    Padrão: bootstrap

    taxonomia Uma configuração para organização gerada ServiceNow Fluentarquivos, que mapeia nomes de tabela para diretórios e define um diretório de fallback. A configuração de taxonomia padrão usa ServiceNowclassificações de tabela padrão a serem adicionadas geradas ServiceNow Fluentarquivos em uma estrutura de diretório lógico no fluente/gerado diretório quando os metadados são inicialmente transformados em ServiceNow Fluentcódigo. Por exemplo:
    • As regras de negócio [sys_script] foram adicionadas ao fluent/generated/server-development/business-rule diretório.
    • As inclusões de script [sys_script_include] foram adicionadas ao fluent/generated/server-development/script-include diretório.

    Você pode substituir os mapeamentos padrão ou configurar mapeamentos adicionais. No exemplo a seguir, a configuração substitui o diretório padrão para regras de negócios [sys_script] e a pasta de fallback e configura um mapeamento adicional para metadados de uma tabela personalizada.

    "taxonomy": {
            "mapping": {
                "sys_script": "scripts/server/rules",
                "custom_table": "my-custom-folder/my-nested-folder"
            },
            "fallbackFolderName": "unclassified"
    }
    • Mapeamento: Um objeto que mapeia nomes de tabela para diretórios. Os caminhos do diretório são relativos ao diretório configurado com o. generatedDiro parâmetro e deve incluir somente letras minúsculas, números, hifens, sublinhados e barras para separar subdiretórios.
    • FallbackFolderName: Um nome para um diretório ser usado para tabelas que não têm um mapeamento padrão ou personalizado configurado. Neste diretório, ServiceNow Fluentos arquivos são adicionados a subdiretórios nomeados após a tabela, como src/fluent/generated/other/x-unmapped-table/ .

    Padrão: Os mapeamentos de taxonomia padrão são definidos para todos os padrões ServiceNowas tabelas e são aplicadas automaticamente quando nenhuma configuração personalizada é definida no now.config.json para uma aplicação. O valor padrão de fallbackFolderNameé outro .

    now.prebuild.mjs
    Arquivo atualizado automaticamente que contém informações completas sobre dependências e suas versões. Este arquivo só está disponível com ServiceNow SDK.
    package-lock.json
    Arquivo atualizado automaticamente que contém informações completas sobre dependências e suas versões. Este arquivo só está disponível com ServiceNow SDK.
    pacote.json

    Arquivo que contém informações sobre sua aplicação e dependências de módulo personalizadas ou de terceiros. . pacote.json o arquivo deve estar no diretório base de uma aplicação. Em uma instância, o. pacote.json o caminho é especificado em JSON do pacote campo do registro da aplicação personalizada [sys_app] no formato <scope>/<package-name>/<version>/package.json .

    Aplicações e recursos relacionados

    APIs JavaScript
    Use APIs JavaScript em scripts que você escreve para mudar a funcionalidade de aplicações ou ao criar aplicações.