Criando aplicações no código-fonte
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.
|
IDE da ServiceNow |
ServiceNow SDK |
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).
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.TsconfigPathparâ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 TsconfigPathGera resultados de diagnóstico do typescript usando o. tsconfig.json arquivo.Aviso:Você não pode usar este parâmetro e o.ModulePathsparâ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.jsonpara uma aplicação. O valor padrão de fallbackFolderNameé outro . - Inicialização: O processo de compilação gera um arquivo XML de inicialização com o.
- 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.