Módulo deste artigo: Caixa de ferramentas
Ferramentas de payload para SAP CPI: compare, converta e gere dados de teste no navegador
Compare dois payloads, converta XML, JSON, YAML e CSV com as regras dos conversores do SAP, gere payloads de teste com erros e insira snippets de Groovy, offline e ao lado do designer de iFlows.
Metade do trabalho em um iFlow do SAP Cloud Integration (SAP CPI) acontece em torno do payload: duas mensagens que deveriam ser iguais e não são, um corpo JSON que o receptor quer em XML, um conjunto de mensagens de teste para o tratamento de erros, uma linha de Groovy que você escreve toda semana e nunca lembra. Essas tarefas costumam terminar em um editor de texto, um conversor online e um script próprio.
A Toolbox do Kitegra as coloca no navegador, ao lado do designer de iFlows: comparação de payloads, um conversor de formatos, um gerador de payloads de teste, snippets de Groovy com um guia rápido e um HTTP Runner. Com exceção das requisições que você envia com o HTTP Runner, elas funcionam offline. O que você cola fica na página e nunca é armazenado nem enviado.
Onde encontrar a Toolbox
Abra o pop-up da extensão e escolha Ferramentas. A lista da Toolbox abre cada ferramenta em uma aba própria: Comparar payloads, Conversor de formatos, Gerador de payloads de teste, Snippets e guia rápido, HTTP Runner e iFlow Docs. Em um iFlow, o menu da caixa do Kitegra na barra de ferramentas do diagrama também abre Snippets e Notas como painéis na página.
Cada controle tem um pequeno (i) ao lado que diz o que ele faz. A Toolbox não conta iFlows no seu plano.
Comparar payloads
Cole dois payloads, carregue-os de arquivos ou solte-os na página, e as diferenças são marcadas linha por linha. Diferença anterior e Próxima diferença passam de uma diferença para outra, com a contagem de quantas existem.
- Ignorar espaços em branco: linhas que diferem só em espaços, tabulações ou recuo contam como iguais.
- Normalizar XML: ordena os atributos, ignora os prefixos de namespace e recua os dois lados, para que só sobrem as mudanças reais.
- Normalizar JSON: ordena as chaves e recua.
- Somente diferenças: oculta as linhas iguais e mostra no lugar quantas foram ocultadas.
- Trocar A e B: o que aparecia como adicionado aparece como removido.
Um payload que não é XML bem formado nem JSON válido é comparado mesmo assim, como texto. No Message Monitor, o visualizador de payload de uma etapa rastreada tem Comparar com a próxima etapa, que abre esta página com o corpo antes e depois dessa etapa. Veja como rastrear uma mensagem etapa por etapa.
Conversor de formatos
Cole XML, JSON, YAML, CSV ou qualquer texto, ou carregue um arquivo. O formato é detectado pelo conteúdo, e só as conversões que combinam com ele são oferecidas:
- XML para JSON e JSON para XML, seguindo as regras dos próprios conversores do SAP: membros
@namesão atributos,$é o texto de um elemento e um array repete o seu elemento. As opções são as que você define no iFlow: Adicionar elemento raiz XML, Suprimir elemento raiz JSON e os elementos sempre escritos como arrays. - CSV para JSON ou XML e de volta, com o separador detectado ou escolhido, uma linha de cabeçalho e o nome do elemento de linha.
- YAML para JSON e JSON para YAML.
- XML para um XSD inferido, e um XSD para um XML de exemplo.
- Formatar e minificar XML e JSON.
- Codificar e decodificar Base64 e URL; escapar e desescapar strings de XML, JSON e Groovy.
Usar como entrada coloca o resultado de volta na caixa de entrada, para você converter de novo. Ao lado de Converter há mais três abas:
- Validar verifica se a entrada está bem formada e lista cada problema com sua linha e coluna. Forneça um XSD e os elementos do XML, sua ordem e quantidade, os atributos e os tipos simples também são verificados. É uma verificação leve: namespaces, imports, includes, grupos de substituição e chaves não são verificados.
- Localizar e substituir, com expressões regulares do JavaScript e seus grupos.
- Lote converte vários arquivos do mesmo jeito e baixa os resultados em um único ZIP. Um arquivo que falha fica de fora e é listado.
Gerador de payloads de teste
O tratamento de erros é a parte de um iFlow menos testada, porque ninguém tem as mensagens com defeito. O gerador as cria a partir de uma amostra real.
- Cole ou envie uma mensagem real: XML, JSON ou CSV com linha de cabeçalho.
- Confira a tabela de campos. O tipo de cada campo é deduzido do seu valor: texto, inteiro, decimal, booleano, data, data e hora, e-mail, moeda, país, UUID ou null.
- Escolha uma regra para cada campo: Manter o valor da amostra, Aleatório do mesmo tipo, Sequência ou Escolher de uma lista de valores.
- Defina quantos payloads criar (até 1000) e a parcela que recebe um erro.
- Escolha os tipos de erro e clique em Gerar.
Os erros são os que os receptores rejeitam: um campo obrigatório ausente, um campo vazio, um tipo errado, uma data, um e-mail, uma moeda ou um país inválidos, uma quantidade negativa, um namespace errado, XML, JSON ou CSV quebrados, um ID duplicado, um campo a mais e um valor null. Cada payload com defeito recebe um único erro.
A mesma amostra, as mesmas regras e a mesma semente sempre geram os mesmos payloads, então um teste pode ser repetido com os mesmos dados. Baixar ZIP entrega um arquivo por payload mais um manifest.json que lista o erro de cada arquivo e o campo que ele alterou. Baixar como um arquivo grava JSON Lines, ou XML e CSV separados por uma linha em branco. Salvar como conjunto de dados para o Runner passa o conjunto para o HTTP Runner, que pode enviar cada payload ao seu iFlow e mostrar quais respostas voltaram como esperado.
Snippets de Groovy e o guia rápido
A aba Snippets traz 32 padrões de Groovy para scripts do Cloud Integration. Cada um é escrito para ficar dentro de processData(Message message), com os nomes de classe completos, então nenhum import é necessário. Eles cobrem ler e definir o corpo, os headers e as propriedades do exchange, streaming de um corpo grande, XmlSlurper, XmlParser e MarkupBuilder, parsing seguro de XML contra XXE, JsonSlurper e JsonBuilder, valores pesquisáveis no monitoramento, anexos no log da mensagem, falhar com um erro claro, o erro HTTP em um exception subprocess, credenciais do Secure Store e consultas a Value Mapping e Partner Directory.
Pesquise por nome ou tag. Com um script aberto no modo de edição no designer, Inserir digita o snippet no cursor; caso contrário, copie-o. Adicionar os seus guarda até 20 snippets seus, sincronizados com a sua conta Kitegra quando você está com login. Não coloque senhas nem chaves neles.
A aba Guia rápido lista o que você consulta toda semana: os operadores do Simple, padrões de data do Java com exemplos, funções do XPath 1.0 executadas em um XML de exemplo e links para a documentação do SAP e do Apache Camel. Clique em qualquer exemplo para copiá-lo. As expressões em si são explicadas em Expressões Camel Simple no SAP CPI.
Para ler os scripts que um iFlow já tem, use Explicar scripts no iFlow Docs. Para cada script, ele lista a finalidade, o que lê, o que define ou altera, a lógica principal, as APIs do SAP que usa e os riscos.
HTTP Runner
O HTTP Runner chama os endpoints HTTPS do seu iFlow com OAuth a partir de uma service key do Process Integration Runtime, guarda as requisições em coleções e verifica as respostas. Em Informações do iFlow, cada endpoint pode ser copiado como cURL ou aberto no Runner. O passo a passo completo está em testar um iFlow HTTPS com uma service key.
O que ela guarda, e o que o seu plano inclui
A comparação, o conversor, o gerador e o guia rápido rodam na página e não guardam nada. Os seus próprios snippets, e as coleções do HTTP Runner sem valores de autenticação nem variáveis secretas, são sincronizados com a sua conta Kitegra quando você está com login.
As ferramentas offline estão em todos os planos. O HTTP Runner tem uso limitado no Free e no Starter, e completo no Pro e nos planos de equipe. Enquanto o Kitegra é lançado, todas as ferramentas ficam liberadas para todos que entrarem, inclusive no plano Free. Compare os planos.
Experimente no seu próximo iFlow
Veja o que o Kitegra acrescenta ao redor do designer do SAP Integration Suite, ou tudo o que a Toolbox faz.
Perguntas frequentes
Meus payloads são enviados para algum lugar?
Não. A comparação, o conversor, o gerador e o guia rápido rodam na página do navegador. O que você cola ou carrega não é armazenado nem enviado.
O conversor dá o mesmo resultado que os conversores do SAP?
Ele segue as mesmas regras e opções dos conversores JSON to XML e XML to JSON do SAP: atributos, texto de elementos, arrays, o elemento raiz adicionado e a raiz JSON suprimida. Execute o iFlow quando o resultado precisar ser exato.
Posso repetir um conjunto de teste gerado?
Sim. A mesma amostra, as mesmas regras e a mesma semente sempre geram os mesmos payloads. Mudar os erros deixa os valores como estavam.
Como insiro um snippet em um script Groovy?
Abra o script no modo de edição no designer, coloque o cursor onde ele deve entrar e clique em Inserir no snippet. Depois salve o iFlow você mesmo.
A Toolbox conta iFlows?
Não. Só o Helper, o Message Monitor, o iFlow Inspector e o iFlow Docs contam iFlows.