J'essaie d'utiliser Application Insights pour enregistrer automatiquement les erreurs de formulaire/script de mon instance Dynamics 365, mais elles ne sont pas suivies.Erreurs de script du journal D365 sur Application Insights
j'ai commencé en créant une ressource Insights application dans Azure et en ajoutant le code JavaScript suivant (extrait de la section Mise en route de l'Insights App Resource) à ma forme de CRM (comme ce walkthrough):
var appInsights=window.appInsights||function(config){
function i(config) { t[config] = function() { var i = arguments; t.queue.push(function() { t[config].apply(t, i) }) } }var t={config:config},u=document,e=window,o="script",s="AuthenticatedUserContext",h="start",c="stop",l="Track",a=l+"Event",v=l+"Page",y=u.createElement(o),r,f;y.src=config.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js";u.getElementsByTagName(o)[0].parentNode.appendChild(y);try{t.cookie = u.cookie}catch(p){}for(t.queue=[],t.version="1.0",r=["Event","Exception","Metric","PageView","Trace","Dependency"];r.length;)i("track"+r.pop());return i("set"+s),i("clear"+s),i(h+a),i(c+a),i(h+v),i(c+v),i("flush"),config.disableExceptionTracking||(r="onerror",i("_"+r),f=e[r],e[r]=function(config,i,u,e,o){var s=f&&f(config,i,u,e,o);return s!==!0&&t["_"+r](config,i,u,e,o),s}),t
}({
instrumentationKey:"XXXXX"
});
window.appInsights=appInsights;
appInsights.trackPageView();
après cela, j'ai commencé à voir les données relatives aux pages vues et les temps de chargement de page de sorte que le suivi est activé:
Mon action suivante était alors de forcer quelques erreurs de script dans le formulaire pour visualiser ensuite dans Azure. Pour ce faire, j'ai ajouté une fonction JavaScript dans l'événement OnChange d'un champ pour obtenir une erreur « undefined »:
Comme vous pouvez le voir dans l'image précédente, l'erreur est jeté dans D365 comme prévu, mais il n'y a aucun enregistrement dans Application Insights. Après quelques tests j'ai commencé à suspecter que CRM rattrape cette erreur et ne la laisse pas atteindre le navigateur (l'erreur n'apparaît pas dans la console). Pour confirmer mes soupçons, j'ai créé une page Web HTML avec la même configuration Insights App et je simulé l'erreur de voir si, dans ce scénario, les erreurs sont suivies et la réponse est oui:
Il semble que Dynamics "avale" l'erreur et l'empêche d'être connecté. Est-ce que quelqu'un a déjà fait face à ce problème? Existe-t-il une solution de contournement que je peux utiliser pour suivre correctement les erreurs dans App Insights?
Merci! Dynamics CRM traitera le bloc de script personnalisé d'une manière spéciale.
très heureux de voir mon walkthrough aide la communauté .. Avez-vous essayé try {...} catch (ex) {appInsights.trackException (ex); } –