Страницы: 1
RSS
Expression.Error: Не удается применить доступ к полям в типе List., Сведения: Value=List Key=get_1
 
Здравствуйте, нужно передать данные из битрикс24 (crm) - сделки, в power bi, либо хотя бы в ексель с помощью power query. Пишу данный код в пустом запросе, выдает такую ошибку. В чем может быть причина?
Expression.Error: Не удается применить доступ к полям в типе List.
Сведения:     Value=List     Key=get_1
Код
let
GetString=(k,x)=>
let
QueryCmd="cmd[get_"&Number.ToText(x)&"]",
QueryFilter=Number.ToText((k-1)*2500+(x-1)*50),
QueryString = "crm.deal.list?start="&QueryFilter,
QueryStringURI=Uri.EscapeDataString(QueryCmd)&"="&Uri.EscapeDataString(QueryString)

in
QueryStringURI,

GetRecord=(k,NumberOfRecord,b24Site, b24WebhookKey)=>
let

URLStringEach=List.Generate(
()=>1,
(x)=>x<=Number.RoundUp(NumberOfRecord/50),
(x)=>x+1,
(x)=>GetString(k,x)
),

URLString=Text.Combine(URLStringEach,"&"),
B24Json = Json.Document(Web.Contents("https://"&b24Site&"/rest/1/"&b24WebhookKey&"/batch.json?"&URLString)),

DealList = B24Json[result][result],
RecordToTable = Record.ToTable(DealList),
TableExpandListColumn = Table.ExpandListColumn(RecordToTable,"Value"),
TableExpandRecordColumn = Table.ExpandRecordColumn(TableExpandListColumn, "Value", {"ID", "TITLE",
 "TYPE_ID", "STAGE_ID"},{"ID", "TITLE", "TYPE_ID", "STAGE_ID"}),
TableRemoveColumns = Table.RemoveColumns(TableExpandRecordColumn,{"Name"})
in
TableRemoveColumns,

  b24Site="мой сайт",
  b24WebhookKey="входящий вебхук",
  B24Json1 = Json.Document(Web.Contents("https://"&b24Site&"/"&b24WebhookKey&"/batch.json?"&GetString(1,1))),
  NumberOfRecord = B24Json1[result][result_total][get_1],
  DealListEach = List.Generate(()=>1,
  (k)=>k<=Number.RoundUp(NumberOfRecord/2500),
  (k)=>k+1,
  (k)=>GetRecord(k,if (NumberOfRecord-(k-1)*2500)>2500 then 2500 else NumberOfRecord-(k-
   1)*2500,b24Site,b24WebhookKey)
   ),
   TableDeals=Table.Combine(DealListEach)

   in
   TableDeals
 
Судя по всему вот здесь
NumberOfRecord = B24Json1[result][result_total][get_1],
ваш код обращается к полю записи с названием get_1, а по факту выражение B24Json1[result][result_total] на выходе представляет из себя значение с типом список (aka List.Type). Вот об этом невзрачном событии и сообщает данная ошибка. А вот почему получилось именно так. Это уже тайна покрытая мраком без доступа к источнику.
Изменено: PooHkrd - 28.01.2021 12:45:48
Вот горшок пустой, он предмет простой...
 
PooHkrd, Подскажите, а как можно это исправить? Задать тип поля этого - не помогло
Изменено: Анна Метелева - 28.01.2021 12:19:54
 
Цитата
Анна Метелева написал:
как можно это исправить?
Цитата
PooHkrd написал:
А вот почему получилось именно так. Это уже тайна покрытая мраком без доступа к источнику.
Человек, который писал код, ожидал что в указанном мною выше месте будет обрабатываться запись, а там обрабатывается список. Как это исправить? Проблема скорее всего в источнике. Что тут нужно понять?
1. на сколько это типичная ситуация? Это всегда так?
  если нет значит нужно понять что делать в случае такой ошибки.
  если да то
2. Может ли быть так что результатом данного шага может быть как запись так и список?
  если нет, то ...
  если да, то ...
В общем если это не вы писали (а это так, если бы вы, то сюда бы не обращались), то с данной темой обращайтесь в раздел работа и будьте готовы как-то предоставить доступ к источнику тому, кто за такую работу возьмется. А лучше всего обратиться к автору запроса, уверен он все сделает разительно быстрее - дешевле выйдет.
Цитата
Анна Метелева написал:
Задать тип поля этого - не помогло
Это из разряда "хоть горшком назови, тока в печь не ставь". Можно сколько угодно обзывать список записью, но списком он от этого быть не перестанет.
Изменено: PooHkrd - 28.01.2021 12:55:46
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх