Schémas de suivi pour la surveillance des messages B2B dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Azure Logic Apps inclut une fonctionnalité de suivi intégré que vous pouvez activer pour certaines parties de votre flux de travail. Pour vous aider à surveiller la réussite de la livraison ou de la réception, les erreurs et les propriétés des messages B2B (Business-to-Business), vous pouvez créer, puis utiliser des schémas de suivi AS2, X12 et personnalisés dans votre compte d’intégration. Ce guide de référence décrit la syntaxe et les attributs de ces schémas de suivi.

AS2

Schéma de suivi de message AS2

La syntaxe suivante décrit le schéma de suivi d’un message AS2 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "as2To": "",
      "as2From": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "messageId": "",
      "dispositionType": "",
      "fileName": "",
      "isMessageFailed": "",
      "isMessageSigned": "",
      "isMessageEncrypted": "",
      "isMessageCompressed": "",
      "correlationMessageId": "",
      "incomingHeaders": {},
      "outgoingHeaders": {},
      "isNrrEnabled": "",
      "isMdnExpected": "",
      "mdnType": ""
    }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un message AS2 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message AS2
receiverPartnerName Non String Nom de partenaire du destinataire du message AS2
as2To Oui String Nom du destinataire du message AS2 extrait des en-têtes du message AS2
as2From Oui String Nom de l’expéditeur du message AS2 extrait des en-têtes du message AS2
agreementName Non String Nom du contrat AS2 dans lequel les messages sont résolus.
direction Oui String Direction du flux de messages, à savoir receive ou send
messageId Non String ID du message AS2 extrait des en-têtes du message AS2
dispositionType Non String Valeur de type de disposition de la notification d’état du message (MDN)
fileName Non String Nom de fichier extrait de l’en-tête du message AS2
isMessageFailed Oui Boolean Indique si le message AS2 a échoué
isMessageSigned Oui Boolean Indique si le message AS2 a été signé
isMessageEncrypted Oui Boolean Indique si le message AS2 a été chiffré
isMessageCompressed Oui Boolean Indique si le message AS2 a été compressé
correlationMessageId Non String ID du message AS2 permettant de mettre en corrélation des messages avec des MDN
incomingHeaders Non Dictionnaire de JToken Détails de l’en-tête de message AS2 entrant
outgoingHeaders Non Dictionnaire de JToken Détails de l’en-tête de message AS2 sortant
isNrrEnabled Oui Boolean Indique s’il faut utiliser une valeur par défaut si la valeur n’est pas connue
isMdnExpected Oui Boolean Indique s’il faut utiliser la valeur par défaut si la valeur n’est pas connue
mdnType Oui Enum Valeurs autorisées : NotConfigured, Sync et Async

Schéma de suivi de MDN AS2

La syntaxe suivante décrit le schéma de suivi d’un message AS2 MDN :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "as2To": "",
      "as2From": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "messageId": "",
      "originalMessageId": "",
      "dispositionType": "",
      "isMessageFailed": "",
      "isMessageSigned": "",
      "isNrrEnabled": "",
      "statusCode": "",
      "micVerificationStatus": "",
      "correlationMessageId": "",
      "incomingHeaders": {
      },
      "outgoingHeaders": {
      }
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un message AS2 MDN :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message AS2
receiverPartnerName Non String Nom de partenaire du destinataire du message AS2
as2To Oui String Nom du partenaire qui reçoit le message AS2
as2From Oui String Nom du partenaire qui envoie le message AS2
agreementName Non String Nom du contrat AS2 dans lequel les messages sont résolus.
direction Oui String Direction du flux de messages, à savoir receive ou send
messageId Non String ID du message AS2
originalMessageId Non String ID du message AS2 d’origine
dispositionType Non String Valeur du type de disposition MDN
isMessageFailed Oui Boolean Indique si le message AS2 a échoué
isMessageSigned Oui Boolean Indique si le message AS2 a été signé
isNrrEnabled Oui Boolean Indique s’il faut utiliser la valeur par défaut si la valeur n’est pas connue
statusCode Oui Enum Valeurs autorisées : Accepted, Rejected et AcceptedWithErrors
micVerificationStatus Oui Enum Valeurs autorisées : NotApplicable, Succeeded et Failed
correlationMessageId Non String ID de corrélation, à savoir l’ID du message d’origine avec la MDN configurée
incomingHeaders Non Dictionnaire de JToken Détails de l’en-tête de message entrant
outgoingHeaders Non Dictionnaire de JToken Détails de l’en-tête de message sortant

X 12

Schéma de suivi de document informatisé X12

