如何从PowerApps自定义连接器响应中提取字符串值?

时间:2019-04-16 18:15:03

标签: connector powerapps

我需要能够从API定制连接器检索值并将它们存储在变量中(使用UpdateContext)。例如,如果我的API响应为{“ result”:100},我想将值100放入Label的text属性中。

我正在尝试替换已经有效的Microsoft Flow(请参见下面的第一个公式)。我想格式化我的API响应,以便它以与Flow相同的方式填充变量。

我尝试使用Set()函数,将全局变量设置为自定义连接器请求的结果。我也尝试过使用ClearCollect()。 (请参见下文)

这是可以正常使用的公式。这是我要替换的现有Microsoft Flow。

Set(varDefaults,GetGasDefaultValues.Run());UpdateContext({v6:varDefaults.specificgravity});UpdateContext({v7:varDefaults.co2});UpdateContext({v8:varDefaults.n2})

我尝试使用“设置”功能。该公式给出以下错误:“名称无效...”和“无效使用'。” “

Set(varDefaults,GasVolumeCalculatorConnector.CalcVol();UpdateContext({v6:varDefaults.specificgravity});UpdateContext({v7:varDefaults.co2});UpdateContext({v8:varDefaults.n2})

我也尝试过使用“ ClearCollect”功能。此公式给出以下错误:“类型不兼容。我们无法评估您的公式,因为上下文变量类型与应用程序中其他位置的值类型不兼容。”

ClearCollect(defaultCollection, GasVolumeCalculatorConnector.GetDefaults());UpdateContext({v6:First(defaultCollection).specific_gravity});UpdateContext({v7:First(defaultCollection).co2});UpdateContext({v8:First(defaultCollection).n2})

我不想更改现有变量的类型。如何格式化我的API响应,使其与之前的Flows响应匹配? (请参阅第一个公式)

1 个答案:

答案 0 :(得分:1)

我找到了解决此问题的方法。问题不是API连接器返回的类型不同于Flow,这是我最初的想法。

当我用新的API连接器替换Flow连接器时,我没有更新所有引用该Flow的位置。尽管大多数变量定义的类型为“文本”,但其中一个定义的类型为“错误”,因为它仍在使用旧的Flow连接器。

通过转到“查看”选项卡并选择“变量”选项,我能够选择一个特定变量并查看所有当前定义。这有助于我诊断出我提到的问题。

以下是从API响应中成功提取文本值的代码:

ClearCollect(collectionName, Connector.Operation({param1: "val1", param2: "val2"}));
UpdateContext({variableName: Text(First(collectionName).attributeName)})