Power Apps画布应用:将单选按钮值Patch到Dataverse选项列报错求助
解决Canvas应用Patch Dataverse选项集列类型不匹配问题
问题原因
错误提示明确说明:crb3f_projecttype参数类型不匹配,Dataverse表的选项集列(ProjectType)需要的是OptionSetValue (ProjectType (myTable))类型,但你传入的是文本(Text)类型。这是因为单选按钮/下拉列表的Selected.Value返回的是显示文本,而Dataverse选项集列要求的是带内部标识的选项集对象。
修正方案
根据你的控件绑定方式,分两种情况处理:
情况1:控件直接绑定Dataverse选项集
如果你的Radio1和CountryDrp的Items属性是直接设置为Choices(myTable.ProjectType)和Choices(myTable.Country),直接使用控件的Selected属性即可,它本身就是OptionSetValue类型:
Patch(myTable, Defaults(myTable), { Title: Textbox1.Text, ProjectType: Radio1.Selected, Country: CountryDrp.Selected })
情况2:控件使用自定义文本选项
如果你的控件Items是自定义的文本列表(比如["类型A","类型B"]),需要手动构造OptionSetValue对象,把文本映射到对应的选项集类型:
Patch(myTable, Defaults(myTable), { Title: Textbox1.Text, ProjectType: OptionSetValue(myTable.ProjectType, Radio1.Selected.Value), Country: OptionSetValue(myTable.Country, CountryDrp.Selected.Value) })
关键说明
Dataverse的选项集列本质是存储包含内部值和显示文本的结构化对象,不是单纯的字符串。直接传入Selected.Value的文本内容会导致类型不兼容,必须传入对应类型的OptionSetValue实例才能成功保存。
内容的提问来源于stack exchange,提问作者MJ X
相关产品推荐
相关产品推荐