La syntaxe suivante décrit le schéma de suivi d’un document informatisé X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "functionalGroupControlNumber": "",
      "transactionSetControlNumber": "",
      "CorrelationMessageId": "",
      "messageType": "",
      "isMessageFailed": "",
      "isTechnicalAcknowledgmentExpected": "",
      "isFunctionalAcknowledgmentExpected": "",
      "needAk2LoopForValidMessages": "",
      "segmentsCount": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un document informatisé X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus.
direction Oui Enum Direction du flux de messages, à savoir receive ou send
interchangeControlNumber Non String Numéro de contrôle de l’échange
functionalGroupControlNumber Non String Numéro de contrôle fonctionnel
transactionSetControlNumber Non String Numéro de contrôle de document informatisé
CorrelationMessageId Non String ID de message de corrélation correspondant à {AgreementName} {GroupControlNumber} {TransactionSetControlNumber}
messageType Non String Type de document ou de document informatisé
isMessageFailed Oui Boolean Indique si le message X12 a échoué
isTechnicalAcknowledgmentExpected Oui Boolean Indique si l’accusé de réception technique est configuré dans le contrat X12
isFunctionalAcknowledgmentExpected Oui Boolean Indique si l’accusé de réception fonctionnel est configuré dans le contrat X12
needAk2LoopForValidMessages Oui Boolean Indique si la boucle AK2 est nécessaire pour un message valide
segmentsCount Non Integer Nombre de segments dans le document informatisé X12

Schéma de suivi d’accusé de réception de document informatisé X12

La syntaxe suivante décrit le schéma de suivi d’un accusé de réception de document informatisé X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "functionalGroupControlNumber": "",
      "isaSegment": "",
      "gsSegment": "",
      "respondingfunctionalGroupControlNumber": "",
      "respondingFunctionalGroupId": "",
      "respondingtransactionSetControlNumber": "",
      "respondingTransactionSetId": "",
      "statusCode": "",
      "processingStatus": "",
      "CorrelationMessageId": "",
      "isMessageFailed": "",
      "ak2Segment": "",
      "ak3Segment": "",
      "ak5Segment": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un accusé de réception de document informatisé X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus.
direction Oui Enum Direction du flux de messages, à savoir receive ou send
interchangeControlNumber Non String Numéro de contrôle de l’échange de l’accusé de réception fonctionnel Valeur renseignée uniquement pour l’envoi si un accusé de réception fonctionnel a été reçu pour les messages envoyés au partenaire.
functionalGroupControlNumber Non String Numéro de contrôle de groupe fonctionnel de l’accusé de réception fonctionnel. Valeur renseignée uniquement pour l’envoi si un accusé de réception fonctionnel a été reçu pour les messages envoyés au partenaire
isaSegment Non String Segment ISA du message. Valeur renseignée uniquement pour l’envoi si un accusé de réception fonctionnel a été reçu pour les messages envoyés au partenaire
gsSegment Non String Segment GS du message. Valeur renseignée uniquement pour l’envoi si un accusé de réception fonctionnel a été reçu pour les messages envoyés au partenaire
respondingfunctionalGroupControlNumber Non String Numéro de contrôle de l’échange de réponse
respondingFunctionalGroupId Non String ID du groupe fonctionnel de réponse qui est mappé à AK101 dans l’accusé de réception
respondingtransactionSetControlNumber Non String Numéro de contrôle de document informatisé de réponse
respondingTransactionSetId Non String ID du document informatisé de réponse, qui est mappé à AK201 dans l’accusé de réception
statusCode Oui Boolean Code d’état de l’accusé de réception du document informatisé
segmentsCount Oui Enum Code d’état de l’accusé de réception avec les valeurs autorisées suivantes : Accepted, Rejected et AcceptedWithErrors
processingStatus Oui Enum État de traitement de l’accusé de réception avec les valeurs autorisées suivantes : Received, Generated et Sent
CorrelationMessageId Non String ID de message de corrélation correspondant à {AgreementName} {GroupControlNumber} {TransactionSetControlNumber}
isMessageFailed Oui Boolean Indique si le message X12 a échoué
ak2Segment Non String Accusé de réception pour un document informatisé dans le groupe fonctionnel reçu
ak3Segment Non String Signale les erreurs dans un segment de données
ak5Segment Non String Signale si le document informatisé identifié dans le segment AK2 est accepté ou rejeté et pourquoi

Schéma de suivi d’échange X12

La syntaxe suivante décrit le schéma de suivi d’un échange X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "isaSegment": "",
      "isTechnicalAcknowledgmentExpected": "",
      "isMessageFailed": "",
      "isa09": "",
      "isa10": "",
      "isa11": "",
      "isa12": "",
      "isa14": "",
      "isa15": "",
      "isa16": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un échange X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus.
