Controlar esquemas para monitorizar mensagens B2B no Azure Logic Apps

Aplica-se a: Azure Logic Apps (Consumo + Standard)

O Azure Logic Apps inclui o controlo incorporado que pode ativar para partes do seu fluxo de trabalho. Para o ajudar a monitorizar a entrega ou o recibo com êxito, erros e propriedades das mensagens empresa-empresa (B2B), pode criar e utilizar esquemas as2, X12 e de controlo personalizados na sua conta de integração. Este guia de referência descreve a sintaxe e os atributos destes esquemas de controlo.

AS2

Esquema de controlo de mensagens AS2

A seguinte sintaxe descreve o esquema de controlo de uma mensagem AS2:

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

A tabela seguinte descreve os atributos num esquema de controlo para uma mensagem AS2:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente da mensagem AS2
receiverPartnerName Não String Nome do parceiro do recetor de mensagens AS2
as2To Sim String Nome do recetor de mensagens AS2 a partir dos cabeçalhos da mensagem AS2
as2From Sim String Nome do remetente da mensagem AS2 a partir dos cabeçalhos da mensagem AS2
agreementName Não String Nome do contrato AS2 para o qual as mensagens são resolvidas
direção Sim String Direção do fluxo de mensagens, que é receive ou send
messageId Não String ID da mensagem AS2 dos cabeçalhos da mensagem AS2
dispositionType Não String Valor do tipo de disposição de Notificação de Eliminação de Mensagens (MDN)
fileName Não String Nome do ficheiro do cabeçalho da mensagem AS2
isMessageFailed Yes Booleano Se a mensagem AS2 falhou
isMessageSigned Yes Booleano Se a mensagem AS2 foi assinada
isMessageEncrypted Yes Booleano Se a mensagem AS2 foi encriptada
isMessageCompressed Yes Booleano Se a mensagem as2 foi comprimida
correlationMessageId Não String ID da mensagem AS2, para correlacionar mensagens com MDNs
incomingHeaders No Dicionário do JToken Detalhes do cabeçalho da mensagem AS2 recebida
cabeçalhos de envio No Dicionário do JToken Detalhes do cabeçalho da mensagem AS2 a enviar
isNrrEnabled Yes Booleano Se pretende utilizar o valor predefinido se o valor não for conhecido
isMdnExpected Yes Booleano Se pretende utilizar o valor predefinido se o valor não for conhecido
mdnType Yes Enumeração Valores permitidos: NotConfigured, Synce Async

Esquema de controlo do AS2 MDN

A seguinte sintaxe descreve o esquema de controlo de uma mensagem MDN AS2:

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

A tabela seguinte descreve os atributos num esquema de controlo para uma mensagem MDN AS2:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente da mensagem AS2
receiverPartnerName Não String Nome do parceiro do recetor de mensagens AS2
as2To Sim String Nome do parceiro que recebe a mensagem AS2
as2From Sim String Nome do parceiro que envia a mensagem AS2
agreementName Não String Nome do contrato AS2 para o qual as mensagens são resolvidas
direção Sim String Direção do fluxo de mensagens, que é receive ou send
messageId Não String ID da mensagem AS2
originalMessageId Não String ID da mensagem original do AS2
dispositionType Não String Valor do tipo de disposição MDN
isMessageFailed Yes Booleano Se a mensagem AS2 falhou
isMessageSigned Yes Booleano Se a mensagem AS2 foi assinada
isNrrEnabled Yes Booleano Se pretende utilizar o valor predefinido se o valor não for conhecido
statusCode Yes Enumeração Valores permitidos: Accepted, Rejectede AcceptedWithErrors
micVerificationStatus Yes Enumeração Valores permitidos:NotApplicable, Succeedede Failed
correlationMessageId Não String ID de Correlação, que é o ID da mensagem original que tem o MDN configurado
incomingHeaders No Dicionário do JToken Detalhes do cabeçalho da mensagem recebida
cabeçalhos de envio No Dicionário do JToken Detalhes do cabeçalho da mensagem a enviar

X12

Esquema de controlo do conjunto de transações X12

A seguinte sintaxe descreve o esquema de controlo de um conjunto de transações X12:

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

A tabela seguinte descreve os atributos num esquema de controlo para um conjunto de transações X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente da mensagem X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber o qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String Nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo da mensagem, que é receive ou send
interchangeControlNumber Não String Número de controlo de intercâmbio
functionalGroupControlNumber Não String Número de controlo funcional
transactionSetControlNumber Não String Número de controlo do conjunto de transações
CorrelationMessageId Não String ID da mensagem de correlação, que é uma combinação de {AgreementName}{GroupControlNumber}{TransactionSetControlNumber}
messageType Não String Conjunto de transações ou tipo de documento
isMessageFailed Yes Booleano Se a mensagem X12 falhou
isTechnicalAcknowledgmentExpected Yes Booleano Se a confirmação técnica está configurada no contrato X12
isFunctionalAcknowledgmentExpected Yes Booleano Se a confirmação funcional está configurada no contrato X12
needAk2LoopForValidMessages Yes Booleano Se o ciclo AK2 é necessário para uma mensagem válida
segmentsCount No Número inteiro Número de segmentos no conjunto de transações X12

Esquema de controlo de confirmação do conjunto de transações X12

A seguinte sintaxe descreve o esquema de controlo para uma confirmação do conjunto de transações 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": ""
   }
}

A tabela seguinte descreve os atributos num esquema de controlo para uma confirmação do conjunto de transações X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente de mensagens X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber o qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String Nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo da mensagem, que é receive ou send
interchangeControlNumber Não String Número de controlo de intercâmbio da confirmação funcional. O valor é preenchido apenas para o lado do envio onde é recebida a confirmação funcional das mensagens enviadas para o parceiro.
functionalGroupControlNumber Não String Número de controlo de grupo funcional da confirmação funcional. O valor é preenchido apenas para o lado do envio onde a confirmação funcional é recebida para as mensagens enviadas para o parceiro
isaSegment Não String Segmento ISA da mensagem. O valor é preenchido apenas para o lado do envio onde a confirmação funcional é recebida para as mensagens enviadas para o parceiro
gsSegment Não String Segmento GS da mensagem. O valor é preenchido apenas para o lado do envio onde a confirmação funcional é recebida para as mensagens enviadas para o parceiro
responderfunctionalGroupControlNumber Não String O número de controlo de intercâmbio de resposta
respondingFunctionalGroupId Não String O ID de grupo funcional que responde, que mapeia para a AK101 na confirmação
respondingtransactionSetControlNumber Não String O número de controlo do conjunto de transações que responde
respondingTransactionSetId Não String O ID do conjunto de transações que responde, que mapeia para a AK201 na confirmação
statusCode Yes Booleano Código de estado de confirmação do conjunto de transações
segmentsCount Yes Enumeração Código de estado de confirmação com estes valores permitidos: Accepted, Rejectede AcceptedWithErrors
processingStatus Yes Enumeração Estado de processamento da confirmação com estes valores permitidos: Received, Generatede Sent
CorrelationMessageId Não String ID da mensagem de correlação, que é uma combinação de {AgreementName}{GroupControlNumber}{TransactionSetControlNumber}
isMessageFailed Yes Booleano Se a mensagem X12 falhou
ak2Segment Não String Confirmação de um conjunto de transações no grupo funcional recebido
ak3Segment Não String Comunica erros num segmento de dados
ak5Segment Não String Comunica se o conjunto de transações identificado no segmento AK2 é aceite ou rejeitado e porquê

Esquema de controlo de intercâmbio X12

A seguinte sintaxe descreve o esquema de controlo para um intercâmbio X12:

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

A tabela seguinte descreve os atributos num esquema de controlo para um intercâmbio X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente da mensagem X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String Nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo de mensagens, que é receive ou send
interchangeControlNumber Não String Número de controlo de intercâmbio
isaSegment Não String Segmento ISA da Mensagem
isTechnicalAcknowledgmentExpected Booleano Se a confirmação técnica está configurada no contrato X12
isMessageFailed Yes Booleano Se a mensagem X12 falhou
isa09 Não String Data de intercâmbio de documentos X12
isa10 Não String Hora de intercâmbio de documentos X12
isa11 Não String Identificador de normas de controlo de intercâmbio X12
isa12 Não String Número da versão do controlo de intercâmbio X12
isa14 Não String A confirmação X12 é pedida
isa15 Não String Indicador para teste ou produção
isa16 Não String Separador de elemento

Esquema de controlo de confirmação de intercâmbio X12

A seguinte sintaxe descreve o esquema de controlo para uma confirmação de intercâmbio X12:

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

A tabela seguinte descreve os atributos num esquema de controlo para uma confirmação de intercâmbio X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente de mensagens X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber o qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String Nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo da mensagem, que é receive ou send
interchangeControlNumber Não String Número de controlo de intercâmbio do reconhecimento técnico recebido dos parceiros
isaSegment Não String IsA segment for the technical acknowledgment that's received from partners (Segmento ISA para a confirmação técnica recebida dos parceiros)
respondendoInterchangeControlNumber Não String Número de controlo de intercâmbio para a confirmação técnica recebida dos parceiros
isMessageFailed Yes Booleano Se a mensagem X12 falhou
statusCode Yes Enumeração Código de estado de reconhecimento de intercâmbio com estes valores permitidos: Accepted, Rejectede AcceptedWithErrors
processingStatus Yes Enumeração Estado de confirmação com estes valores permitidos: Received, Generatede Sent
ta102 Não String Data do intercâmbio
ta103 Não String Tempo de intercâmbio
ta105 Não String Código de nota de intercâmbio

Esquema de controlo de grupo funcional X12

A seguinte sintaxe descreve o esquema de controlo de um grupo funcional X12:

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

