Ведение журнала настраиваемого соединителя Power BI не происходит - PullRequest
0 голосов
/ 02 октября 2018

Я создаю пользовательский коннектор Power BI в Visual Studio 2017 и хочу, чтобы он регистрировался во время разработки.

Я следовал подходу в примерах и, в частности, в примере TripPin в разделе диагностика .

Файл помощника по диагностике Diagnostics.pqm загружен в мой файл .pq:

Extension.LoadFunction = (name as text) =>
    let
        binary = Extension.Contents(name),
        asText = Text.FromBinary(binary)
    in
        Expression.Evaluate(asText, #shared);

// Diagnostics module contains multiple functions. We can take the ones we need.
Diagnostics = Extension.LoadFunction("Diagnostics.pqm");
Diagnostics.LogValue = if (EnableTraceOutput) then Diagnostics[LogValue] else (prefix, value) => value;

EnableTraceOutput имеет значение true, а файл Diagnostics.pqm имеет значениеустановить «Компиляция».'Show User Traces' имеет значение true в свойствах проекта.

Я ссылался на функцию:

shared GetSomeData = (test as logical, systemfolder as text) as table =>
    let
        #"SystemFolder" = Text.Trim(Text.Clean(systemfolder)),
        #"connstring" = "Provider=myprovider;Data Source=" & AddBs(#"SystemFolder") 
            & "seqco.dbf;Collating Sequence=machine;",
        _connstring = Diagnostics.LogValue("Conn String", #"connstring"),
        #"query" = "select stuff from table",
        data = OleDb.Query(#"connstring", #"query")
in
    data;

Функция выполняется и возвращает данные, но ничего не регистрируется, насколько я могуувидеть.

1 Ответ

0 голосов
/ 02 октября 2018

Как правило, нужно правильно прочитать этот проклятый пример, его следует вызывать так, используя _connstring в OleDb.Query (), чтобы он вычислил:

shared GetSomeData = (test as logical, systemfolder as text) as table =>
    let
        #"SystemFolder" = Text.Trim(Text.Clean(systemfolder)),
        #"connstring" = "Provider=myprovider;Data Source=" & AddBs(#"SystemFolder") 
            & "seqco.dbf;Collating Sequence=machine;",
        _connstring = Diagnostics.LogValue("Conn String", #"connstring"),
        #"query" = "select stuff from table",
        data = OleDb.Query(_connstring, #"query")
in
    data;
...