Power App - ответ от Flow не рассматривается как json - PullRequest
0 голосов
/ 08 июля 2019

У меня есть мощное приложение, которое хочет собрать некоторые данные из остальных API, я использую Flow, так как это, кажется, рекомендуемый способ.

У меня есть коллекция:

[
    {id: 1,name: "test",lines: [
            {id: 244,
                StrategyId: 1,
                TypeId: 0,
                Weight: 10,
                toWeight: 200
            }
        ]
    },
    {id: 3,name: "test2",lines: [
            {id: 262,
                StrategyId: 3,
                TypeId: 0,
                Weight: 0,
                toWeight: 200
            }
        ]
    }
]

Когда я ввожу это в формулу прямо вверх, она отлично работает:

ClearCollect( CityPopulations, json...)

Однако, когда я пытаюсь извлечь данные из Flow, он возвращает только коллекцию с одной единственной записью, которая является данными json в виде строки.

 Set('CityPopulations','PowerApp->Sendmeamobilenotification'.Run());ClearCollect(NewTable, CityPopulations.testoutput);

В потоке Microsoft я использую триггер PowerApps и отвечаю на PowerApps.

Также обратите внимание, что в именах свойств в структуре json "нет", но это был единственный способ, с помощью которого я мог заставить Power Apps на самом деле принимать ввод в json вручную. Я пытался использовать ответный проппер, как и этот способ. Мне пришлось настроить поток, чтобы удалить "вокруг имен свойств. Все тот же результат.

Вот как выглядит таблица в коллекциях: enter image description here

Вот так выглядит при вводе данных вручную:

enter image description here

это прямой вывод из:

{
  "testoutput": "[{id:1,name:\"test\",lines:[{id:244,StrategyId:1,TypeId:0,fromWeight:10,toWeight:200}]},{id:2,name:\"tester\",lines:[{id:154,StrategyId:2,TypeId:0,fromWeight:10,toWeight:200}]}]"
}

Самое большое отличие - это экранирующие символы, добавленные из потока.

enter image description here

1 Ответ

0 голосов
/ 12 июля 2019

Похоже, вы собираете один столбец текста из ответа API, а не собираете весь ответ.

Попробуйте просто использовать: ClearCollect(colNewTable,'PowerApp->Sendmeamobilenotification'.Run())

Если вы хотите установить colNewTable в качестве переменной, оберните его следующим образом:

Set(varNewTable,ClearCollect(colNewTable,'PowerApp->Sendmeamobilenotification'.Run())

Надеюсь, это поможет!

...