A tabela seguinte descreve os atributos num esquema de controlo para um grupo funcional X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente de mensagens X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber o qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String O nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo da mensagem, receber ou enviar
interchangeControlNumber Não String Número de controlo de intercâmbio
functionalGroupControlNumber Não String Número de controlo funcional
gsSegment Não String Segmento GS da Mensagem
isTechnicalAcknowledgmentExpected Yes Booleano Se a confirmação técnica está configurada no contrato X12
isFunctionalAcknowledgmentExpected Yes Booleano Se a confirmação funcional está configurada no contrato X12
isMessageFailed Yes Booleano Se a mensagem X12 falhou
gs01 Não String Código do identificador funcional
gs02 Não String Código do remetente da aplicação
gs03 Não String Código do recetor de aplicações
gs04 Não String Data do grupo funcional
gs05 Não String Hora funcional do grupo
gs07 Não String Código de agência responsável
gs08 Não String Código do identificador para a versão, versão ou indústria

Esquema de controlo de confirmação de grupo funcional X12

A seguinte sintaxe descreve o esquema de controlo para uma confirmação de grupo funcional X12:

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

A tabela seguinte descreve os atributos num esquema de controlo para uma confirmação de grupo funcional X12:

Propriedade Necessário Tipo Description
senderPartnerName Não String Nome do parceiro do remetente de mensagens X12
receiverPartnerName Não String Nome do parceiro do recetor de mensagens X12
senderQualifier Sim String Enviar qualificador de parceiro
senderIdentifier Sim String Enviar identificador de parceiro
receiverQualifier Sim String Receber o qualificador de parceiro
receiverIdentifier Sim String Receber identificador de parceiro
agreementName Não String Nome do contrato X12 para o qual as mensagens são resolvidas
direção Yes Enumeração Direção do fluxo da mensagem, que é receive ou send
interchangeControlNumber Não String Número de controlo de intercâmbio, que é preenchido para o lado do envio quando é recebida uma confirmação técnica dos parceiros
functionalGroupControlNumber Não String Número de controlo de grupo funcional do reconhecimento técnico, que é preenchido para o lado do envio quando é recebida uma confirmação técnica dos parceiros
isaSegment Não String O mesmo que o número de controlo de intercâmbio, mas preenchido apenas em casos específicos
gsSegment Não String O mesmo que o número de controlo de grupo funcional, mas preenchido apenas em casos específicos
respondendofunctionalGroupControlNumber Não String Controlar o número do grupo funcional original
respondendoFunctionalGroupId Não String Mapas para a AK101 no ID do grupo funcional de confirmação
isMessageFailed Booleano Se a mensagem X12 falhou
statusCode Yes Enumeração Código de estado de confirmação com estes valores permitidos: Accepted, Rejectede AcceptedWithErrors
processingStatus Yes Enumeração Estado de processamento da confirmação com estes valores permitidos: Received, Generatede Sent
ak903 Não String Número de conjuntos de transações recebidos
ak904 Não String Número de conjuntos de transações aceites no grupo funcional identificado
ak9Segment Não String Se o grupo funcional identificado no segmento AK1 é aceite ou rejeitado e porquê

Personalizado

Pode configurar o controlo personalizado que regista eventos do início ao fim do fluxo de trabalho da aplicação lógica. Por exemplo, pode registar eventos de camadas que incluem o fluxo de trabalho, SQL Server, BizTalk Server ou qualquer outra camada. A secção seguinte fornece código de esquema de controlo personalizado que pode utilizar nas camadas fora do fluxo de trabalho.

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

A tabela seguinte descreve os atributos num esquema de controlo personalizado:

Propriedade Necessário Tipo Description
sourceType Sim String Tipo da origem de execução com estes valores permitidos: Microsoft.Logic/workflows, custom
source Yes Cadeia ou JToken Se o tipo de origem for Microsoft.Logic/workflows, as informações de origem têm de seguir este esquema. Se o tipo de origem for custom, o esquema é um JToken.
systemId Sim String ID do sistema de aplicações lógicas
runId Sim String ID de execução da aplicação lógica
operationName Sim String Nome da operação, por exemplo, ação ou acionador
repeatItemScopeName Sim String Repita o nome do item se a ação estiver dentro de um foreachciclo ou until
repeatItemIndex Yes Número inteiro Indica que a ação está dentro de um foreach ciclo ou until e é o número de índice de item repetido.
trackingId Não String ID de controlo para correlacionar as mensagens
correlationId Não String ID de Correlação para correlacionar as mensagens
clientRequestId Não String O cliente pode preencher esta propriedade para correlacionar mensagens
eventLevel Sim String Nível do evento
eventTime Yes DateTime Hora do evento no formato UTC: YYYY-MM-DDTHH:MM:SS.00000Z
recordType Sim String Tipo de registo de registo apenas com este valor permitido: custom
gravar Yes JToken Tipo de registo personalizado apenas com formato JToken

Passos seguintes