Modulo di questo articolo: Cassetta degli attrezzi
Strumenti per i payload SAP CPI: confrontare, convertire e generare dati di test nel browser
Confronta due payload, converti XML, JSON, YAML e CSV con le regole dei convertitori di SAP, genera payload di test con errori e inserisci snippet Groovy, offline e accanto al designer dell'iFlow.
Metà del lavoro su un iFlow di SAP Cloud Integration (SAP CPI) ruota attorno al payload: due messaggi che dovrebbero essere uguali e non lo sono, un corpo JSON che il receiver vuole in XML, un set di messaggi di test per la gestione degli errori, una riga di Groovy che scrivi ogni settimana e non ricordi mai. Di solito questi lavori finiscono in un editor di testo, in un convertitore online e in uno script tuo.
La Toolbox di Kitegra li porta nel browser, accanto al designer dell'iFlow: confronto dei payload, un convertitore di formati, un generatore di payload di test, snippet Groovy con un promemoria e un HTTP Runner. A parte le richieste che invii con l'HTTP Runner, funzionano offline. Ciò che incolli resta nella pagina e non viene mai salvato né inviato.
Dove trovare la Toolbox
Apri il popup dell'estensione e scegli Strumenti. L'elenco della Toolbox apre ogni strumento in una scheda dedicata: Confronto payload, Convertitore di formati, Generatore di payload di test, Snippet e promemoria, HTTP Runner e iFlow Docs. Su un iFlow, il menu del riquadro Kitegra nella barra degli strumenti del diagramma apre anche Snippet e Note come pannelli nella pagina.
Ogni controllo ha accanto una piccola (i) che spiega cosa fa. La Toolbox non conta iFlow per il tuo piano.
Confronto payload
Incolla due payload, caricali da file o trascinali nella pagina, e le differenze vengono evidenziate riga per riga. Differenza precedente e Differenza successiva passano da una differenza all'altra, con il conteggio di quante sono.
- Ignora spazi: le righe che differiscono solo per spazi, tabulazioni o rientri contano come uguali.
- Normalizza XML: ordina gli attributi, ignora i prefissi dei namespace e indenta entrambi i lati, così restano solo le modifiche reali.
- Normalizza JSON: ordina le chiavi e indenta.
- Solo differenze: nasconde le righe uguali e mostra al loro posto quante ne sono state nascoste.
- Scambia A e B: ciò che appariva come aggiunto appare come rimosso.
Un payload che non è XML ben formato o JSON valido viene comunque confrontato, come testo. Nel Message Monitor, il visualizzatore del payload di uno step tracciato ha Confronta con il passo successivo, che apre questa pagina con il corpo prima e dopo quello step. Vedi tracciare un messaggio step by step.
Convertitore di formati
Incolla XML, JSON, YAML, CSV o qualsiasi testo, oppure carica un file. Il formato viene riconosciuto dal contenuto e vengono proposte solo le conversioni adatte:
- Da XML a JSON e da JSON a XML, secondo le regole dei convertitori di SAP: i membri
@namesono attributi,$è il testo di un elemento e un array ripete il proprio elemento. Le opzioni sono quelle che imposti nell'iFlow: Aggiungi elemento radice XML, Ometti elemento radice JSON e gli elementi scritti sempre come array. - Da CSV a JSON o XML e viceversa, con il separatore riconosciuto o scelto, una riga di intestazione e il nome dell'elemento di riga.
- Da YAML a JSON e da JSON a YAML.
- Da XML a un XSD dedotto, e da un XSD a un XML di esempio.
- Formattazione e minificazione per XML e JSON.
- Codifica e decodifica Base64 e URL; escape e unescape di stringhe XML, JSON e Groovy.
Usa come input rimette il risultato nella casella di input, così puoi convertirlo di nuovo. Accanto a Converti ci sono altre tre schede:
- Convalida verifica che l'input sia ben formato ed elenca ogni problema con riga e colonna. Se gli dai un XSD, vengono controllati anche gli elementi dell'XML, il loro ordine e numero, gli attributi e i tipi semplici. È un controllo leggero: namespace, import, include, gruppi di sostituzione e chiavi non vengono controllati.
- Trova e sostituisci, con le espressioni regolari JavaScript e i loro gruppi.
- Batch converte più file allo stesso modo e scarica i risultati in un unico ZIP. Un file che non riesce viene escluso ed elencato.
Generatore di payload di test
La gestione degli errori è la parte di un iFlow meno testata, perché nessuno ha i messaggi difettosi. Il generatore li crea da un campione reale.
- Incolla o carica un messaggio reale: XML, JSON o CSV con riga di intestazione.
- Controlla la tabella dei campi. Il tipo di ogni campo è dedotto dal suo valore: testo, intero, decimale, booleano, data, data e ora, e-mail, valuta, paese, UUID o null.
- Scegli una regola per ogni campo: Mantieni il valore del campione, Casuale dello stesso tipo, Sequenza o Scegli da un elenco di valori.
- Imposta quanti payload creare (fino a 1000) e la quota che riceve un errore.
- Scegli i tipi di errore e fai clic su Genera.
Gli errori sono quelli che i receiver rifiutano: un campo obbligatorio mancante, un campo vuoto, un tipo sbagliato, una data, un'e-mail, una valuta o un paese non validi, una quantità negativa, un namespace sbagliato, XML, JSON o CSV danneggiati, un ID duplicato, un campo in più e un valore null. Ogni payload difettoso riceve un solo errore.
Lo stesso campione, le stesse regole e lo stesso seed danno sempre gli stessi payload, così un test può essere ripetuto con gli stessi dati. Scarica ZIP fornisce un file per payload più un manifest.json che elenca l'errore di ogni file e il campo modificato. Scarica come un unico file scrive JSON Lines, oppure XML e CSV separati da una riga vuota. Salva come set di dati per il Runner passa il set all'HTTP Runner, che può inviare ogni payload al tuo iFlow e mostrare quali risposte sono tornate come previsto.
Snippet Groovy e il promemoria
La scheda Snippet contiene 32 pattern Groovy per gli script di Cloud Integration. Ognuno è scritto per stare dentro processData(Message message), con i nomi di classe completi, quindi non serve alcun import. Coprono lettura e impostazione del corpo, degli header e delle proprietà dell'exchange, lo streaming di un corpo grande, XmlSlurper, XmlParser e MarkupBuilder, il parsing XML sicuro contro XXE, JsonSlurper e JsonBuilder, valori ricercabili nel monitoraggio, allegati nel log del messaggio, il fallimento con un errore chiaro, l'errore HTTP in un exception subprocess, le credenziali del Secure Store e le ricerche in Value Mapping e Partner Directory.
Cercali per nome o tag. Con uno script aperto in modifica nel designer, Inserisci scrive lo snippet al cursore; altrimenti copialo. Aggiungi i tuoi conserva fino a 20 snippet tuoi, sincronizzati con il tuo account Kitegra quando hai effettuato l'accesso. Non metterci password né chiavi.
La scheda Promemoria elenca ciò che cerchi ogni settimana: gli operatori di Simple, i pattern di data Java con esempi, le funzioni XPath 1.0 eseguite su un XML di esempio e i link alla documentazione di SAP e di Apache Camel. Fai clic su un esempio per copiarlo. Le espressioni stesse sono spiegate in Espressioni Camel Simple in SAP CPI.
Per leggere gli script che un iFlow ha già, usa Spiega gli script in iFlow Docs. Per ogni script indica lo scopo, cosa legge, cosa imposta o modifica, la logica principale, le API SAP che usa e i rischi.
HTTP Runner
L'HTTP Runner chiama gli endpoint HTTPS del tuo iFlow con OAuth da una service key di Process Integration Runtime, conserva le richieste in raccolte e controlla le risposte. In Info iFlow, ogni endpoint si copia come cURL o si apre nel Runner. La guida completa è in testare un iFlow HTTPS con una service key.
Cosa conserva e cosa include il tuo piano
Il confronto, il convertitore, il generatore e il promemoria girano nella pagina e non conservano nulla. I tuoi snippet e le raccolte dell'HTTP Runner, senza valori di autenticazione né variabili segrete, si sincronizzano con il tuo account Kitegra quando hai effettuato l'accesso.
Gli strumenti offline sono in tutti i piani. L'HTTP Runner ha un uso limitato con Free e Starter, e completo con Pro e i piani per team. Durante il lancio di Kitegra, tutti gli strumenti sono aperti a chiunque abbia effettuato l'accesso, anche con il piano Free. Confronta i piani.
Provalo nel tuo prossimo iFlow
Scopri cosa aggiunge Kitegra attorno al designer di SAP Integration Suite, oppure tutto ciò che fa la Toolbox.
Domande frequenti
I miei payload vengono inviati da qualche parte?
No. Il confronto, il convertitore, il generatore e il promemoria girano nella pagina del browser. Ciò che incolli o carichi non viene salvato né inviato.
Il convertitore dà lo stesso risultato dei convertitori di SAP?
Segue le stesse regole e opzioni dei convertitori JSON to XML e XML to JSON di SAP: attributi, testo degli elementi, array, l'elemento radice aggiunto e la radice JSON omessa. Esegui l'iFlow quando il risultato deve essere esatto.
Posso ripetere un set di test generato?
Sì. Lo stesso campione, le stesse regole e lo stesso seed danno sempre gli stessi payload. Cambiare gli errori lascia i valori com'erano.
Come inserisco uno snippet in uno script Groovy?
Apri lo script in modifica nel designer, metti il cursore dove deve andare e fai clic su Inserisci nello snippet. Poi salva tu l'iFlow.
La Toolbox conta gli iFlow?
No. Solo Helper, Message Monitor, iFlow Inspector e iFlow Docs contano gli iFlow.