Power Query如何获取钉钉流程表单数据,并自动刷新Power BI报告

Power Query如何获取钉钉流程表单数据,并自动刷新Power BI报告,请详细说明。

引用chatGPT作答,要获取钉钉流程表单数据并自动刷新Power BI报告,可以使用Power Query中的Web数据源。以下是详细说明:

1.在钉钉中创建一个流程表单,并确保已提交一些数据。

2.打开Power BI Desktop,然后单击“开始”选项卡,选择“获取数据”。

3.在“获取数据”窗口中,选择“Web”选项卡,然后输入钉钉流程表单的URL。请确保您具有访问该表单的权限。

4.单击“确定”,然后等待Power Query从表单中提取数据。您可以选择要加载的表格或视图,或者根据需要自定义数据。

5.在Power Query编辑器中,选择“主页”选项卡,然后单击“刷新”选项卡。这将自动刷新表格中的数据。

6.在Power BI Desktop中创建一个报告并将表格添加到报告中。您可以使用Power BI的其他功能来自定义和优化报告。

7.单击“开始”选项卡中的“刷新”按钮以手动刷新报告。如果您要自动刷新报告,请选择“文件”选项卡中的“选项和设置”,然后选择“查询选项”>“刷新设置”。

8.在“刷新设置”中,选择“刷新频率”并选择适当的选项。您可以选择每分钟、每小时、每天或手动刷新。如果您选择定期刷新选项,请设置刷新时间表。

9.单击“确定”以保存更改。现在,Power BI将在定期时间自动刷新您的报告,并更新钉钉流程表单中的数据。

请注意,您需要有权访问钉钉流程表单中的数据,以便从Power Query中提取数据。如果您没有访问权限,则无法使用此方法获取和刷新数据。

首先,钉钉不支持Power Query连接,但支持从Web API获取数据。您需要从钉钉流程管理端开发自定义API,然后获取数据。

以下是获取钉钉流程表单数据并自动刷新Power BI报告的一些步骤:

在钉钉管理后台中,打开钉钉流程管理端并转到相应的流程。

开发相应的自定义API接口。

在Power BI中创建一个新的数据源。

开启Power Query编辑器并选择Web协议。

5.输入API地址并将调用类型设置为“GET”。

在“Headers”选项卡中添加必要的授权令牌(如果有)。

点击“完成”按钮返回Power BI。

在“字段”选项卡中选择需要添加到Power BI报告的字段。

点击“生成”按钮并保存数据源连接。

创建Power BI仪表板并制作报表。

为数据源设置刷新计划,以便数据能够定期刷新并自动更新Power BI仪表板和报表。

请注意,这只是一个简单的概述,因为具体步骤和操作可能因Power BI和钉钉环境而异。在执行此任务之前,请务必研究有关钉钉自定义API和Power BI数据源的详细信息。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
获取钉钉流程表单数据并自动刷新Power BI报告的方法可以通过以下步骤完成:

  1. 首先,需要先从钉钉开放平台获取到应用的appkey、appsecret和企业的corpID信息。使用Power Query中的Web.Contents函数来获取access_token信息,以便后面访问钉钉API。
let
    appkey = "************",
    appsecret = "***************",
    corpID = "************",
    url = "https://oapi.dingtalk.com/gettoken",
    param = "?appkey="&appkey&"&appsecret="&appsecret,
    token = Json.Document(Web.Contents(url&param)) [access_token]
in
    token
  1. 使用Power Query中的Web.Contents函数获取相应的表单数据。可以通过流程实例ID来获取表单数据,使用流程实例ID可以唯一确定一条流程的表单内容。具体方法如下:
let
    url = "https://oapi.dingtalk.com/topapi/processinstance/get",
    access_token = GetAccessToken(),
    param = "{\"process_instance_id\":\"******\"}", // 表示需要获取的流程实例ID
    options = [Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(param)],
    result = Json.Document(Web.Contents(url & "?access_token=" & access_token, options))
in
    result
  1. 将获取到的表单数据转换为Power BI可以使用的格式。这里推荐将表单数据转换为JSON格式,并使用Power Query中的Json.Document函数将其转换为Power BI可以使用的表格形式。
let
    src = GetProcessInstanceData(), // 获取流程实例数据
    formData = src [form_component_values], // 获取表单数据
    jsonForm = Json.Document(formData), // 转换为JSON格式
    formRecord = Record.FromList(jsonForm, {"name", "value"}), // 将JSON格式转为Record格式(类似于Key-Value形式)
    tableForm = Table.FromRecords({formRecord}) // 将Record格式转换为表格形式
in
    tableForm
  1. 在Power BI中创建针对表单数据的报告。可以根据实际需求选择不同类型的图表或表格来展示数据。

  2. 自动刷新Power BI报告。可以通过Power BI中的“刷新”功能来自动刷新报告。自动刷新需要在Power BI中设置数据源的刷新策略,并在钉钉应用中设置相应的API回调地址和加密方式。

完整代码如下:

