如何处理PowerApps表单提交到SharePoint列表
·
PowerApps作为Garnter低代码平台魔力四象限的领导者,功能确实很强大,不会代码的同学也能很快就能够开发出一个应用。对于跨国企业来说,开发一个自定义的应用哪怕再简单也要申请服务器、简单的开发、相应的费用以及诸多随之而来的繁琐流程,而在PowerApps这种公司体系化管控的SaaS平台里随即开发随即使用,省却了诸多流程。
1. 一般来说跨国企业一般都会购买的微软Office license包含了基本的Power Platform license,基本的应用开发就不需要额外购买其他产品(比如数据存储的dataverse等)。
2. 最简单的方法是通过添加窗体,并和数据里的SharePoint列表源直接绑定,不过这种做法对UI的控制有限,字段的拖拽、大小和布局等控制起来有挑战(试试就知道)。

3. 所以不少开发者更愿意通过自行添加字段后通过Patch方法来提交,以下是自开发的表单界面示例

4. 以下是点击右小角"Submit"按钮后的提交代码,使用的是Power Fx语法:
If(
IsBlank(txtIdeaTitle.Text) || (txtIdeaTitle.Text = "Please input the idea title"),
Notify("Idea title is required, please fill!", NotificationType.Error),
If(
IsBlank(txtIdeaDescription.Text) || (txtIdeaDescription.Text = "Please input the idea description"),
Notify("Idea description is required, please fill!", NotificationType.Error),
If(
IsBlank(txtBusinessValue.Text) || (txtBusinessValue.Text = "Please input the business value"),
Notify("Business value is required, please fill!", NotificationType.Error),
Patch(
'ideas',
Defaults('ideas'),
{
Title: txtIdeaTitle.Text,
Catalog: {Value: drpIdeaCatalog.Selected.Value},
Country: {Value: drpIdeaCountry.Selected.Value},
Description: txtIdeaDescription.Text,
'Business Value': txtBusinessValue.Text,
Status: {Value: "Submitted"}
}
);
Notify("Idea was created successfully!", NotificationType.Information);
Reset(txtIdeaDescription);
Reset(txtIdeaTitle);
Reset(txtBusinessValue);
)
)
)
5. 留意Power Fx语法使用的注意事项:
- If的使用是逐层嵌套的,不像Python或者Java之类可以顺序的写代码;
- If的判断里不支持!=,上例里如果要实现类似效果,要写!(txtIdeaTitle.text = "Please...",同时留意这里必须是双引号,单引号会报错,再留意判断相等时=号而不是常用的==号;
- If判断为真执行第一段代码,为假执行第二段代码,两段代码之间使用逗号隔开,每段代码内部都可以由若干行代码组成,每行代码之间需要用分号隔开。逻辑上逗号的级别就高于分号,这个有点反常识,需要留意;
- 提交到SharePoint列表使用Patch方法,'idea'就是在数据里添加的SharePoint列表数据源的名字,要完全一致。留意不同类型字段传递值的方法,如果SharePoint列表字段有空格需要用单引号括起来(不能用双引号,会报错),而传给字段的字符串值反而是要用双引号括起来。
更多推荐



所有评论(0)