Spåra scheman för övervakning av B2B-meddelanden i Azure Logic Apps
Gäller för: Azure Logic Apps (Förbrukning + Standard)
Azure Logic Apps innehåller inbyggd spårning som du kan aktivera för delar av arbetsflödet. För att hjälpa dig att övervaka lyckad leverans eller kvitto, fel och egenskaper för B2B-meddelanden (business-to-business) kan du skapa och använda AS2-, X12- och anpassade spårningsscheman i ditt integrationskonto. Den här referensguiden beskriver syntaxen och attributen för dessa spårningsscheman.
AS2
AS2-meddelandespårningsschema
Följande syntax beskriver spårningsschemat för ett AS2-meddelande:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"as2To": "",
"as2From": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"messageId": "",
"dispositionType": "",
"fileName": "",
"isMessageFailed": "",
"isMessageSigned": "",
"isMessageEncrypted": "",
"isMessageCompressed": "",
"correlationMessageId": "",
"incomingHeaders": {},
"outgoingHeaders": {},
"isNrrEnabled": "",
"isMdnExpected": "",
"mdnType": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för ett AS2-meddelande:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | AS2-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | AS2-meddelandemottagarens partnernamn |
as2To | Ja | String | AS2-meddelandemottagarens namn från huvudena i AS2-meddelandet |
as2From | Ja | String | AS2-meddelandesändarens namn från huvudena i AS2-meddelandet |
agreementName | Nej | String | Namnet på AS2-avtalet som meddelandena matchas till |
riktning | Ja | String | Riktning för meddelandeflödet, som antingen receive är eller send |
messageId | Nej | String | AS2-meddelande-ID från huvudena i AS2-meddelandet |
dispositionType | Nej | String | Borttagningstypvärde för meddelandeborttagningsmeddelande (MDN) |
fileName | Nej | String | Filnamn från as2-meddelandets huvud |
isMessageFailed | Ja | Booleskt | Om AS2-meddelandet misslyckades |
isMessageSigned | Ja | Booleskt | Om AS2-meddelandet har signerats |
isMessageEncrypted | Ja | Booleskt | Om AS2-meddelandet har krypterats |
isMessageCompressed | Ja | Booleskt | Om AS2-meddelandet komprimerades |
correlationMessageId | Nej | String | AS2-meddelande-ID för att korrelera meddelanden med MDN |
incomingHeaders | Nej | Ordlista för JToken | Information om inkommande AS2-meddelandehuvud |
outgoingHeaders | Nej | Ordlista för JToken | Information om utgående AS2-meddelanderubrik |
isNrrEnabled | Ja | Booleskt | Om du vill använda standardvärdet om värdet inte är känt |
isMdnExpected | Ja | Booleskt | Om du vill använda standardvärdet om värdet inte är känt |
mdnType | Ja | Enum | Tillåtna värden: NotConfigured , Sync och Async |
AS2 MDN-spårningsschema
Följande syntax beskriver spårningsschemat för ett AS2 MDN-meddelande:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"as2To": "",
"as2From": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"messageId": "",
"originalMessageId": "",
"dispositionType": "",
"isMessageFailed": "",
"isMessageSigned": "",
"isNrrEnabled": "",
"statusCode": "",
"micVerificationStatus": "",
"correlationMessageId": "",
"incomingHeaders": {
},
"outgoingHeaders": {
}
}
}
I följande tabell beskrivs attributen i ett spårningsschema för ett AS2 MDN-meddelande:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | AS2-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | AS2-meddelandemottagarens partnernamn |
as2To | Ja | String | Partnernamn som tar emot AS2-meddelandet |
as2From | Ja | String | Partnernamn som skickar AS2-meddelandet |
agreementName | Nej | String | Namnet på AS2-avtalet som meddelandena matchas till |
riktning | Ja | String | Riktning för meddelandeflödet, som antingen receive är eller send |
messageId | Nej | String | AS2-meddelande-ID |
originalMessageId | Nej | String | URSPRUNGLIGT MEDDELANDE-ID för AS2 |
dispositionType | Nej | String | VÄRDE FÖR MDN-borttagningstyp |
isMessageFailed | Ja | Booleskt | Om AS2-meddelandet misslyckades |
isMessageSigned | Ja | Booleskt | Om AS2-meddelandet har signerats |
isNrrEnabled | Ja | Booleskt | Om du vill använda standardvärdet om värdet inte är känt |
statusCode | Ja | Enum | Tillåtna värden: Accepted , Rejected och AcceptedWithErrors |
micVerificationStatus | Ja | Enum | Tillåtna värden:NotApplicable , Succeeded och Failed |
correlationMessageId | Nej | String | Korrelations-ID, som är ID:t för det ursprungliga meddelandet som har mdn konfigurerat |
incomingHeaders | Nej | Ordlista för JToken | Information om inkommande meddelandehuvud |
outgoingHeaders | Nej | Ordlista för JToken | Information om utgående meddelanderubrik |
X12
- Spårningsschema för X12-transaktionsuppsättning
- Spårningsschema för X12-transaktionsuppsättningsbekräftelse
- X12-utbytesspårningsschema
- Spårningsschema för X12-utbytesbekräftelse
- X12 funktionellt gruppspårningsschema
- Spårningsschema för X12-funktionsgruppbekräftelse
Spårningsschema för X12-transaktionsuppsättning
Följande syntax beskriver spårningsschemat för en X12-transaktionsuppsättning:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"senderQualifier": "",
"senderIdentifier": "",
"receiverQualifier": "",
"receiverIdentifier": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"interchangeControlNumber": "",
"functionalGroupControlNumber": "",
"transactionSetControlNumber": "",
"CorrelationMessageId": "",
"messageType": "",
"isMessageFailed": "",
"isTechnicalAcknowledgmentExpected": "",
"isFunctionalAcknowledgmentExpected": "",
"needAk2LoopForValidMessages": "",
"segmentsCount": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för en X12-transaktionsuppsättning:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena matchas till |
riktning | Ja | Enum | Riktning för meddelandeflödet, som antingen receive är eller send |
interchangeControlNumber | Nej | String | Kontrollnummer för utbyte |
functionalGroupControlNumber | Nej | String | Funktionskontrollnummer |
transactionSetControlNumber | Nej | String | Kontrollnummer för transaktionsuppsättning |
CorrelationMessageId | Nej | String | Korrelationsmeddelande-ID, som är en kombination av {AgreementName}{GroupControlNumber}{TransactionSetControlNumber} |
messageType | Nej | String | Transaktionsuppsättning eller dokumenttyp |
isMessageFailed | Ja | Booleskt | Om X12-meddelandet misslyckades |
isTechnicalAcknowledgmentExpected | Ja | Booleskt | Om den tekniska bekräftelsen har konfigurerats i X12-avtalet |
isFunctionalAcknowledgmentExpected | Ja | Booleskt | Om den funktionella bekräftelsen har konfigurerats i X12-avtalet |
needAk2LoopForValidMessages | Ja | Booleskt | Om AK2-loopen krävs för ett giltigt meddelande |
segmentsCount | Nej | Integer | Antal segment i X12-transaktionsuppsättningen |
Spårningsschema för X12-transaktionsuppsättningsbekräftelse
Följande syntax beskriver spårningsschemat för en X12-transaktionsuppsättningsbekräftelse:
{
"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": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för en X12-transaktionsuppsättningsbekräftelse:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena matchas till |
riktning | Ja | Enum | Riktning för meddelandeflödet, som antingen receive är eller send |
interchangeControlNumber | Nej | String | Utbyteskontrollnummer för funktionsbekräftelse. Värdet fylls bara i för den sändningssida där funktionell bekräftelse tas emot för de meddelanden som skickas till partnern. |
functionalGroupControlNumber | Nej | String | Funktionsgruppskontrollnummer för funktionsbekräftelse. Värdet fylls endast i för den sändningssida där funktionell bekräftelse tas emot för de meddelanden som skickas till partnern |
isaSegment | Nej | String | ISA-segmentet för meddelandet. Värdet fylls endast i för den sändningssida där funktionell bekräftelse tas emot för de meddelanden som skickas till partnern |
gsSegment | Nej | String | GS-segmentet för meddelandet. Värdet fylls endast i för den sändningssida där funktionell bekräftelse tas emot för de meddelanden som skickas till partnern |
respondingfunctionalGroupControlNumber | Nej | String | Det svara utbyteskontrollnumret |
respondingFunctionalGroupId | Nej | String | Det svarande funktionella grupp-ID:t, som mappar till AK101 i bekräftelsen |
respondingtransactionSetControlNumber | Nej | String | Kontrollnumret för den svarande transaktionsuppsättningen |
respondingTransactionSetId | Nej | String | Det svarande transaktionsuppsättnings-ID:t, som mappar till AK201 i bekräftelsen |
statusCode | Ja | Booleskt | Statuskod för bekräftelse av transaktionsuppsättning |
segmentsCount | Ja | Enum | Bekräftelsestatuskod med följande tillåtna värden: Accepted , Rejected och AcceptedWithErrors |
processingStatus | Ja | Enum | Bearbetningsstatus för bekräftelsen med dessa tillåtna värden: Received , Generated , och Sent |
CorrelationMessageId | Nej | String | Korrelationsmeddelande-ID, som är en kombination av {AgreementName}{GroupControlNumber}{TransactionSetControlNumber} |
isMessageFailed | Ja | Booleskt | Om X12-meddelandet misslyckades |
ak2Segment | Nej | String | Bekräftelse för en transaktionsuppsättning inom den mottagna funktionella gruppen |
ak3Segment | Nej | String | Rapporterar fel i ett datasegment |
ak5Segment | Nej | String | Rapporterar om transaktionsuppsättningen som identifieras i AK2-segmentet accepteras eller avvisas och varför |
X12-utbytesspårningsschema
Följande syntax beskriver spårningsschemat för ett X12-utbyte:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"senderQualifier": "",
"senderIdentifier": "",
"receiverQualifier": "",
"receiverIdentifier": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"interchangeControlNumber": "",
"isaSegment": "",
"isTechnicalAcknowledgmentExpected": "",
"isMessageFailed": "",
"isa09": "",
"isa10": "",
"isa11": "",
"isa12": "",
"isa14": "",
"isa15": "",
"isa16": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för ett X12-utbyte:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena matchas till |
riktning | Ja | Enum | Riktning för meddelandeflödet, som antingen receive är eller send |
interchangeControlNumber | Nej | String | Kontrollnummer för utbyte |
isaSegment | Nej | String | Meddelande-ISA-segment |
isTechnicalAcknowledgmentExpected | Booleskt | Om den tekniska bekräftelsen har konfigurerats i X12-avtalet | |
isMessageFailed | Ja | Booleskt | Om X12-meddelandet misslyckades |
isa09 | Nej | String | X12-dokumentutbytesdatum |
isa10 | Nej | String | X12-dokumentutbytestid |
isa11 | Nej | String | X12-standardidentifierare för utbyteskontroll |
isa12 | Nej | String | Versionsnummer för X12-utbyteskontroll |
isa14 | Nej | String | X12-bekräftelse begärs |
isa15 | Nej | String | Indikator för test eller produktion |
isa16 | Nej | String | Elementavgränsare |
Spårningsschema för X12-utbytesbekräftelse
Följande syntax beskriver spårningsschemat för en X12-utbytesbekräftelse:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"senderQualifier": "",
"senderIdentifier": "",
"receiverQualifier": "",
"receiverIdentifier": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"interchangeControlNumber": "",
"isaSegment": "",
"respondingInterchangeControlNumber": "",
"isMessageFailed": "",
"statusCode": "",
"processingStatus": "",
"ta102": "",
"ta103": "",
"ta105": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för en X12-utbytesbekräftelse:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena matchas till |
riktning | Ja | Enum | Riktning för meddelandeflödet, som antingen receive är eller send |
interchangeControlNumber | Nej | String | Utbyteskontrollnummer för den tekniska bekräftelse som tas emot från partner |
isaSegment | Nej | String | ISA-segmentet för den tekniska bekräftelse som tas emot från partner |
svararInterchangeControlNumber | Nej | String | Utbyteskontrollnummer för den tekniska bekräftelse som tas emot från partner |
isMessageFailed | Ja | Booleskt | Om X12-meddelandet misslyckades |
statusCode | Ja | Enum | Statuskod för utbytesbekräftelse med följande tillåtna värden: Accepted , Rejected och AcceptedWithErrors |
processingStatus | Ja | Enum | Bekräftelsestatus med dessa tillåtna värden: Received , Generated och Sent |
ta102 | Nej | String | Utbytesdatum |
ta103 | Nej | String | Utbytestid |
ta105 | Nej | String | Kod för utbytesanteckning |
X12 funktionellt gruppspårningsschema
Följande syntax beskriver spårningsschemat för en X12-funktionsgrupp:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"senderQualifier": "",
"senderIdentifier": "",
"receiverQualifier": "",
"receiverIdentifier": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"interchangeControlNumber": "",
"functionalGroupControlNumber": "",
"gsSegment": "",
"isTechnicalAcknowledgmentExpected": "",
"isFunctionalAcknowledgmentExpected": "",
"isMessageFailed": "",
"gs01": "",
"gs02": "",
"gs03": "",
"gs04": "",
"gs05": "",
"gs07": "",
"gs08": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för en X12-funktionsgrupp:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena löses till |
riktning | Ja | Enum | Riktning för meddelandeflödet, antingen ta emot eller skicka |
interchangeControlNumber | Nej | String | Kontrollnummer för utbyte |
functionalGroupControlNumber | Nej | String | Funktionskontrollnummer |
gsSegment | Nej | String | Meddelande-GS-segment |
isTechnicalAcknowledgmentExpected | Ja | Booleskt | Om den tekniska bekräftelsen har konfigurerats i X12-avtalet |
isFunctionalAcknowledgmentExpected | Ja | Booleskt | Om den funktionella bekräftelsen har konfigurerats i X12-avtalet |
isMessageFailed | Ja | Booleskt | Om X12-meddelandet misslyckades |
gs01 | Nej | String | Kod för funktionell identifierare |
gs02 | Nej | String | Programsändarkod |
gs03 | Nej | String | Programmottagarens kod |
gs04 | Nej | String | Funktionsgruppsdatum |
gs05 | Nej | String | Tid för funktionell grupp |
gs07 | Nej | String | Kod för ansvarsfull agentur |
gs08 | Nej | String | Identifierarkod för version, version eller bransch |
Spårningsschema för X12-funktionsgruppbekräftelse
Följande syntax beskriver spårningsschemat för en X12-funktionsgruppbekräftelse:
{
"agreementProperties": {
"senderPartnerName": "",
"receiverPartnerName": "",
"senderQualifier": "",
"senderIdentifier": "",
"receiverQualifier": "",
"receiverIdentifier": "",
"agreementName": ""
},
"messageProperties": {
"direction": "",
"interchangeControlNumber": "",
"functionalGroupControlNumber": "",
"isaSegment": "",
"gsSegment": "",
"respondingfunctionalGroupControlNumber": "",
"respondingFunctionalGroupId": "",
"isMessageFailed": "",
"statusCode": "",
"processingStatus": "",
"ak903": "",
"ak904": "",
"ak9Segment": ""
}
}
I följande tabell beskrivs attributen i ett spårningsschema för en X12-funktionsgruppbekräftelse:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
senderPartnerName | Nej | String | X12-meddelandesändarens partnernamn |
receiverPartnerName | Nej | String | X12-meddelandemottagarens partnernamn |
senderQualifier | Ja | String | Skicka partnerkval |
senderIdentifier | Ja | String | Skicka partneridentifierare |
receiverQualifier | Ja | String | Ta emot partnerkval |
receiverIdentifier | Ja | String | Ta emot partneridentifierare |
agreementName | Nej | String | Namnet på X12-avtalet som meddelandena matchas till |
riktning | Ja | Enum | Riktning för meddelandeflödet, som antingen receive är eller send |
interchangeControlNumber | Nej | String | Utbyteskontrollnummer, som fylls i för sändningssidan när en teknisk bekräftelse tas emot från partner |
functionalGroupControlNumber | Nej | String | Funktionsgruppkontrollnummer för den tekniska bekräftelsen, som fylls i för sändningssidan när en teknisk bekräftelse tas emot från partner |
isaSegment | Nej | String | Samma som utbyteskontrollnummer, men fylls endast i i specifika fall |
gsSegment | Nej | String | Samma som funktionella gruppkontrollnummer, men fylls endast i i specifika fall |
respondingfunctionalGroupControlNumber | Nej | String | Kontrollnummer för den ursprungliga funktionella gruppen |
respondingFunctionalGroupId | Nej | String | Mappar till AK101 i bekräftelsefunktionsgruppens ID |
isMessageFailed | Booleskt | Om X12-meddelandet misslyckades | |
statusCode | Ja | Enum | Bekräftelsestatuskod med följande tillåtna värden: Accepted , Rejected och AcceptedWithErrors |
processingStatus | Ja | Enum | Bearbetningsstatus för bekräftelsen med dessa tillåtna värden: Received , Generated , och Sent |
ak903 | Nej | String | Antal mottagna transaktionsuppsättningar |
ak904 | Nej | String | Antal transaktionsuppsättningar som godkänts i den identifierade funktionella gruppen |
ak9Segment | Nej | String | Om den funktionella grupp som identifieras i AK1-segmentet accepteras eller avvisas och varför |
Anpassat
Du kan konfigurera anpassad spårning som loggar händelser från början till slutet av logikappens arbetsflöde. Du kan till exempel logga händelser från lager som innehåller ditt arbetsflöde, SQL Server, BizTalk Server eller något annat lager. Följande avsnitt innehåller anpassad schemakod för spårning som du kan använda i lagren utanför arbetsflödet.
{
"sourceType": "",
"source": {
"workflow": {
"systemId": ""
},
"runInstance": {
"runId": ""
},
"operation": {
"operationName": "",
"repeatItemScopeName": "",
"repeatItemIndex": ,
"trackingId": "",
"correlationId": "",
"clientRequestId": ""
}
},
"events": [
{
"eventLevel": "",
"eventTime": "",
"recordType": "",
"record": {}
}
]
}
I följande tabell beskrivs attributen i ett anpassat spårningsschema:
Property | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
sourceType | Ja | String | Typ av körningskälla med följande tillåtna värden: Microsoft.Logic/workflows , custom |
source | Ja | Sträng eller JToken | Om källtypen är Microsoft.Logic/workflows måste källinformationen följa det här schemat. Om källtypen är custom är schemat en JToken. |
systemId | Ja | String | System-ID för logikapp |
runId | Ja | String | Körnings-ID för logikapp |
operationName | Ja | String | Namnet på åtgärden, till exempel åtgärd eller utlösare |
repeatItemScopeName | Ja | String | Upprepa objektnamnet om åtgärden finns i en foreach eller until -loop |
repeatItemIndex | Ja | Integer | Anger att åtgärden finns i en foreach eller until -loop och är indexnumret för upprepat objekt. |
trackingId | Nej | String | Spårnings-ID för att korrelera meddelandena |
correlationId | Nej | String | Korrelations-ID för att korrelera meddelandena |
clientRequestId | Nej | String | Klienten kan fylla i den här egenskapen för att korrelera meddelanden |
eventLevel | Ja | String | Händelsenivå |
Händelsetid | Ja | Datum/tid | Tid för händelsen i UTC-format: ÅÅÅÅ-MM-DDTHH:MM:SS.000000Z |
recordType | Ja | String | Typ av spårningspost med endast det här tillåtna värdet: custom |
rekord | Ja | JToken | Anpassad posttyp med endast JToken-format |