如何在电子邮件连接器中将Logic App参数值与表达式连接起来?

时间:2018-08-09 13:25:43

标签: azure azure-web-sites azure-functions azure-logic-apps

我正在使用Office 365发送电子邮件连接器将电子邮件发送给多个用户。
电子邮件地址的值是由参数和以下表达式之一确定的:连接器的Json视图

"Send_an_email_3": {
                   "inputs": {
                   "body": {
                    "Body": "Test",
      "Cc": "@concat([parameters('email-address')],';',@{items('For_each_6')?['ChallengedBy']})",           
                      "IsHtml": true,
                                    "Subject": "Test"                                        "To": "[parameters('dtf-email-address')]"
                                  },

但是,CC选项中的@concat语句不起作用。

  

“抄送”:   “ @concat([parameters('email-address')],';',@ {items('For_each_6')?['ChallengedBy']}

错误消息:

  

:“模板验证失败:'模板操作   第'1'行和第'130951'列中的'Send_an_email_3'无效:   模板语言表达   '[parameters('email-address')]; @items('For_each_6')?['ChallengedBy'];'不是   有效:字符串字符“;”在位置“ 36”不是   预期。\”。'。”   

  确定了参数值,但表达式未更改,应该按主题行对其进行求值。

enter image description here

3 个答案:

答案 0 :(得分:0)

根据我的测试,您可以尝试使用以下代码进行测试。

"Cc": "@{concat(parameters('email-address'),';',items('For_each_6')?['ChallengedBy'])}"

答案 1 :(得分:0)

如果我正确理解,您正在尝试将ARM模板参数[parameters('email-address')]传递给Logic App Workflow定义语言函数@concat()。添加在部署时要解析的ARM模板表达式和函数的方式可能会导致在执行时对Logic Apps表达式和函数进行评估的方式可能很麻烦。当您在Logic Apps中具有字符串函数(例如@concat())接受要从ARM模板表达式(例如[parameters()][variables()]获取的值的字符串函数时,事情会变得更加困难。在运行时,@concat()函数要求类似

"Cc": "@concat('youremail@domain.com',';',@{items('For_each_6')?['ChallengedBy']}

使用ARM模板参数当前不是您要使用的参数。

一种方法是避免在Logic App工作流定义中使用ARM模板参数。即,创建一个从ARM模板参数获取值的Logic App参数,然后在@concat()函数中使用Logic App参数。

您可以在这篇文章中阅读有关如何执行此操作的完整说明

https://platform.deloitte.com.au/articles/preparing-azure-logic-apps-for-cicd

HTH

答案 2 :(得分:0)

在您的ARM JSON模板中尝试以下表达式,

[concat(parameters('email-address')],'';'','@{items(''For_each_6'')?[''ChallengedBy'']}')]

如果您可以提供“ CC”字段的原始源代码,则会更有帮助。