Esercitazioni > Solution Designer > Workflow > Personalizzazione di workflow in Therefore™ Online Risoluzione dei problemi |
Scroll |
Come funziona il lavoro 'Chiama funzione'?
Una comprensione di base del funzionamento di questa funzione è fondamentale per le procedure di risoluzione dei problemi. Il diagramma illustra l'interazione tra i diversi componenti. Quando il lavoro “Chiama funzione” viene eseguito in Workflow Engine, viene inviata una richiesta POST HTTPS alla funzione. Se la chiamata ha esito positivo, la funzione chiamata viene eseguita e molto probabilmente invia una chiamata a Therefore™ Server mediante Web API per recuperare documenti, dati indice o ulteriori informazioni richieste per questo scopo.
La funzione chiamata può essere una funzione Azure, un servizio web o qualsiasi eseguibile in grado di rispondere a una richiesta POST HTTPS. È tuttavia necessario che la funzione chiamata restituisca un oggetto JSON che contenga la stringa "TheError" e anche il valore booleano “TheRoutingDone” oppure il numero intero “TheRetryAfterMin”. Se la funzione è stata sviluppata da Therefore™, può risiedere in hosting nell'abbonamento Azure di Therefore™ Online.
Per motivi di sicurezza, le funzioni sviluppate dai clienti devono essere eseguite sul loro abbonamento Azure o sulla loro infrastruttura.
Come illustrato nel diagramma, tutte le connessioni tra Therefore™ e la funzione chiamata sono soltanto richieste POST HTTPS e chiamate (Web) API. Nessun codice del cliente viene eseguito direttamente dal servizio server, né all'interno dell'ambiente Therefore™ Online. Per le chiamate Web API vengono eseguite tutte le verifiche delle autorizzazioni abituali. Il token di accesso fornito con la richiesta HTTPS è limitato all'istanza di workflow corrente. In virtù di questa architettura, la personalizzazione del workflow può essere utilizzata in Therefore™ Online in modo sicuro.
|
---|
Come vengono segnalati gli errori?
Tutti i messaggi di errore generati devono essere registrati nello storico del workflow.
Come illustrato nel diagramma dell'architettura, Therefore™ invia soltanto una richiesta HTTPS, mentre la parte più importante (il codice del cliente) viene eseguita all'interno della funzione chiamata.
Se la funzione ha esito negativo, tutti gli errori devono essere segnalati a Therefore™, così possono essere registrati nello storico del workflow. Se la funzione restituisce un errore, la voce nello storico del workflow inizierà con il testo “La funzione chiamata ha segnalato un errore”. Se la funzione si interrompe in modo anomalo a causa di un'eccezione non gestita o perché non restituisce l'informazione, non può essere registrato nulla in Therefore™. Se la funzione restituisce solo un oggetto JSON con una stringa “TheError” vuota e il valore booleano “TheRoutingDone” impostato su false, l'operazione viene considerata riuscita perché la chiamata HTTPS è stata eseguita e non è stato segnalato alcun errore.
Ecco alcuni degli errori che si possono verificare quando si chiama una funzione:
|
---|
Per monitorare le funzioni Azure è necessario configurare il servizio “Application Insights” di Microsoft. Quando si fa clic su “Monitora” dopo aver selezionato una funzione nel portale Azure, viene visualizzato un elenco delle chiamate di funzione recenti. Le chiamate di funzione vengono indicate come ‘riuscita’ se non si è verificata nessuna eccezione non gestita, indipendentemente dal codice di risultato o dalle eccezioni rilevate. Therefore™ ha un comportamento analogo; se viene rilevata un'eccezione, deve essere riportata con il codice di stato 200 e con le informazioni sull'eccezione nella stringa di ritorno “TheError”.
Se si è verificata un'eccezione non gestita, la funzione non può restituire nulla a Therefore™ e il servizio web invia soltanto il codice di stato 500. In questo caso, in Therefore™ non possono essere visualizzate altre informazioni oltre al codice di stato 500 ed è necessario controllare il servizio di monitoraggio di Azure per conoscere i dettagli.
L'“ID operazione” può essere utilizzato per interrogare la tabella delle eccezioni e ottenere i dettagli e le analisi dello stack. Copiare l'ID operazione e fare clic su “Esegui in Application Insights” per aprire il servizio in una nuova scheda. Incollare l'ID operazione nella finestra di query e strutturare una query nel modo seguente:
exceptions | where operation_Id == "OperationID" | limit 50
Quando si fa clic su “Esegui” dovrebbero apparire le informazioni sull'eccezione relative all'ID operazione specificato.
Dovrebbe essere presente almeno una riga contenente le informazioni sull'eccezione. Esportare tutte le righe e inviarle allo sviluppatore responsabile di questa funzione Azure.
Inoltre, controllare la tabella delle analisi per ottenere ulteriori informazioni sul workflow. Se è stato usato un codice di esempio, ogni chiamata di funzione dovrebbe essere registrata con numero di istanza, token e fascicolo o documento. Copiare la query precedente e sostituire “exceptions” con “traces”:
traces | where operation_Id == "OperationID" | limit 50
Includere queste informazioni anche quando si informa lo sviluppatore.
Se la funzione prevede operazioni di conversione, è necessario fornire anche il documento. |
---|
|
---|
© 2024 Therefore Corporation. Tutti i diritti riservati.