2017-01-24 1 views
0

Je suis nouveau sur Logic Apps et je n'ai encore rien trouvé sur ce sujet.Est-il possible de traiter JSON et d'accéder aux paramètres à l'aide du bus de service?

Je l'ai vu qu'il est possible d'ajouter un JSON schema lorsque vous utilisez la « requête HTTP » -trigger et en ajoutant le schéma JSON dans la « Demande du corps JSON schéma » -box. J'ai également regardé l'ajout de schéma dans le "compte d'intégration", cependant la section dans la documentation dit "pour confirmer que les documents XML que vous recevez sont valides", ce qui n'est pas ce que je recherche. J'utilise une file d'attente Azure Service Bus. Dans ce cas, j'ai PeekLock comme déclencheur, l'idée est que l'entrée dans le bus de service sera d'un certain format. Tout sera en JSON. Je ne m'inquiète pas ou besoin de savoir ce qui se passe avant le bus de service, tout ce que je sais, c'est que chaque message contiendra le même format. Ce que mon application logique est censée faire est de recevoir le message dans le bus de service, puis l'envoyer par la poste à celui qui est supposé y accéder, et l'ajouter s'il y a quelque chose à ajouter à partir du stockage blob. Je veux pouvoir accéder à certains "tags" ou "paramètres", car Service Bus n'a que ses propres tags.

J'ai utilisé le jsonschema.net pour obtenir le schéma, et voici le JSON de la façon dont un format ressemblera:

{ 
    "items": [ 
    { 
     "Key": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXX", 
     "type": "Email", 
     "data": { 
     "subject": "Who is the father?", 
     "bodyBlobUID": "00000000-0000-0000-0000-000000000000", 
     "to": [ 
      "[email protected]" 
     ], 
     "cc": [ 
      "[email protected]" 
     ], 
     "bcc": [ 
      "[email protected]" 
     ], 
     "encoding": "System.Text.UTF8Encoding", 
     "isBodyHtml": false, 
     "organisationUID": "00000000-0000-0000-0000-000000000000", 
     "BlobUIDs": [ 
      "[email protected]" 
     ] 
     } 
    } 
    ] 
} 

Donc mes questions sont de 2 parties:

  • 1: Est-ce -il possible d'ajouter des schémas JSON sans utiliser le déclencheur HTTP Request pour utiliser le bus de service? 2: Si # 1 est possible, ou peut-être être fait d'une autre manière. Comment puis-je accéder aux balises ou aux paramètres du format JSON ? À ce moment j'essaye de faire des transformations en utilisant schémas et cartes avec le compte d'intégration mais il semble inutile.

Répondre

0

MISE À JOUR: Parse JSON est maintenant disponible dans Logic Apps. Nous allons lancer une action appelée JSON Parse la semaine prochaine, dans laquelle vous pouvez spécifier la sortie du bus de service en tant que charge utile, définir le schéma de la charge utile, puis les jetons personnalisés dans les étapes suivantes.

+0

Bonjour Derek Li. Avec la nouvelle action JSON Parse, la plupart de mes problèmes sont résolus. Cependant, j'ai un autre problème que je ne peux pas comprendre. Depuis mon "to", "cc" etc est un tableau. Le problème est lorsque j'essaye d'accéder à la matrice. (Peut-être qu'il y a un meilleur moyen, si c'est je voudrais savoir). J'utilise @ {item() ['data'] ['to']} quand j'ai seulement 1 adresse email dans "to", la traduction brute est "[" [email protected] "]". Je ne sais pas pourquoi il ajoute les parenthèses "[]". Lequel lorsque j'essaie d'utiliser l'Outlook, l'envoi d'une action de courrier échoue en raison d'un destinataire invalide. Im en utilisant le déclencheur de bus de service -> json parse -> envoyer l'action de courrier. – Jeff

+0

Si la propriété particulière est un tableau, il s'agira toujours d'un tableau même s'il contient un élément. Dans ce cas, je pense qu'il est préférable de placer l'objet tableau dans une boucle "For-each", et d'utiliser l'action d'envoi d'e-mail dans chaque boucle pour envoyer un e-mail à chaque destinataire. –

+0

Oui j'ai essayé ça. Cependant, le problème est depuis son "article". Donc, si j'essaie d'utiliser la boucle for-each pour "to" j'obtiens l'erreur suivante: "La sortie que vous avez sélectionnée est dans une collection et doit être bouclée pour être accessible.Cette action ne peut pas être dans un foreach." http://imgur.com/gkGaGwV: Et je ne trouve rien à ce sujet non plus.Ce qui (je suppose) signifie que je dois utiliser la boucle for-each pour les "items" mais le problème original existe. Puisque je ne peux pas utiliser une boucle for-each à l'intérieur du for-each, ou toute autre boucle pour "to". – Jeff