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列表字段有空格需要用单引号括起来(不能用双引号,会报错),而传给字段的字符串值反而是要用双引号括起来。
Logo

更多推荐