非常感谢有关如何在 PowerApps/Automate 中使用家庭电子邮件功能的指导。 (家庭是一个特定的邮寄行业术语)
我有一个 PowerApps 工具,可以在现场收集扫描代码(实际上,我们正在使用 QR 代码扫描仪并疯狂地扫描盒子)。例如,“RITM1234567”是一个扫描码。
每个扫描代码都与一个客户相关联。例如,“RITM1234567”属于“爱德华”。当然,“爱德华”映射到爱德华的电子邮件地址(例如“Edward@EdwardDesk.com”)
每个扫描码还与一个描述相关联,例如“香蕉”。
在我的扫描码列表中,有很多扫描(一次可以有 1-200 个或更多扫描码)。那些要给爱德华的人是从 0 到所有的人。但我只想给爱德华发一封单一的电子邮件(家庭),就像这样:
Hey Edward, the following items are ready for you to eat:
RITM1234567 - banana
RITM7654321 - banana
RITM7162534 - grape
Bring a fork and come on over!
所以,我提到的那些关联是共享点列表的一部分,例如:
[RITM VALUE] [CUSTOMER NAME] [CUSTOMER EMAIL] [ITEM DESCRIPTION]
RITM1234567 Edward Edward@EdwardDesk.com banana
RITM7654321 Edward Edward@EdwardDesk.com banana
RITM7162534 Edward Edward@EdwardDesk.com banana
如果有其他人的扫描件,那么我想在同一个 SharePoint 列表中查找它们并向他们发送电子邮件。
因此,如果扫描的集合是 10 个项目:Edward 5 个,Pat 3 个,Kit 2 个
那么它应该发送三封电子邮件,而不是十封。
考虑到 PowerApps 似乎有一些奇怪的限制(没有数组或其他访问数据的主要方式),您将如何着手解决这个问题? (见脚注)
我承认它有点高级,所以即使是高级建议也可能有用。而且我通常可以遵循伪代码。
谢谢你,
爱德华
-=-=-=-=-
脚注:我之前在 Excel-VBA 应用程序中解决了这个问题,方法是创建一个包含所有单个条目的新工作表,按客户名称排序,然后从底部开始进行重复数据删除。然后我在一个大循环中做了很多连接来创建每封电子邮件的主题/正文信息。但我不确定在这里我会怎么做。 Excel VBA 应用程序已经持续了几年,但我的任务是用我们环境中更广泛的东西(因此是 Powerapps Canvas 应用程序)替换它。数据表是一种适合于此的结构吗?
答案 0 :(得分:0)
如果你想从 powerapps 中做到这一点,第一步是创建一个集合,其中包含按人分组的所有扫描代码,然后你使用 ForAll 迭代集合,每个组就像一个集合中的一个集合。
这个想法是为每个拥有一组代码的人发送一封电子邮件,然后可以像收集一样遍历每个记录。
ForAll(
my_colecction.persons,
ForAll(
ThisRecord.persons,
Office365Outlook.SendEmail(
person.email,
"Subject",
"body"
)
)
);
可以通过流直接从共享点执行此操作。
答案 1 :(得分:0)
鉴于此集合:
ClearCollect(colPersons,
{id: 1, email: "test@test.com"},
{id: 2, email: "test@test.com"},
{id: 3, email: "test@test.com"},
{id: 4, email: "test@test.com"},
{id: 5, email: "test@test.com"},
{id: 6, email: "test1@test.com"},
{id: 7, email: "test1@test.com"},
{id: 8, email: "test1@test.com"},
{id: 9, email: "test2@test.com"},
{id: 10, email: "test2@test.com"}
)
这只会向不同的电子邮件地址发送电子邮件:
email
对集合进行分组ForAll(
GroupBy(
colPersons,
"email",
"other"
),
Office365Outlook.SendEmailV2(
ThisRecord.email,
"Subject",
"Body"
)
)