从PowerApps中的自定义连接器(Web API)访问JSON结果

时间:2018-09-27 04:03:50

标签: powerapps microsoft-flow

我正在尝试获取JSON文本结果,例如

[
    {
        "TABLE_NAME": "UpdatePlanning"
    },
    {
        "TABLE_NAME": "StoreInfo"
    },
    {
        "TABLE_NAME": "InSiteTxPerHourPerDay"
    },
    {
        "TABLE_NAME": "inSiteTaskRecordsLocal"
    },
    {
        "TABLE_NAME": "InSiteStoreInformation"
    },
    {
        "TABLE_NAME": "InSiteLogExtractionTest"
    },
    {
        "TABLE_NAME": "InSiteDailySalesPerDay"
    },
    {
        "TABLE_NAME": "FredOfficeLogAlerts"
    },
    {
        "TABLE_NAME": "DPTestAutoScaleTable"
    },
    {
        "TABLE_NAME": "DPGenHoldTable"
    },
    {
        "TABLE_NAME": "DPDailyTopSellerItems"
    },
    {
        "TABLE_NAME": "DPDailyTierSales"
    },
    {
        "TABLE_NAME": "DPDailySales"
    },
    {
        "TABLE_NAME": "DPDailyAvgBasketSize"
    },
    {
        "TABLE_NAME": "ASGInSiteStoreInformation"
    }
]

通过Web API,我包装了一个“自定义连接器”以在PowerApps中使用。我的自定义连接器效果很好,可以在自定义连接器屏幕上正常测试,但是我不知道如何在Power Apps中访问该JSON数据以-例如-填充数据表或填充列表,或者画廊,甚至只是一个标签?请记住,从某些GET方法返回的JSON模式不是固定的,例如JSON结构可能会有所不同,具体取决于查询对象的类型等,但是无论如何我都无法使其工作。

示例: 我在PowerApps应用程序的第一个屏幕的OnStart方法中尝试过此操作

Set(myTable,InSiteConnector.gettables())

假设我的JSON将存储在变量myTable ..中,但是如果我在标签或任何地方引用myTable,它不会产生任何结果。对于数据表或图表或列表使用相同的方法是相同的,没有结果。我在这里想念什么?我已经在网上搜寻过,但是我没有尝试语法明智的方法。

同样,如果我创建一个数据表并尝试选择我的自定义连接器作为数据源,例如它在数据源列表中

enter image description here

但是添加它只会使其一次又一次地显示在此列表中...

enter image description here

但是我无法单击它,或者就从中获取数据而言似乎不做任何事情? (例如,能够从我的JSON中选择字段,甚至可以从GET方法中操作原始的BODY)

我已经开始悬赏某人,请向我展示一个有效且可复制的示例,该示例将JSON从此Web API获取到PowerApps应用中以用于画廊或类似应用。谢谢!

1 个答案:

答案 0 :(得分:3)

必须定义返回数据的JSON模式,任何不适合该模式的数据都不会传递回PowerApps。这是因为该架构用于定义PowerApps中的返回类型以供进一步使用。您可以说某种程度上,连接是强类型的。

下面是一个屏幕快照,您可以在其中定义响应主体,以使数据“作为设计器的输出显示”,

如果架构是可变的,您可以做的是使用Flow获取数据并对其进行处理,并使其符合定义的响应架构,然后再将其返回给PowerApps。

例如,请参见this blog post。如果响应主体是可变的,则可以在GetDailySales步骤之后在Flow中插入一些逻辑,以使响应主体成形为适合Response步骤中定义的JSON模式。

enter image description here