let
    appkey = "************",
    appsecret = "***************",
    corpID = "************",
    processInstanceID = "******",
    url_token = "https://oapi.dingtalk.com/gettoken",
    url_api = "https://oapi.dingtalk.com/topapi/processinstance/get",
    
    GetAccessToken = () => {
        let
            param = "?appkey="&appkey&"&appsecret="&appsecret,
            token = Json.Document(Web.Contents(url_token&param)) [access_token]
        in
            token
    },

    GetProcessInstanceData = () => {
        let
            access_token = GetAccessToken(),
            param = "{\"process_instance_id\":\""&processInstanceID&"\"}",
            options = [Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(param)],
            result = Json.Document(Web.Contents(url_api & "?access_token=" & access_token, options))
        in
            result,
            
    src = GetProcessInstanceData(),    
    formData = src [form_component_values],
    jsonForm = Json.Document(formData),
    formRecord = Record.FromList(jsonForm, {"name", "value"}),
    tableForm = Table.FromRecords({formRecord})

in
    tableForm

参考资料:

  1. 钉钉开放平台:https://developers.dingtalk.com/document/app/overview
  2. Power Query官方文档:https://docs.microsoft.com/en-us/power-query/
  3. Power BI官方文档:https://docs.microsoft.com/en-us/power-bi/
    如果我的回答解决了您的问题,请采纳!
该回答引用ChatGPT
要获取钉钉流程表单数据并自动刷新Power BI报告,可以通过以下步骤实现:

1. 首先,需要获取钉钉开放平台的应用密钥和应用ID,用于后续的API调用。

2. 然后,在Power Query中创建新的查询,选择“Web”作为数据源,然后输入钉钉开放平台的API地址以及所需的参数,例如:


let
GetFormData = (start_time as datetime, end_time as datetime) =>
let
url = "https://oapi.dingtalk.com/topapi/processinstance/listids",
headers = [#"Content-Type"="application/json", #"Authorization"="Bearer your_access_token"],
body = "{""process_code"":""your_process_code"",""start_time"":""" & start_time & """,""end_time"":""" & end_time & """}",
options = [Headers=headers, Content=Text.ToBinary(body)],
response = Web.Contents(url, options),
json = Json.Document(response),
data = json[#"result"][#"list"]
in
data
in
GetFormData


在上述代码中,需要替换`your_access_token`和`your_process_code`为具体的值。

3. 接下来,在Query Options中配置查询的参数,例如,可以将开始时间和结束时间设定成Power BI报告中的变量,通过Parameter选项来实现自适应取数,如下示例代码:


let
start_time = #date(2021,11,1),
end_time = #date(2021,11,30),
GetFormDataQuery = GetFormData(start_time, end_time),
#"Converted to Table" = Table.FromList(GetFormDataQuery, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
#"Converted to Table"


在代码中,会调用之前定义的`GetFormData`函数获取数据,并将其转换成表格格式。

4. 保存并加载查询,然后将其转换成可视化对象,例如表格或图表,以便于展示数据。

5. 最后,在Power BI报告中,可以通过自定义函数,例如以下示例代码,在报告自动刷新时更新数据源。


let
Source = Excel.Workbook(File.Contents("C:\Users\your_path\your_file.xlsx"), null, true),
Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Date", type date}, {"Sales", Int64.Type}})
in
#"Changed Type"


其中,你需要将代码中的文件路径和文件名替换成自己的,以确保可靠地读取数据。

以上就是获取钉钉流程表单数据并自动刷新Power BI报告的方法,希望对你有所帮助!

我引用ChatGPT作答:
您可以使用Power Query来获取钉钉流程表单数据并自动刷新Power BI报告。以下是一些步骤,您可以参考:

Power Query是一款功能强大的数据提取和转换工具,可以帮助用户轻松地从各种数据源中提取数据并进行清洗、转换和加载。在获取钉钉流程表单数据并自动刷新Power BI报告的过程中,可以使用Power Query来实现。

以下是详细的步骤:

1 获取钉钉流程表单API地址
首先,需要获取钉钉流程表单的API地址。可以在钉钉开发者文档中查找相关的API文档,并根据文档中的说明获取API地址。

2 在Power Query中创建数据源
打开Power BI Desktop,然后选择“获取数据”选项卡中的“Power Query编辑器”。在Power Query编辑器中,选择“从Web”选项,然后输入钉钉流程表单API地址。在输入完API地址后,点击“确定”按钮。

3 获取数据并进行转换
在Power Query编辑器中,可以看到从钉钉流程表单API中获取到的数据。这时,需要对数据进行转换,以便将其与Power BI报告中的其他数据进行整合。可以使用Power Query的各种功能,例如筛选、排序、合并等,来对数据进行转换。

4 设置数据刷新
完成数据转换后,需要设置数据刷新功能,以便在钉钉流程表单中的数据发生变化时自动更新Power BI报告。在Power Query编辑器中,选择“查询选项”菜单中的“查询选项”命令。在“查询选项”对话框中,选择“刷新”选项卡,然后将刷新间隔设置为所需的时间间隔。这样,Power BI报告就会在指定的时间间隔内自动刷新数据。

5 加载数据
完成数据转换和刷新设置后,需要将数据加载到Power BI报告中。在Power Query编辑器中,选择“关闭并应用”按钮,然后选择“加载到”选项卡中的“数据模型”选项。

6 在Power BI报告中使用数据
完成数据加载后,可以在Power BI报告中使用数据。在Power BI报告中,可以创建各种报表、图表和仪表盘,以便更好地展示数据。

以上就是使用Power Query获取钉钉流程表单数据并自动刷新Power BI报告的详细步骤。

您可以参考这篇文章了解更多信息。
https://zhuanlan.zhihu.com/p/144618434
https://zhuanlan.zhihu.com/p/94300429