Rastreando esquemas para monitorar mensagens B2B nos Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
As Aplicações Lógicas do Azure incluem controlo incorporado que pode ativar para partes do seu fluxo de trabalho. Para ajudá-lo a monitorar a entrega ou recebimento bem-sucedidos, erros e propriedades de mensagens B2B (business-to-business), você pode criar e usar esquemas AS2, X12 e de acompanhamento personalizado em sua conta de integração. Este guia de referência descreve a sintaxe e os atributos para esses esquemas de rastreamento.
AS2
- Esquema de controle de mensagens AS2
- Esquema de rastreamento de notificação de disposição de mensagem (MDN) AS2
Esquema de controle de mensagens AS2
A sintaxe a seguir descreve o esquema de controle para 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 a seguir descreve os atributos em um esquema de controle para uma mensagem AS2:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem AS2 |
destinatárioNome do parceiro | Não | String | Nome do parceiro do recetor de mensagens AS2 |
as2To | Sim | String | Nome do recetor da mensagem AS2 dos cabeçalhos da mensagem AS2 |
as2De | 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 é ou receive 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 MDN (Message Disposition Notification) |
fileName | Não | String | Nome do arquivo do cabeçalho da mensagem AS2 |
isMessageFailed | Sim | Boolean | Se a mensagem AS2 falhou |
isMessageSigned | Sim | Boolean | Se a mensagem AS2 foi assinada |
isMessageEncrypted | Sim | Boolean | Se a mensagem AS2 foi encriptada |
isMessageCompressed | Sim | Boolean | Se a mensagem AS2 foi compactada |
correlationMessageId | Não | String | ID de mensagem AS2, para correlacionar mensagens com MDNs |
incomingHeaders | Não | Dicionário de JToken | Detalhes do cabeçalho da mensagem AS2 recebida |
outgoingHeaders | Não | Dicionário de JToken | Detalhes do cabeçalho da mensagem AS2 de saída |
isNrrEnabled | Sim | Boolean | Se o valor padrão deve ser usado se o valor não for conhecido |
isMdnEsperado | Sim | Boolean | Se o valor padrão deve ser usado se o valor não for conhecido |
mdnType | Sim | Enumeração | Valores permitidos: NotConfigured , Sync e Async |
Esquema de rastreamento AS2 MDN
A sintaxe a seguir descreve o esquema de controle para uma mensagem AS2 MDN:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"as2To": "",
"as2From": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"messageId": "",
"originalMessageId": "",
"dispositionType": "",
"isMessageFailed": "",
"isMessageSigned": "",
"isNrrEnabled": "",
"statusCode": "",
"micVerificationStatus": "",
"correlationMessageId": "",
"incomingHeaders": {
},
"outgoingHeaders": {
}
}
}
A tabela a seguir descreve os atributos em um esquema de controle para uma mensagem AS2 MDN:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem AS2 |
destinatárioNome do parceiro | Não | String | Nome do parceiro do recetor de mensagens AS2 |
as2To | Sim | String | Nome do parceiro que recebe a mensagem AS2 |
as2De | 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 é ou receive send |
messageId | Não | String | ID da mensagem AS2 |
originalMessageId | Não | String | ID da mensagem original AS2 |
dispositionType | Não | String | Valor do tipo de disposição MDN |
isMessageFailed | Sim | Boolean | Se a mensagem AS2 falhou |
isMessageSigned | Sim | Boolean | Se a mensagem AS2 foi assinada |
isNrrEnabled | Sim | Boolean | Se o valor padrão deve ser usado se o valor não for conhecido |
statusCode | Sim | Enumeração | Valores permitidos: Accepted , Rejected e AcceptedWithErrors |
micVerificationStatus | Sim | Enumeração | Valores permitidos:NotApplicable , Succeeded e Failed |
correlationMessageId | Não | String | ID de correlação, que é a ID da mensagem original que tem o MDN configurado |
incomingHeaders | Não | Dicionário de JToken | Detalhes do cabeçalho da mensagem recebida |
outgoingHeaders | Não | Dicionário de JToken | Detalhes do cabeçalho da mensagem de saída |
X12
- Esquema de rastreamento do conjunto de transações X12
- Esquema de rastreamento de reconhecimento do conjunto de transações X12
- Esquema de rastreamento de intercâmbio X12
- Esquema de rastreamento de confirmação de intercâmbio X12
- Esquema de rastreamento de grupo funcional X12
- Esquema de acompanhamento de reconhecimento de grupo funcional X12
Esquema de rastreamento do conjunto de transações X12
A sintaxe a seguir descreve o esquema de acompanhamento para 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 a seguir descreve os atributos em um esquema de acompanhamento para um conjunto de transações X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | Sim | Enumeração | Direção do fluxo de mensagens, que é ou receive send |
interchangeControlNumber | Não | String | Número de controlo de intercâmbio |
funcionalGroupControlNumber | Não | String | Número de controlo funcional |
transactionSetControlNumber | Não | String | Número de controle do conjunto de transações |
CorrelationMessageId | Não | String | ID da mensagem de correlação, que é uma combinação de {AgreementName}{GroupControlNumber}{TransactionSetControlNumber} |
Tipo de mensagem | Não | String | Conjunto de transações ou tipo de documento |
isMessageFailed | Sim | Boolean | Se a mensagem X12 falhou |
isTechnicalAcknowledgmentExpected | Sim | Boolean | Se o reconhecimento técnico está configurado no contrato X12 |
isFuncionalReconhecimentoEsperado | Sim | Boolean | Se o reconhecimento funcional está configurado no contrato X12 |
needAk2LoopForValidMessages | Sim | Boolean | Se o loop AK2 é necessário para uma mensagem válida |
segmentsContagem | Não | Número inteiro | Número de segmentos no conjunto de transações X12 |
Esquema de rastreamento de reconhecimento do conjunto de transações X12
A sintaxe a seguir descreve o esquema de rastreamento para uma confirmação de 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 a seguir descreve os atributos em um esquema de acompanhamento para uma confirmação de conjunto de transações X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | Sim | Enumeração | Direção do fluxo de mensagens, que é ou receive send |
interchangeControlNumber | Não | String | Número de controlo de intercâmbio do reconhecimento funcional. O valor é preenchido apenas para o lado de envio onde a confirmação funcional é recebida para as mensagens enviadas ao parceiro. |
funcionalGroupControlNumber | Não | String | Número de controlo do grupo funcional do reconhecimento funcional. O valor é preenchido apenas para o lado de envio onde a confirmação funcional é recebida para as mensagens enviadas ao parceiro |
isaSegmento | Não | String | Segmento ISA da mensagem. O valor é preenchido apenas para o lado de envio onde a confirmação funcional é recebida para as mensagens enviadas ao parceiro |
gsSegmento | Não | String | Segmento GS da mensagem. O valor é preenchido apenas para o lado de envio onde a confirmação funcional é recebida para as mensagens enviadas ao parceiro |
respondendofuncionalGrupoControlNumber | Não | String | O número de controlo de intercâmbio correspondente |
respondingFunctionalGroupId | Não | String | O ID do grupo funcional respondendo, que mapeia para AK101 no reconhecimento |
respondingtransactionSetControlNumber | Não | String | O número de controle do conjunto de transações que responde |
respondingTransactionSetId | Não | String | O ID do conjunto de transações respondedor, que mapeia para AK201 na confirmação |
statusCode | Sim | Boolean | Código de status de confirmação do conjunto de transações |
segmentsContagem | Sim | Enumeração | Código de status de reconhecimento com estes valores permitidos: Accepted , Rejected e AcceptedWithErrors |
processandoStatus | Sim | Enumeração | Status de processamento do reconhecimento com estes valores permitidos: Received , Generated , e Sent |
CorrelationMessageId | Não | String | ID da mensagem de correlação, que é uma combinação de {AgreementName}{GroupControlNumber}{TransactionSetControlNumber} |
isMessageFailed | Sim | Boolean | Se a mensagem X12 falhou |
ak2Segmento | Não | String | Reconhecimento de um conjunto de transações dentro do grupo funcional recebido |
ak3Segmento | Não | String | Relata erros em um segmento de dados |
ak5Segmento | Não | String | Informa se o conjunto de transações identificado no segmento AK2 é aceito ou rejeitado e por que |
Esquema de rastreamento de intercâmbio X12
A sintaxe a seguir descreve o esquema de acompanhamento 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 a seguir descreve os atributos em um esquema de acompanhamento para um intercâmbio X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | Sim | Enumeração | Direção do fluxo de mensagens, que é ou receive send |
interchangeControlNumber | Não | String | Número de controlo de intercâmbio |
isaSegmento | Não | String | Segmento ISA de mensagens |
isTechnicalAcknowledgmentExpected | Boolean | Se o reconhecimento técnico está configurado no contrato X12 | |
isMessageFailed | Sim | Boolean | Se a mensagem X12 falhou |
ISA09 | Não | String | Data de intercâmbio de documentos X12 |
ISA10 | Não | String | Tempo de intercâmbio de documentos X12 |
ISA11 | Não | String | Identificador de padrões de controle de intercâmbio X12 |
ISA12 | Não | String | Número da versão do controle de intercâmbio X12 |
ISA14 | Não | String | É solicitada a confirmação do X12 |
ISA15 | Não | String | Indicador para teste ou produção |
ISA16 | Não | String | Separador de elementos |
Esquema de rastreamento de confirmação de intercâmbio X12
A sintaxe a seguir descreve o esquema de acompanhamento 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 a seguir descreve os atributos em um esquema de acompanhamento para uma confirmação de intercâmbio X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | Sim | Enumeração | Direção do fluxo de mensagens, que é ou receive send |
interchangeControlNumber | Não | String | Número de controlo de intercâmbio do reconhecimento técnico recebido dos parceiros |
isaSegmento | Não | String | Segmento ISA pelo reconhecimento técnico recebido dos parceiros |
respondendoInterchangeControlNumber | Não | String | Número de controle de intercâmbio para o reconhecimento técnico recebido dos parceiros |
isMessageFailed | Sim | Boolean | Se a mensagem X12 falhou |
statusCode | Sim | Enumeração | Trocar código de status de confirmação com estes valores permitidos: Accepted , Rejected e AcceptedWithErrors |
processandoStatus | Sim | Enumeração | Status de reconhecimento com estes valores permitidos: Received , Generated e Sent |
TA102 | Não | String | Data de intercâmbio |
TA103 | Não | String | Tempo de intercâmbio |
TA105 | Não | String | Código da nota de intercâmbio |
Esquema de rastreamento de grupo funcional X12
A sintaxe a seguir descreve o esquema de controle para 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 a seguir descreve os atributos em um esquema de controle para um grupo funcional X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | O nome do contrato X12 para o qual as mensagens são resolvidas |
direção | Sim | Enumeração | Direção do fluxo de mensagens, receber ou enviar |
interchangeControlNumber | Não | String | Número de controlo de intercâmbio |
funcionalGroupControlNumber | Não | String | Número de controlo funcional |
gsSegmento | Não | String | Segmento GS da mensagem |
isTechnicalAcknowledgmentExpected | Sim | Boolean | Se o reconhecimento técnico está configurado no contrato X12 |
isFuncionalReconhecimentoEsperado | Sim | Boolean | Se o reconhecimento funcional está configurado no contrato X12 |
isMessageFailed | Sim | Boolean | Se a mensagem X12 falhou |
GS01 | Não | String | Código identificador funcional |
GS02 | Não | String | Código do remetente do aplicativo |
GS03 | Não | String | Código do recetor do aplicativo |
GS04 | Não | String | Data do grupo funcional |
GS05 | Não | String | Tempo de grupo funcional |
GS07 | Não | String | Código da agência responsável |
GS08 | Não | String | Código identificador da versão, versão ou indústria |
Esquema de acompanhamento de reconhecimento de grupo funcional X12
A sintaxe a seguir descreve o esquema de acompanhamento 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 a seguir descreve os atributos em um esquema de controle para uma confirmação de grupo funcional X12:
Property | Necessário | Type | Description |
---|---|---|---|
senderPartnerName | Não | String | Nome do parceiro do remetente da mensagem X12 |
destinatárioNome do parceiro | 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 | Sim | Enumeração | Direção do fluxo de mensagens, que é ou receive send |
interchangeControlNumber | Não | String | Número de controle de intercâmbio, que é preenchido para o lado de envio quando uma confirmação técnica é recebida de parceiros |
funcionalGroupControlNumber | Não | String | Número de controle do grupo funcional do reconhecimento técnico, que é preenchido para o lado enviado quando um reconhecimento técnico é recebido dos parceiros |
isaSegmento | Não | String | O mesmo que o número de controle de intercâmbio, mas preenchido apenas em casos específicos |
gsSegmento | Não | String | O mesmo que o número de controle do grupo funcional, mas preenchido apenas em casos específicos |
respondendofuncionalGrupoControlNumber | Não | String | Número de controlo do grupo funcional original |
respondingFunctionalGroupId | Não | String | Mapeia para AK101 no ID do grupo funcional de reconhecimento |
isMessageFailed | Boolean | Se a mensagem X12 falhou | |
statusCode | Sim | Enumeração | Código de status de reconhecimento com estes valores permitidos: Accepted , Rejected e AcceptedWithErrors |
processandoStatus | Sim | Enumeração | Status de processamento do reconhecimento com estes valores permitidos: Received , Generated , e 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 |
ak9Segmento | Não | String | Se o grupo funcional identificado no segmento AK1 é aceite ou rejeitado e porquê |
Personalizado
Você pode configurar o acompanhamento personalizado que registra eventos do início ao fim do fluxo de trabalho do aplicativo lógico. Por exemplo, você pode registrar eventos de camadas que incluem seu fluxo de trabalho, SQL Server, BizTalk Server ou qualquer outra camada. A seção a seguir fornece código de esquema de controle personalizado que você pode usar nas camadas fora do seu fluxo de trabalho.
{
"sourceType": "",
"source": {
"workflow": {
"systemId": ""
},
"runInstance": {
"runId": ""
},
"operation": {
"operationName": "",
"repeatItemScopeName": "",
"repeatItemIndex": ,
"trackingId": "",
"correlationId": "",
"clientRequestId": ""
}
},
"events": [
{
"eventLevel": "",
"eventTime": "",
"recordType": "",
"record": {}
}
]
}
A tabela a seguir descreve os atributos em um esquema de controle personalizado:
Property | Necessário | Type | Description |
---|---|---|---|
Tipo de fonte | Sim | String | Tipo de fonte de execução com estes valores permitidos: Microsoft.Logic/workflows , custom |
origem | Sim | String ou JToken | Se o tipo de fonte for Microsoft.Logic/workflows , as informações de origem precisarão seguir esse esquema. Se o tipo de origem for custom , o esquema é um JToken. |
systemId | Sim | String | ID do sistema do aplicativo lógico |
runId | Sim | String | ID de execução do aplicativo lógico |
operationName | Sim | String | Nome da operação, por exemplo, ação ou gatilho |
repeatItemScopeName | Sim | String | Repita o nome do item se a ação estiver dentro de um foreach loop ou until |
repeatItemIndex | Sim | Número inteiro | Indica que a ação está dentro de um foreach loop ou until e é o número de índice do item repetido. |
trackingId | Não | String | ID de acompanhamento para correlacionar as mensagens |
correlationId | Não | String | ID de correlação para correlacionar as mensagens |
clientRequestId | Não | String | O cliente pode preencher essa propriedade para correlacionar mensagens |
eventLevel | Sim | String | Nível do evento |
eventTime | Sim | DateTime | Hora do evento no formato UTC: AAAA-MM-DDTHH:MM:SS.00000Z |
recordType | Sim | String | Tipo de registo apenas com este valor permitido: custom |
recorde | Sim | JToken | Tipo de registo personalizado apenas com formato JToken |