язык запросов kusto - передача значения параметра пользовательской функции

Я пытаюсь отправить вывод из значения времени записи таблицы в Function1 в качестве значения параметра. но я получаю ошибку ниже дляFunction1()

семантическая ошибка: SEM0100: оператор "toscalar": не удалось разрешить скалярное выражение с именем "recordtime".

Я пробовал с рекордным временем прохождения как tostring() а также todatetime()

Function definitions:
Function1(fromdate string,recordtime string)
Function2(fromdate string,enddatetime string)
Main (startdate,enddatetime,id)

Function Main (startdate,enddatetime,id){
    TestTable 
    | where (fromdate >= datetime(startdate)
    and todate <= datetime(enddatetime))
    and deviceid == id
    | summarize cnt = count(), recordtime = Timestamp
    | extend getdates = case (
                              cnt == 1,toscalar(Function1(startdate,recordtime)),
                              cnt == 2,toscalar(Function2(startdate,enddatetime )),
                             "Out of range"
                             )
    | Project getdates 
}
Function1 and Function2 returns single array like ([{"fromdate":"2020-03-11T16:39:47.6730000Z"},{"todate":"2020-03-11T16:44:23.8800000Z"}]

любые предложения, заранее спасибо

1 ответ

Функция Function1 является табличной функцией и поэтому не может быть вызвана таким образом в середине запроса.

Если Function1 "функционально возвращает скаляр", переместите toscalar() внутри Function1, чтобы вы могли удалить toscalar при его вызове и вызвать эту функцию в столбце запроса.

Другие вопросы по тегам