direction Oui Enum Direction du flux de messages, à savoir receive ou send
interchangeControlNumber Non String Numéro de contrôle de l’échange
isaSegment Non String Segment ISA du message
isTechnicalAcknowledgmentExpected Boolean Indique si l’accusé de réception technique est configuré dans le contrat X12
isMessageFailed Oui Boolean Indique si le message X12 a échoué
isa09 Non String Date d’échange du document X12
isa10 Non String Heure d’échange du document X12
isa11 Non String Identificateur des normes de contrôle d’échange X12
isa12 Non String Numéro de version du contrôle d’échange X12
isa14 Non String Un accusé de réception X12 est exigé
isa15 Non String Indicateur de test ou de production
isa16 Non String Séparateur d'éléments

Schéma de suivi d’accusé de réception d’échange X12

La syntaxe suivante décrit le schéma de suivi d’un accusé de réception d’échange X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "isaSegment": "",
      "respondingInterchangeControlNumber": "",
      "isMessageFailed": "",
      "statusCode": "",
      "processingStatus": "",
      "ta102": "",
      "ta103": "",
      "ta105": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un accusé de réception d’échange X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus.
direction Oui Enum Direction du flux de messages, à savoir receive ou send
interchangeControlNumber Non String Numéro de contrôle de l’échange de l’accusé de réception technique reçu de partenaires
isaSegment Non String Segment ISA de l’accusé de réception technique reçu de partenaires
respondingInterchangeControlNumber Non String Numéro de contrôle de l’échange de l’accusé de réception technique reçu de partenaires
isMessageFailed Oui Boolean Indique si le message X12 a échoué
statusCode Oui Enum Code d’état de l’accusé de réception d'échange avec les valeurs autorisées suivantes : Accepted, Rejected et AcceptedWithErrors
processingStatus Oui Enum État de l’accusé de réception avec les valeurs autorisées suivantes : Received, Generated et Sent
ta102 Non String Date de l’échange
ta103 Non String Heure de l’échange
ta105 Non String Code de note de l’échange

Schéma de suivi de groupe fonctionnel X12

La syntaxe suivante décrit le schéma de suivi d’un groupe fonctionnel X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "functionalGroupControlNumber": "",
      "gsSegment": "",
      "isTechnicalAcknowledgmentExpected": "",
      "isFunctionalAcknowledgmentExpected": "",
      "isMessageFailed": "",
      "gs01": "",
      "gs02": "",
      "gs03": "",
      "gs04": "",
      "gs05": "",
      "gs07": "",
      "gs08": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un groupe fonctionnel X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus
direction Oui Enum Direction du flux de messages (envoi ou réception)
interchangeControlNumber Non String Numéro de contrôle de l’échange
functionalGroupControlNumber Non String Numéro de contrôle fonctionnel
gsSegment Non String Segment GS de message
isTechnicalAcknowledgmentExpected Oui Boolean Indique si l’accusé de réception technique est configuré dans le contrat X12
isFunctionalAcknowledgmentExpected Oui Boolean Indique si l’accusé de réception fonctionnel est configuré dans le contrat X12
isMessageFailed Oui Boolean Indique si le message X12 a échoué
gs01 Non String Code d’identificateur fonctionnel
gs02 Non String Code de l’expéditeur de l’application
gs03 Non String Code du destinataire de l’application
gs04 Non String Date du groupe fonctionnel
gs05 Non String Heure du groupe fonctionnel
gs07 Non String Code de l’agence responsable
gs08 Non String Code identificateur de la version, de la mise en production ou de l'activité

Schéma de suivi d’accusé de réception de groupe fonctionnel X12

La syntaxe suivante décrit le schéma de suivi d’un accusé de réception de groupe fonctionnel X12 :

{
   "agreementProperties": {
      "senderPartnerName": "",
      "receiverPartnerName": "",
      "senderQualifier": "",
      "senderIdentifier": "",
      "receiverQualifier": "",
      "receiverIdentifier": "",
      "agreementName": ""
   },
   "messageProperties": {
      "direction": "",
      "interchangeControlNumber": "",
      "functionalGroupControlNumber": "",
      "isaSegment": "",
      "gsSegment": "",
      "respondingfunctionalGroupControlNumber": "",
      "respondingFunctionalGroupId": "",
      "isMessageFailed": "",
      "statusCode": "",
      "processingStatus": "",
      "ak903": "",
      "ak904": "",
      "ak9Segment": ""
   }
}

