язык запросов 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 при его вызове и вызвать эту функцию в столбце запроса.