Azure Logi c Приложение: как передать одну переменную For Each для шага «Выполнение хранимой процедуры»? - PullRequest
0 голосов
/ 28 января 2020

Я использую Azure Logi c Приложение для выполнения хранимой процедуры, которая принимает ввод строки.

Вот определение хранимой процедуры:

ALTER PROCEDURE [ResMgmt].[usp_ExtractReportBlob] 
     (@ReportFileName VARCHAR(255),
      @ReportBlobName VARCHAR(255) OUTPUT)
AS
BEGIN
    DECLARE @SQL VARCHAR(MAX), 
            @ReportSPROCName VARCHAR(MAX);

    SET @ReportSPROCName = (SELECT ReportSPROCName
                            FROM ResMgmt.ReportMetadata
                            WHERE ReportFileName = @ReportFileName);

    SET @SQL = 'EXEC ' + @ReportSPROCName + ';';

    SELECT (@SQL);

    SET @ReportBlobName = '/<azure-storage>/' + @ReportFileName;

    RETURN @ReportBlobName;
END;

Хранимая процедура в конечном итоге выводит строку, которая будет использоваться приложением Logi c, но первым делом ... I невозможно получить мой Attachments Name итератор для использования в качестве входных данных для хранимой процедуры. Хранимая процедура принимает параметр ReportFileName, который будет поступать от итератора шага For Each:

For each step

Вы можете видеть, что в представление кода, я динамически ссылаюсь на item() в ключе body структуры json:

Logic App code view

Но в итоге я получаю эта ошибка в отладке:

Error

Когда я запускаю отладку, я получаю ошибку выше. Кажется, что формат json правильный, поэтому я не понимаю, почему происходит ошибка. Например, я могу подтвердить, что правильное строковое значение DTG Active Client List Daily.csv передается ключу хранимой процедуры ReportFileName.

Как передать эту переменную в мою хранимую процедуру?

1 Ответ

2 голосов
/ 28 января 2020

Я понял, и это очень просто. Я решил переключиться на шаг Execute a SQL Query для простоты, но он работал и по старому методу.

Я передаю строковую переменную в мою хранимую процедуру. json «выглядит» правильно, потому что он содержится в двойных тиках (например, " "). Но хранимая процедура ожидает строку, содержащуюся в одинарных тиках (например, ' '). Мне пришлось вручную обернуть мою переменную одинарными галочками.

Примерно так:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...