Le tableau suivant décrit les attributs d’un schéma de suivi pour un accusé de réception de groupe fonctionnel X12 :

Propriété Obligatoire Type Description
senderPartnerName Non String Nom de partenaire de l’expéditeur du message X12
receiverPartnerName Non String Nom de partenaire du destinataire du message X12
senderQualifier Oui String Qualificateur du partenaire d’envoi
senderIdentifier Oui String Identificateur du partenaire d’envoi
receiverQualifier Oui String Qualificateur du partenaire de réception
receiverIdentifier Oui String Identificateur du partenaire de réception
agreementName Non String Nom du contrat X12 dans lequel les messages sont résolus.
direction Oui Enum Direction du flux de messages, à savoir receive ou send
interchangeControlNumber Non String Numéro de contrôle de l’échange, qui renseigne le côté envoi lors de la réception d’un accusé de réception technique de partenaires
functionalGroupControlNumber Non String Numéro de contrôle de groupe fonctionnel de l’accusé de réception technique, qui renseigne le côté envoi lors de la réception d’un accusé de réception technique de partenaires
isaSegment Non String Identique au numéro de contrôle de l’échange, mais renseigné uniquement dans des cas spécifiques
gsSegment Non String Identique au numéro de contrôle de groupe fonctionnel, mais renseigné uniquement dans des cas spécifiques
respondingfunctionalGroupControlNumber Non String Numéro de contrôle du groupe fonctionnel d’origine
respondingFunctionalGroupId Non String Mappé à AK101 dans l’ID de groupe fonctionnel de l’accusé de réception
isMessageFailed Boolean Indique si le message X12 a échoué
statusCode Oui Enum Code d’état de l’accusé de réception avec les valeurs autorisées suivantes : Accepted, Rejected et AcceptedWithErrors
processingStatus Oui Enum État de traitement de l’accusé de réception avec les valeurs autorisées suivantes : Received, Generated et Sent
ak903 Non String Nombre de documents informatisés reçus
ak904 Non String Nombre de documents informatisés acceptés dans le groupe fonctionnel identifié
ak9Segment Non String Indique si le groupe fonctionnel identifié dans le segment AK1 est accepté ou rejeté et pourquoi

Custom

Vous pouvez configurer un suivi personnalisé qui journalise les événements du début à la fin de votre flux de travail d’application logique. Par exemple, vous pouvez journaliser des événements depuis des couches qui incluent votre flux de travail, SQL Server, BizTalk Server ou toute autre couche. La section suivante fournit un code de schéma de suivi personnalisé que vous pouvez utiliser dans les couches en dehors de votre flux de travail.

{
   "sourceType": "",
   "source": {
      "workflow": {
         "systemId": ""
      },
      "runInstance": {
         "runId": ""
      },
      "operation": {
         "operationName": "",
         "repeatItemScopeName": "",
         "repeatItemIndex": ,
         "trackingId": "",
         "correlationId": "",
         "clientRequestId": ""
      }
   },
   "events": [
      {
         "eventLevel": "",
         "eventTime": "",
         "recordType": "",
         "record": {}
      }
   ]
}

Le tableau suivant décrit les attributs d’un schéma de suivi personnalisé :

Propriété Obligatoire Type Description
sourceType Oui String Type de la source d’exécution avec les valeurs autorisées suivantes : Microsoft.Logic/workflows, custom
source Oui Chaîne ou JToken Si le type de source est Microsoft.Logic/workflows, les informations source doivent suivre ce schéma. Si le type de source est custom, le schéma est un JToken.
systemId Oui String ID système d’application logique
runId Oui String ID d’exécution d’application logique
operationName Oui String Nom de l’opération (par exemple action ou déclencheur)
repeatItemScopeName Oui String Répéter le nom de l’élément si l’action se trouve au sein d’une boucle foreach ou until
repeatItemIndex Oui Integer Indique que l’action fait partie d’une boucle foreach ou until et correspond à l’index de l’élément répété.
trackingId Non String ID de suivi permettant de mettre en corrélation les messages
correlationId Non String ID de corrélation permettant de mettre en corrélation les messages
clientRequestId Non String Le client peut remplir cette propriété pour mettre en corrélation les messages
eventLevel Oui String Niveau de l’événement
eventTime Oui DateTime Heure de l’événement au format UTC : YYYY-MM-DDTHH:MM:SS.00000Z
recordType Oui String Type d'enregistrement de suivi avec la valeur autorisée suivante uniquement : custom
enregistrement Oui JToken Type d’enregistrement personnalisé au format JToken uniquement

Étapes suivantes