Bonjour Scott,
Vous pouvez obtenir une liste des ID de corps de message (et de leurs types d'événements associés) qui n'ont pas d'enregistrement d'en-tête correspondant avec cette requête :
SELECT HL7.ID, HL7.Name
FROM EnsLib_HL7.Message HL7
LEFT JOIN Ens.MessageHeader hdr ON HL7.Id=hdr.MessageBodyId
WHERE hdr.MessageBodyId IS NULL
AND HL7.OriginalDocId IS NULLEt oui, cette requête peut prendre beaucoup de temps à s'exécuter... suffisamment longtemps pour qu'elle s'arrête généralement dans l'interface utilisateur SQL de la console de gestion. Elle ne devrait pas être arrêtée si vous l'exécutez à partir du Caché (ou IRIS) SQL Shell. Que voudriez-vous utiliser pour les critères WHERE ou ORDER BY ? La liste des champs disponibles pour être référencés directement via SQL peut être consultée dans le panneau Body d'un message HL7 affiché dans le Message Viewer, mais leur utilité pour déterminer ce qui les a rendus abadonnés est limitée.
Le problème avec les messages abandonnés est qu'il est un peu difficile de savoir "d'où ils viennent". Les services/processus/opérations source et destination de la production sont stockés dans le tableau de l'en-tête du message et non dans le tableau du corps du message. La raison pour laquelle les messages sont abandonnés est qu'ils ne sont plus liés (par MessageBodyId) à aucun enregistrement du tableau de l'en-tête du message.
La raison la plus courante des messages abandonnés est la configuration de la tâche de purge des messages. Il existe une case à cocher "bodies too" qui, si elle n'est pas cochée, empêche la suppression des corps de messages. Les en-têtes sont quand même supprimés, ce qui rend les corps "abandonnés".
- Se connecter pour publier des commentaires
