Using JSON to travers a list of values in a Message Card in an MS Teams Reporter of a Scenario
I have a list of values that I created in a Python, called "breach_list". It contains anywhere from 1 to 24 strings representing variables that have breached a threshold. I've set up some steps in a Scenario, the final one being a "send message" step. That step sends a message to an MS Teams page if a breach occurs (determined by if a check on the data fails). I want to be able to display the elements of that breach list, but right now all I can do is display the entire list. Here is what it looks like right now:

The JSON code in the MS Teams message is as follows:
@{
"@type": "MessageCard",
"@context": "https://schema.org/extensions",
"themeColor": "${if(outcome == 'SUCCESS', '29AF5D', '')}${if(outcome == 'FAILED', 'F44336', '')}${if(outcome == '', '28A9DD', '')}",
"summary": "${scenarioName} run report",
"sections": [
{
"text": "${if(outcome == 'SUCCESS', '✅', '')}${if(outcome == 'FAILED', '🔴', '')}${if(outcome == '', '🔔', '')} ${scenarioName}: **${outcome}**",
"facts": [
{ "name": "Project", "value": "${scenarioProjectKey}" },
{ "name": "Triggered by", "value": "${triggerName}" },
{ "name": "Thresholds breached", "value": "${breach_list}"}
]
}
],
"potentialAction": [
{
"@type": "OpenUri",
"name": "View Report",
"targets": [
{ "os": "default", "uri": "INSERT URL HERE" }
]
}
]
}
In the above code block, all I do is sent it ${breach_list}, but I'd really like to iterate through the elements of that list and print them each out on a separate line. Something like this:
Thresholds breached
Increase in Scorability Mismatch
EXP Percent Problem Cases 7 Days or Less
EXP Percent Problem Cases 20 to 40 Days
How do I do this in JSON and in the messages card?
Thanks!
Operating system used: Windows
Operating system used: Windows
Operating system used: Windows
Operating system used: Windows
Operating system used: Windows
Answers
-
Alexandru Dataiker, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 1,352 DataikerHi @martyg
,Have you tried converting the ${breach_list} to a string seperate by \n\n as mentioned :
https://learn.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-format?tabs=adaptive-md%2Cdesktop%2Cconnector-html#newlines-for-adaptive-cardsbreach_list = ["Element 1", "Element 2", "Element 3"] breach_list = '\n\n'.join(breach_list)
Thanks,
-
Marty Partner, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 11 PartnerI used that idea and did it like this:
breach_list_string = "" for item in breach_list: breach_list_string = breach_list_string + " * " + item + "<br>"Then, in the JSON portion of the MS Teams reporter I included it in the text section:
"text": "${scenarioName}: **${outcome}** <br><br> **Thresholds breached:** <br> ${breach_list_string}",That seemed to do the trick!