Получите полный доступ к сохраненному отчету Clockify через Power Query - PullRequest
0 голосов
/ 02 июля 2019

На основании вопроса Алекса (и собственного ответа на него) здесь У меня было соединение с сохраненным отчетом о синхронизации, который некоторое время работал без проблем. Однако недавно Clockify ввел нумерацию страниц в сохраненных отчетах, в результате чего из отчета возвращаются только (до) первые 50 записей.

Поддержка Clockify указала мне направление «count» или «page» в качестве возможных решений («count» (по умолчанию 50) должно указывать количество возвращаемых записей, а «page» должно указывать страницу возвращаемого отчета) , К сожалению, я не могу изменить то, что возвращается.

= Json.Document(
        Web.Contents("api.clockify.me/api/reports/{my report}",
                     [Headers=    [ContentType="application/json",
                                   #"X-Api-Key"="{my API Key}",
                                   count="9999"                                  
                                   ]
                      ]                    
                    )
                )

Пример выше, я считаю, должен возвращать до 9999 записей, но фактически возвращает только до 50. Параметр "count" полностью игнорируется ...

1 Ответ

0 голосов
/ 04 июля 2019

Я лаял не на том дереве ... Оказывается, нет способа избежать разбивки на страницы в сохраненных отчетах, а параметр count ничего не делает. Этот API находится в разработке, и, как таковые, такие изменения могут произойти. Вместо этого поддержка часов указывает, что вместо этого POST /workspaces/{workspaceId}/reports/summary/ требует некоторых параметров в теле запроса . Пример:

{
  "startDate": "2018-01-01T00:00:00.000Z",
  "endDate": "2018-12-31T23:59:59.999Z",
  "me": "false", (Options: "false", "true", "TEAM", "ME", "null")
  "userGroupIds": [],
  "userIds": [],
  "projectIds": [],
  "clientIds": [],
  "taskIds": [],
  "tagIds": [],
  "billable": "BOTH", (Options: "BOTH", "BILLABLE", "NOT_BILLABLE")
  "includeTimeEntries": "true",
  "zoomLevel": "week", (Options: "week", "month", "year")
  "description": "",
  "archived": "Active", (Options: "Active", "All", "Archived")
  "roundingOn": "false"
}

(Я получил еще несколько параметров из поддержки clockify, но, насколько я могу судить, в настоящее время они не имеют значения. Я прокомментировал их ниже.)

Я получил это для работы в Power Query:

let
 url="https://api.clockify.me/api/workspaces/{workspaceId}/reports/summary/",
    content ="{
      ""startDate"": ""2017-01-01T00:00:00.000Z"",
      ""endDate"": ""2025-12-31T23:59:59.999Z"",
      ""me"": ""false"", 
      ""userGroupIds"": [],
      ""userIds"": [],
      ""projectIds"": [],
      ""clientIds"": [],
      ""taskIds"": [],
      ""tagIds"": [],
      ""billable"": ""BOTH"", 
      ""includeTimeEntries"": ""true"",
      ""zoomLevel"": ""week"", 
      ""description"": """",
      ""archived"": ""Active"", 
      ""roundingOn"": ""false"",
      ""groupingOn"": ""false"" 
"/* ,
      ""groupedByDate"": ""false"",
      ""page"":0,
      ""count"":9999,
      ""sortDetailedBy"": ""timeAsc"" (Options: "description", "descriptionAsc", "userName", "userNameAsc", "duration", "durationAsc", "time", "timeAsc")
 */
       &" }",      
    Source = Json.Document(
                    Web.Contents(url,    [Headers=    [ #"X-Api-Key"="{yourAPIkey}"
                                                        ,ContentType="application/json"
                                                        ,#"Content-Type"="application/json"
                                                       ]
                                         ,Content=Text.ToBinary(content)
                                         ] 
                                 )
                             )
    in
        Source

(Источники: https://community.powerbi.com/t5/Desktop/How-to-add-body-into-Web-Contents/td-p/128996

https://eriksvensen.wordpress.com/2014/09/15/specifying-json-query-in-power-query-example-statistics-sweden/

Дальнейшее развитие:

https://www.thebiccountant.com/2018/06/05/easy-post-requests-with-power-bi-and-power-query-using-json-fromvalue/ )

...