跳到内容
查看页面以Markdown格式查看

向AI询问本页内容

ChatGPTClaudePerplexityGoogle AI ModeMicrosoft CopilotGrokMistral Le Chat

用Power BI分析你的BCL销售

更新于

用Power BI分析你的BCL销售 (0:20)

BCL没有内置的Power BI连接器,但你的销售数据很容易转过去。从BCL导出已付款的交易,在Excel整理文件,然后在Power BI Desktop(免费)制作报告,按表单、付款渠道和日期显示营业额。如果你熟悉API,Power BI也可以直接从BCL API读取你的交易。

先准备一个包含成功付款的Excel文件:

  1. 在侧边栏点击Transactions。

  2. 点击Successful标签页,然后点击Export All。

    Transactions页面,侧边栏的Transactions、Successful标签页和Export All按钮已标示

  3. 保留默认的列,点击Submit。Excel文件就会下载。

    Export All面板,Submit按钮已标示

所有导出选项,请看导出你的交易。

导出的文件里,订单的每个产品各占一行,而且每一行都会重复该订单的Total Amount (RM)。先删除多出来的行,否则Power BI会把这些订单计算不止一次:

  1. 用Excel打开文件,或上传到OneDrive后用Excel for the web打开。

  2. 点击Data → Remove Duplicates。

  3. 取消勾选Select all columns,只勾选Order Number,保持勾选My data has headers,然后点击OK。

    Remove Duplicates对话框,只勾选了Order Number,OK按钮已标示

  4. 保存文件。

Excel会告诉你删除了多少个重复的行。剩下的行,每笔已付款订单一行。

Power BI Desktop是Microsoft推出的免费Windows App。先在那里制作报告,然后发布到Power BI service:

  1. 打开Power BI Desktop,点击Excel workbook。

    Power BI Desktop开始页面,Excel workbook图块已标示

  2. 选择你保存好的导出文件。在Navigator勾选Worksheet,然后点击Load。

  3. 从Visualizations窗格添加这三个视觉对象,并在Data窗格勾选栏位:

    视觉对象 栏位 显示什么
    Clustered bar chart Form Name、Total Amount (RM) 按表单的营业额
    Donut chart Payment Channel、Total Amount (RM) 按付款渠道的营业额,例如FPX或DuitNow QR
    Clustered column chart Transaction Date(按日)、Total Amount (RM) 按日的营业额
  4. 保存报告,然后点击Publish,选择My workspace。在app.powerbi.com打开报告,就可以在浏览器查看,或在你的机构内分享。

要更新报告,就重新导出,替换文件,然后在Power BI Desktop点击Refresh刷新数据,再重新发布。

Power BI Desktop可以调用BCL API,不必读取导出的文件。你需要一个拥有API Read权限的BCL API token,在Platform Setup → Integrations → API Token获取。请看API tokens。

  1. 在Power BI Desktop开始页面点击Get data from other sources(或在Home标签页点击Get data),搜索Web,选择它,然后点击Connect。

    Get Data对话框,Web连接器和Connect按钮已标示

  2. 选择Advanced。在URL parts输入https://api.bcl.my/v1/transactions和?per_page=100。在HTTP request header parameters下,添加Authorization,值是Bearer 加上你的token,点击Add header,再添加User-Agent,值是你的App名称,例如KopiKampung-PowerBI/1.0。没有正确User-Agent的请求会被BCL拒绝。点击OK。

    Advanced模式下的From Web对话框,URL parts以及Authorization和User-Agent header已标示

  3. 如果Power BI问你要怎样连接,选择Anonymous,然后点击Connect。你的token已经在header里发送。Power Query会打开,并把JSON转换成表格。

第一个查询只读取一页,最多100笔交易。要读取所有页面,并只保留你需要的列,就在Power Query点击Advanced Editor,把查询换成下面这个。把YOUR_API_TOKEN换成你的token:

let
Token = "YOUR_API_TOKEN",
GetPage = (page as number) =>
Json.Document(Web.Contents("https://api.bcl.my/v1", [
RelativePath = "transactions",
Query = [per_page = "100", page = Number.ToText(page)],
Headers = [
Authorization = "Bearer " & Token,
#"User-Agent" = "KopiKampung-PowerBI/1.0",
Accept = "application/json"
]
])),
FirstPage = GetPage(1),
AllRows = List.Combine(
List.Transform({1..FirstPage[meta][last_page]}, each GetPage(_)[data])
),
Orders = Table.FromRecords(AllRows,
{"order_number", "created_at", "payer_name", "amount", "status",
"payment_channel", "form_type", "remarks"}, MissingField.UseNull),
Typed = Table.TransformColumnTypes(Orders,
{{"created_at", type datetime}, {"amount", type number}})
in
Typed

Power Query的Advanced Editor,里面是分页查询

点击Done,在Query Settings下为查询命名(例如BCL Orders),然后点击Close & Apply。API每笔交易返回一行,所以没有产品行需要删除。它包含所有状态,所以加总营业额之前,先把status列筛选为成功的付款。

Power Query里的BCL Orders查询,每笔交易一行,Name栏位已标示

几个好习惯,让你的报告准确又安全:

  • 只导出Successful标签页。导出文件里的待处理、失败和已取消付款会让营业额虚高。
  • 每次使用相同的文件名。用同一个名称把旧的导出文件换成新的,在Power BI Desktop点击Refresh,就能刷新到新数据,不用重新制作视觉对象。
  • 不要把API token放在共享的文件里。Token就在报告的查询里。不要把.pbix文件发给不应该看到你BCL数据的人,而且只给tokenAPI Read权限。
  • 想让新订单一进来就出现在Excel?请看用Power Automate把订单发送到Excel。

常见问题

为什么Power BI里的营业额比BCL高?

BCL导出的文件每个产品一行,每一行都会重复该订单的Total Amount (RM)。加总之前,先按Order Number删除重复的行。

Power BI可以直接读取我的BCL数据吗?

可以,使用Power BI Desktop和BCL API。使用Get data → Web,在Authorization header发送你的API token,并设置你自己的User-Agent。API只列出真实交易。

我把Excel文件导入Power BI service,却只看到电子表格。为什么?

Power BI service会把导入的Excel文件当作工作簿打开查看,而不是报告用的数据。请在Power BI Desktop制作报告,然后发布到你的工作区。

这篇文章对你有帮助吗?

Cookie settings

We use Google Analytics to see which guides help and where readers get stuck. It is on by default; you can turn it off. Your choice is saved on this device.