Webhooks. Se você não programa, pode pensar que integrações via webhook são assustadoras ou pelo menos precisam de middleware extra além do ArcGIS. Errado em ambos os casos. Todos os integradores cidadãos que conseguem montar um FME<\/STRONG> workbench com a extensão Data Interoperability<\/STRONG>, e possuem a extensão tanto para Pro 2.6<\/STRONG> quanto para Enterprise 10.8.1<\/STRONG>, podem automatizar integrações acionadas por webhook entre pesquisas Survey123<\/STRONG> e qualquer outra coisa que o Data Interoperability possa alcançar.<\/P><\/P>Vou descrever o cenário caso você ainda não tenha explorado esse padrão de automação antes. Survey123 é um aplicativo de captura de dados baseado em formulários que gerencia um serviço de feição onde cada pesquisa é uma feição de ponto, linha ou área com atributos que você projeta. Os formulários têm comportamento avançado e suportam dispositivos web e móveis. Existem possibilidades ilimitadas para processamento posterior das feições da pesquisa. O que este blog vai cobrir é este fluxo de dados:<\/P><\/P>Uma submissão de pesquisa Survey123 representa uma transação para seu serviço de feição (adicionar, atualizar)<\/LI>Um webhook definido para o tipo de transação é acionado a cada submissão<\/LI>A URL do webhook é uma chamada execute para uma ferramenta web Spatial ETL (serviço de geoprocessamento)<\/LI>A ferramenta web realiza uma integração usando a(s) feição(ões) da submissão da pesquisa<\/LI><\/UL><\/P>Montar isso tudo é questão de configuração, então vamos começar. Vou descrever a combinação de plataforma mais comum - Survey123 hospedado no ArcGIS Online e seu servidor de integração sendo um portal ArcGIS Enterprise - mas se você tiver Survey123 na sua infraestrutura empresarial, isso também funcionará.<\/P><\/P>Como você criará uma ferramenta web que lê e grava em um serviço de feição, será necessário compartilhar uma conexão web com seu servidor conforme descrito em este blog<\/A>, então seu primeiro passo é garantir que a conta proprietária do serviço (por padrão chamada 'arcgis') no seu servidor possa iniciar o Workbench conforme descrito e usar uma conexão web para onde os serviços de feição do Survey123 estão hospedados. Não prossiga além deste ponto até ter compartilhado com sucesso uma ferramenta web que utilize a conexão web, como a ferramenta de teste descrita no blog.<\/P><\/P>Agora vou avançar para explicar como evitar o que pode parecer uma falha silenciosa do seu webhook. Survey123 (ou seja, https:\/\/survey123.arcgis.com<\/A>) fará chamadas ao seu servidor com uma requisição POST, então ele precisa ser confiável. Abaixo está uma captura de tela do meu navegador enquanto envio uma pesquisa, com o painel do depurador aberto (Firefox). Eu destaquei a requisição POST enviada ao meu servidor - funcionou. Se seu servidor rejeitar uma requisição do Survey123, você verá mensagens de erro relacionadas a CORS - compartilhamento de recursos entre origens diferentes.<\/P><\/P><\/P><\/P>Veja este tópico sobre como permitir que o Survey123 acesse seu servidor - Cross Origin Resource Sharing.<\/A><\/P>Aqui está como fica nas configurações do portal:<\/P><\/P><\/P><\/P>Para mim essa configuração não foi suficiente, também precisei alterar as configurações do cabeçalho HTTP Response no IIS. No seu servidor, abra o IIS no controle HTTP Response Header, dê um duplo clique para abrir e Adicione<\/STRONG> o que você vê abaixo.<\/P><\/P><\/P><\/P><\/P><\/P>Agora que o servidor está configurado, vamos configurar o fluxo de dados. Se você prestar atenção verá que minha pesquisa de teste é sobre um sanduíche de caviar. Se pesquisar as coordenadas, é totalmente possível que você realmente possa comprar um lá! Meu ponto real, porém, é que o Survey123 está enviando um monte de JSON, e pode ser muito complexo para uma pesquisa grande. Se você olhar outras plataformas de integração verá que embora tentem parecer<\/EM> abordagens sem código, talvez seja necessário analisar JSON no meio do processo para obter os dados desejados. No entanto, o Survey123 sempre grava em um serviço de feição, que claro o Data Interoperability entende nativamente, então temos o luxo de esquecer o JSON voando por aí e ir direto ao serviço de feição. Fantástico!<\/P><\/P>Primeiro porém, crie sua pesquisa. Aqui está a minha:<\/P><\/P><\/P><\/P>Quando uma pesquisa é submetida, uma feição é gravada em seu serviço de feição e então<\/<EM>\/<\strong> qualquer webhook configurado é acionado - você pode ver o POST applyEdits<\/<\strong> na visualização do depurador do meu navegador acima, antes do POST do webhook. Para suportar o serviço de geoprocessamento da integração encontrando novos registros, minha pesquisa contém uma pergunta oculta e obrigatória 'Integrated' com valor padrão 'N', que minha integração edita para 'Y'. Criei minha pesquisa no designer web, que não suporta perguntas ocultas, depois editei no Survey123 Connect para adicionar a pergunta, aqui está como fica quando editada:<\p\ >E quando salva na pesquisa:<\p\ >Você precisa atualizar e republicar a pesquisa para aplicar a mudança no esquema.<\p\ >Então agora minha pesquisa tem um campo que posso usar como sinalizador para seleção no processamento. Criei alguns registros para poder projetar o workspace da integração, e aqui está:<\p\ >Também está disponível no download do blog. Ele não faz nenhuma integração real - isso é com você - mas você pode ver o padrão. Leia registros onde integrate = 'N', faça suas operações, depois atualize integrate para 'Y' e grave novamente no serviço usando GlobalID como campo chave. Certifique-se que a fonte da sua ferramenta esteja embutida.<\p\ >Se você tiver muitos colaboradores na sua pesquisa e por acaso duas pesquisas forem submetidas simultaneamente não importa se uma execução processa duas pesquisas e outra nenhuma. Se estiver preocupado com latência das pesquisas gravando no serviço de feição comece seu processo com uma combinação Creator-Decelerator-FeatureReader.<\p\ >Testei manualmente o processamento antes de publicar a ferramenta web submetendo pesquisas e executando a ferramenta em modo edição. A partir daí estou pronto para compartilhar a ferramenta web. Execute a ferramenta na toolbox para criar um item History e depois compartilhe-a. Você notará que o serviço deve ser público, se isso não for possível na sua organização então leve o Survey123 para sua infraestrutura empresarial.<\p\ >Configure a ferramenta como síncrona.  Se perceber que suas instâncias disponíveis não conseguem acompanhar passe para assíncrona.Minha ferramenta não tem parâmetros.Quando ela terminar de ser compartilhada vá até a URL do serviço e copie o valor, aqui está o meu:Então meu URI do webhook é: https://dev0014223.esri.com/server/rest/services/WebhookIntegration/G PServer/WebhookIntegration /execute & nbsp;< P>Agora tudo o que resta fazer é configurar o webhook na minha pesquisa.<\/P><\/P><\/P><\/P>Agora, quando uma pesquisa de sandwich chega, minha integração webhook é acionada e Integrated = 'Y'.<\/P><\/P><\/P><\/P>Integração genuína sem código, cortesia do ArcGIS Data Interoperability<\/STRONG>. Se você me vir em lojas locais de sandwich, estou trabalhando - honestamente.<\/P><\/BODY><\/HTML>
<\/P>
Agora vou avançar para explicar como evitar o que pode parecer uma falha silenciosa do seu webhook. Survey123 (ou seja,
Veja este tópico sobre como permitir que o Survey123 acesse seu servidor -
Aqui está como fica nas configurações do portal:<\/P>
Para mim essa configuração não foi suficiente, também precisei alterar as configurações do cabeçalho HTTP Response no IIS. No seu servidor, abra o IIS no controle HTTP Response Header, dê um duplo clique para abrir e Adicione<\/STRONG> o que você vê abaixo.<\/P><\/P><\/P><\/P><\/P><\/P>Agora que o servidor está configurado, vamos configurar o fluxo de dados. Se você prestar atenção verá que minha pesquisa de teste é sobre um sanduíche de caviar. Se pesquisar as coordenadas, é totalmente possível que você realmente possa comprar um lá! Meu ponto real, porém, é que o Survey123 está enviando um monte de JSON, e pode ser muito complexo para uma pesquisa grande. Se você olhar outras plataformas de integração verá que embora tentem parecer<\/EM> abordagens sem código, talvez seja necessário analisar JSON no meio do processo para obter os dados desejados. No entanto, o Survey123 sempre grava em um serviço de feição, que claro o Data Interoperability entende nativamente, então temos o luxo de esquecer o JSON voando por aí e ir direto ao serviço de feição. Fantástico!<\/P><\/P>Primeiro porém, crie sua pesquisa. Aqui está a minha:<\/P><\/P><\/P><\/P>Quando uma pesquisa é submetida, uma feição é gravada em seu serviço de feição e então<\/<EM>\/<\strong> qualquer webhook configurado é acionado - você pode ver o POST applyEdits<\/<\strong> na visualização do depurador do meu navegador acima, antes do POST do webhook. Para suportar o serviço de geoprocessamento da integração encontrando novos registros, minha pesquisa contém uma pergunta oculta e obrigatória 'Integrated' com valor padrão 'N', que minha integração edita para 'Y'. Criei minha pesquisa no designer web, que não suporta perguntas ocultas, depois editei no Survey123 Connect para adicionar a pergunta, aqui está como fica quando editada:<\p\ >E quando salva na pesquisa:<\p\ >Você precisa atualizar e republicar a pesquisa para aplicar a mudança no esquema.<\p\ >Então agora minha pesquisa tem um campo que posso usar como sinalizador para seleção no processamento. Criei alguns registros para poder projetar o workspace da integração, e aqui está:<\p\ >Também está disponível no download do blog. Ele não faz nenhuma integração real - isso é com você - mas você pode ver o padrão. Leia registros onde integrate = 'N', faça suas operações, depois atualize integrate para 'Y' e grave novamente no serviço usando GlobalID como campo chave. Certifique-se que a fonte da sua ferramenta esteja embutida.<\p\ >Se você tiver muitos colaboradores na sua pesquisa e por acaso duas pesquisas forem submetidas simultaneamente não importa se uma execução processa duas pesquisas e outra nenhuma. Se estiver preocupado com latência das pesquisas gravando no serviço de feição comece seu processo com uma combinação Creator-Decelerator-FeatureReader.<\p\ >Testei manualmente o processamento antes de publicar a ferramenta web submetendo pesquisas e executando a ferramenta em modo edição. A partir daí estou pronto para compartilhar a ferramenta web. Execute a ferramenta na toolbox para criar um item History e depois compartilhe-a. Você notará que o serviço deve ser público, se isso não for possível na sua organização então leve o Survey123 para sua infraestrutura empresarial.<\p\ >Configure a ferramenta como síncrona.  Se perceber que suas instâncias disponíveis não conseguem acompanhar passe para assíncrona.Minha ferramenta não tem parâmetros.Quando ela terminar de ser compartilhada vá até a URL do serviço e copie o valor, aqui está o meu:Então meu URI do webhook é:
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.