Как извлечь строковое значение из моего ответа пользовательского соединителя PowerApps? - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно иметь возможность получать значения из пользовательского соединителя API и сохранять их в переменной (используя UpdateContext). Например, если мой ответ API равен {"result": 100}, я бы хотел поместить значение 100 в свойство text метки.

Я пытаюсь заменить Microsoft Flow, который уже работает (см. Первую формулу ниже) . Я хотел бы отформатировать мой ответ API так, чтобы он заполнял переменные так же, как это делал поток.

Я пытался использовать функцию 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 Ответ

1 голос
/ 16 апреля 2019

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

Когда я заменил коннектор Flow на новый API-коннектор, я не обновил все местоположения, на которые ссылался этот Flow. В то время как большинство определений переменных имели тип «Текст», одно из них имело тип «Ошибка», поскольку оно все еще использовало старый соединитель потока.

Перейдя на вкладку «Вид» и выбрав опцию «Переменные», я смог выбрать конкретную переменную и просмотреть все текущие определения. Это помогло мне диагностировать проблему, о которой я упоминал.

Вот код, который успешно извлек текстовые значения из ответа API:

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