Visão geral
GitHub: https://github.com/brianmcleer/add-edit-etl-widget
Adicionar, mapear e editar dados é um widget personalizado que combina dois widgets prontos do Esri, Adicionar dados e Editar, e insere uma etapa de mapeamento de campos entre eles. Ele surgiu de um problema recorrente que eu enfrentava. Alguém tem uma planilha ou camada que quer inserir em uma camada editável existente, mas os nomes dos campos de entrada nunca correspondem aos da camada de destino, então os dados precisam ser reorganizados fora do Experience Builder antes que alguém possa editá-los. Eu queria que tudo — adicionar, mapear, carregar e editar — acontecesse em um único widget, sem sair do aplicativo.
O usuário adiciona dados da mesma forma que no widget padrão Adicionar dados: de um arquivo, URL ou conteúdo do ArcGIS. Depois, mapeia os campos de entrada para os campos da camada de destino. O mapeamento permite relações de um para um, de muitos para um, de um para muitos e de muitos para muitos, para que você possa concatenar alguns campos em um só, dividir um campo em vários, combinar valores, inserir uma constante ou escrever uma pequena expressão quando necessário. Após uma validação e visualização rápidas, os registros são carregados na camada de destino em lotes e, em seguida, podem ser editados no mapa com as ferramentas padrão de Edição.
Assim como nos meus outros widgets, a camada de destino e as opções ficam no painel de configurações, então você pode apontá-lo para sua própria camada sem editar código. Os mapeamentos também podem ser exportados e importados como XML, o que permite salvar e reutilizar um mapeamento criado para um carregamento recorrente, em vez de recriá-lo toda vez.
Adicionando seus dados
A etapa de adição usa a experiência padrão do Adicionar dados, então os dados podem vir de três lugares:
- Um arquivo do seu computador. Os formatos de upload compatíveis são shapefile, geodatabase de arquivos, CSV, GeoJSON, KML e GPX. Shapefiles e geodatabases de arquivos precisam estar compactados em ZIP. Aplicam-se os limites do Esri: CSV limitado a 1.000 registros e os outros tipos a 4.000, com limite de 2 MB para shapefiles e 10 MB para os demais, e até 30 arquivos por vez.
- Uma URL de serviço web. Você pode apontar para um serviço de feições, serviço de mapa, serviço de blocos vetoriais, serviço de imagens, serviço de cenas, WFS, WMS, WMTS, KML, GeoJSON ou CSV.
- Conteúdo do ArcGIS. Pesquise seu próprio conteúdo, seus grupos, sua organização e conteúdo público, incluindo o ArcGIS Living Atlas of the World.
Seja qual for a origem, depois que os dados são adicionados, a etapa de mapeamento alinha os campos com os da camada de destino. Assim, o formato original não importa quando os registros são gravados.
Recursos
Na prática, esta é uma ferramenta ETL leve que funciona dentro do Experience Builder. Adicionar é a extração, a etapa de mapeamento é a transformação e a gravação na camada de destino é o carregamento. Assim, o tipo de reorganização que normalmente seria feito em uma ferramenta de desktop ou em uma etapa ETL separada acontece diretamente no aplicativo.
- Um fluxo de trabalho ETL leve no aplicativo: extraia com Adicionar dados, transforme com o mapeamento de campos e carregue na camada de destino, sem precisar de uma ferramenta de desktop ou etapa ETL separada.
- Adicionar dados, mapear campos, carregar e editar em um único widget guiado.
- Mapeamento de campos de um para um, de muitos para um, de um para muitos e de muitos para muitos, com conversão de tipos e validação antes de qualquer gravação.
- Etapa de validação e visualização, seguida por um carregamento em lotes com indicador de progresso.
- Exportação e importação de mapeamentos em XML para carregamentos repetíveis e reutilizáveis.
- Adição opcional da camada de destino ao mapa, com zoom para as feições carregadas e zoom para uma feição quando ela é selecionada durante a edição.
- Escala de zoom configurável, para que o zoom realmente altere a escala em vez de apenas deslocar o mapa.
- Permissões de edição, opções de ajuste e ferramentas avançadas de edição disponíveis no painel de configurações.
- Controles acessíveis pelo teclado e rótulos para leitores de tela em todo o widget.
Requisitos
ArcGIS Experience Builder Developer Edition 1.19 ou 1.20, que usam React 19. O EB 1.18 e versões anteriores usam React 18 e não são compatíveis.
Instalação
Baixe o arquivo ZIP anexado e extraia seu conteúdo. Coloque a pasta add-edit-etl em client\your-extensions\widgets para que o arquivo manifest.json fique diretamente dentro de client\your-extensions\widgets\add-edit-etl, sem uma pasta aninhada a mais. Execute npm install na pasta client e reinicie. As instruções completas, incluindo a correção para nomes duplicados, estão no README do GitHub.
Comentários
Esta é a primeira versão, então pode haver algumas arestas. Se encontrar um bug ou tiver uma ideia do que ele deveria fazer, deixe um comentário nesta publicação e vou dar uma olhada.
Créditos e licença
Este é um trabalho derivado dos widgets Adicionar dados e Editar do Esri, ambos criados pelo Esri R&D Center Beijing e publicados sob a Apache License, Version 2.0. O widget foi combinado, modificado e ampliado pela City of Grand Junction, CO. Licenciado sob Apache-2.0. Trabalho original com direitos autorais do Esri; modificações com direitos autorais da City of Grand Junction, CO.
Registro de alterações
12/10/2026: Agora, o widget segue o idioma do aplicativo (?locale=, seletor de idioma, perfil do ArcGIS ou navegador) em 39 idiomas, incluindo o guia de ajuda.
Você tem seus próprios widgets personalizados? A mesma ferramenta gratuita, exb-i18n-kit, pode traduzi-los com um único comando: localize. Veja como ela preenche cada frase:
- Esri em primeiro lugar. Ela lê as traduções já presentes na sua instalação do Experience Builder, então uma frase como “Zoom to” usa a mesma tradução dos widgets do próprio Esri.
- Termos padronizados. Nomes de unidades, como pés e acres, vêm do Unicode CLDR, a mesma base de dados usada pelos navegadores.
- Memória de tradução compartilhada. O que ainda faltar vem de um dicionário compartilhado criado com o LibreTranslate, um tradutor de código aberto, além dos modelos Opus-MT da Helsinki-NLP para bósnio, croata e sérvio. Ele funciona gratuitamente no GitHub, então você não precisa de chave de API nem de conta.
- Integração. Ela também encontra textos em inglês codificados fora do arquivo de tradução do widget, como uma configuração padrão ou um guia de ajuda, e os conecta para que também sejam traduzidos.
As correções feitas manualmente sempre prevalecem sobre as da máquina e nunca são substituídas. Algumas traduções são feitas automaticamente, então responda aqui com uma sugestão melhor se encontrar alguma que não esteja adequada.
23 de julho de 2026:
- A v1.2.1 atualiza o widget para compatibilidade com o Experience Builder 1.21, com as versões do manifesto e do pacote atualizadas para 1.21 e a adição de um tsconfig no nível do widget para uma resolução de tipos mais limpa no editor.
7 de julho de 2026:
- Inserir, atualizar ou inserir/atualizar. Escolha um campo-chave e, ao recarregar, os registros serão atualizados no lugar, em vez de duplicados.
- Verifique os dados antes de carregá-los. O relatório aponta valores nulos, valores inválidos, violações de domínio e chaves duplicadas, sem gravar nada.
- Novas transformações: análise de datas com indicação de formato, mapas de valores para recodificação, conversão de unidades e modelos {field}.
- As linhas com falha podem ser baixadas como CSV, com o erro de cada uma.
- A exportação XML agora inclui tudo, inclusive o modo de carregamento e a chave.
23 de junho de 2026: Adição de várias camadas de destino e edição da simbologia no mapa; reposicionamento e reformulação do painel de simbologia.
22 de junho de 2026: Lançamento inicial, agora no GitHub.