У меня есть простой логики приложения, использующего разъем SFTP, а затем состояние с выражением, которое гласит:Использование SFTP Имя файла в Logic Apps
Object Name: File Name
Relationship: starts with
Value: '943'
Выражение заканчивается существо:
"@startsWith(triggerOutputs()['headers']['x-ms-file-name'], '''943''')"
Но условие всегда терпит неудачу, даже если файл начинается с 943.
При попытке отладить это я решил написать свойство «имя файла» в тело очереди служебной шины, а затем прочитать его fr om простое приложение Windows. При получении тела в виде строки он всегда делал исключение. Мне пришлось переписать его, чтобы использовать поток для его чтения.
Ошибка Код:
Dim s as String = message.GetBody(of String)()
Рабочий код:
Dim stream As Stream = message.GetBody(Of Stream)()
Dim reader As StreamReader = New StreamReader(stream)
Dim s As String = reader.ReadToEnd
Означает ли это "имя файла" не является строкой, а что-то другое, как массив байтов? Как заставить мое условие в моем приложении Logic работать правильно?
Привет, Томас. У нас есть отладка выражения в ближайшее время и, надеюсь, это упростит утверждения условий отладки. Тем временем, как я обычно отлаживаю это, нужно добавить действие «Создать» и использовать в качестве входного токена «SFTP - имя файла». Таким образом, при запуске приложения Logic вы можете точно увидеть, что это за значение. –
Спасибо за подсказку о том, как «отлаживать», он работает лучше, чем использование служебной шины и запись приложения для его просмотра. Как я уже подтвердил, имя файла начиналось с 943, поэтому я не понимаю, почему условие возвращает false вместо true. –