工业互联网平台企业级平台(数字工厂)提供标准官方应用给制造企业用户进行业务数据的分析和可视化展示,如果标准官方应用不能满足客户要求,企业业务用户可针对自己的业务需求进行个性化的数据分析和可视化展示。为满足个性的数据分析,企业级平台提供数据开发工具,对收集到的工业数据多维度分析,最后通过Quick BIDataV完成数据可视化开发,数据可视化结果最终集成到经营驾驶舱中进行配置使用。本开发实践以统计工厂每月每款产品的销售金额为例,介绍如何采集边缘信息系统数据、完成数据开发和结果可视化展示的完整过程。

销售金额计算逻辑

销售订单ER图
ER图

销售订单主要来自这三张表,分别是销售订单表头、销售订单明细、销售订单体财务明细,需要通过边缘数据集成从ERP里面获取出这三张表的数据放到数据开发提供的数据表中。

计算逻辑描述

维度字段:单据日期(月维度)、物料Id

度量字段:金额本位币

整体开发流程

流程图
边缘端执行

边缘数据集成实时获取ERP数据库的数据,通过JS脚本提取数据转换成想要的数据模型,脚本转换后的数据输出到数据开发的自定义表数据开发里面。

云端数据开发

ERP数据保存到云端企业级平台的数据仓库中,通过编写SQL脚本做多表的JOIN和聚合计算,计算结果通过Quick BIDataV完成数据可视化开发。

新建表

通过自定义表新建表:建表

自定义表必须指定主键,数据的增、删、改、查都是根据主键进行。只有用户自定义创建的表才可以做为边缘数据集成的点输出节点

销售订单表头

表名:ods_iot_hologres_t_sal_order

参数中文 参数英文 数据类型 描述
单据内码 fid string PK
单据类型 f_bill_type_id string
单据编号 f_bill_no string
单据日期 f_date bigint
客户ID f_cust_id string
销售组织ID f_sale_org_id string
销售部门ID f_sal_dept_id string
销售员ID f_saler_id string
单据状态 f_document_status string A:新建 Z:暂存 B: 审核中 C: 已审核 D:重新审核
备注 f_note string
审核日期 f_approve_date bigint

销售订单明细

表名:ods_iot_hologres_t_sal_orderentry

参数中文 参数英文 数据类型 描述
单据内码 fid string
明细内码 f_entry_id string PK
序号 f_seq string
物料ID f_material_id bigint
单位ID f_unit_id string
数量 f_qty float
明细备注 f_note string
库存组织ID f_stock_org_id string
供应组织ID f_supply_org_id string

销售订单体财务明细

表名:ods_iot_hologres_t_sal_orderentry_f

参数中文 参数英文 数据类型 描述
单据内码 fid string
分录内码 f_entry_id string PK
序号 f_receipt_org_id string
收款组织ID f_settle_org_id string
结算组织ID f_amount_lc string
金额本位币 f_all_amount_lc float 金额统计字段
价税合计本位币 f_all_amount_lc float
折扣率 f_discount float 在税后单价上的折扣
折扣额 f_tax_amount float 税后扣除折扣后的金额;折扣额 = 含税单价 * 数量 * 折扣率
税额 f_amount_lc float
税额本位币 f_tax_amount_lc float
单价 f_price float
含税单价 f_tax_price float 增加税点后的单价;含税单价 = 单价 * (1 + 税率)
含税净价 f_tax_net_price float 税后单价减去折扣后的净价 含税净价 = 含税单价 * (1 - 折扣率)
金额 f_amount float
价税合计 f_all_amount float

边缘数据集成

边缘数据集成中配置把边缘端ERP的数据实时同步到自定义表中。

模板选择

选择系统提供的对接ERP销售业务数据的模板,自动生成数据集成任务:模板选择

修改转换节点脚本

在转换节点脚本中定义了自定义表中的字段与对接边缘ERP的数据映射关系,如果需要调整可以通过任务管理修改对应的脚本:配置文件
脚本

修改输出节点

输出节点的类型为数据开发,并指向自定义的表名:数据开发
选择表

启动同步

保存并下载配置,会把该任务列表同步至边缘集群的应用中,在边缘端启动该任务,用于实时增量监听ERP数据库对应的表数据。当捕捉到该表数据变化时,会自动上报变化的数据到企业级平台数据开发的自定义表里面:保存配置

数据查看

边缘ERP中新建一个销售订单后,将自动同步到指定的自定义表中,可使用数据查看中选择表后单击数据预览,查看销售订单数据是否同步到数据开发的表里面:数据预览

数据统计分析

从ERP同步的数据表通过项目管理中调度任务实现统计合并成一张销售统计表。

创建输出统计表

在自定义表创建销售统计表:dwd_iot_emr_sal_order_entry

数据同步
参数中文 参数英文 数据类型 描述
单据内码 fid string PK
明细内码 f_entry_id string PK
单据日期 f_date bigint
单据状态 f_document_status string
客户Id f_cust_id string
物料ID f_material_id string
销售数量 f_qty double
销售金额 f_amount double
销售金额本位币 f_amount_lc double

创建项目

项目管理中新建一个销售统计项目:新建项目

新建作业

新建一个SQL分析类型的作业:作业
编辑如下的SQL脚本:编辑
use custom;

INSERT INTO dwd_iot_emr_sal_order_entry
SELECT  sal_order_view.fid AS fid
        ,orderentry_view.f_entry_id AS f_entry_id
        -- 单据日期
        ,sal_order_view.f_date AS f_date
        -- 单据状态
        ,sal_order_view.f_document_status AS f_document_status
        -- 客户Id
        ,sal_order_view.f_cust_id AS f_cust_id
        -- 物料Id
        ,orderentry_view.f_material_id AS f_material_id
        -- 销售数量
        ,orderentry_view.f_qty AS f_qty
        -- 销售金额
        ,orderentry_view.f_amount AS f_amount
        -- 销售金额本位币
        ,orderentry_view.f_amount_lc AS f_amount_lc
FROM    ods_iot_hologres_t_sal_order_emr AS sal_order_view
JOIN    (
            SELECT  orderentry_view.fid AS fid
                    ,orderentry_view.f_entry_id AS f_entry_id
                    ,orderentry_view.f_material_id AS f_material_id
                    ,orderentry_view.f_qty AS f_qty
                    ,orderentry_f_view.f_amount AS f_amount
                    ,orderentry_f_view.f_amount_lc AS f_amount_lc
            FROM    ods_iot_hologres_t_sal_orderentry_emr AS orderentry_view
            JOIN    ods_iot_hologres_t_sal_orderentry_f_emr AS orderentry_f_view
            ON      orderentry_view.fid = orderentry_f_view.fid
            AND     orderentry_view.f_entry_id = orderentry_f_view.f_entry_id
        ) orderentry_view
ON     sal_order_view.fid = orderentry_view.fid
;

注:必须使用custom数据库,所有自定义表的数据都是存在该数据库中。

调试

可以单次运行任务,然后查看运行日志和输出的数据统计表结果:运行预览结果

启动定时运行

在数据开发的项目管理中创建定时调度工作流:

新建工作流
在工作流中设定执行销售数据统计分析的作业:任务
工作流的调度周期设置为每隔一个小时运行一次:周期定义
配置好工作流以后,启动该流程,并查看运行日志,数字工厂将每小时把边缘同步的ERP订单数据做一次数据统计并写入到自定义表中:查看日志

数据可视化开发

销售业务统计结果通过Quick BI进行可视化的BI分析。

获取引擎连接信息

连接信息

创建数据源

Quick BI中创建Presto数据源:数据源

创建数据集

使用Presto数据源来创建对应的分析数据集:数据集

注:创建数据集一定要用xxx_presto_custom结尾的表,否则数据集内容无法查询。

创建好数据集后就可以创建分析仪表板,具体操作请参看制作仪表板快速入门

数字工厂集成

最终开发完成的可视化页面可集成到数字工厂分配给对应的账号查看。

获取集成参数

集成仪表板报表到数字工厂需要该报表的PageId,以及QucikBI的AK:pageID
AK

报表嵌入

在QuickBI中选择嵌入报表:嵌入报表
然后从数据开发的数据集成中集成新的仪表盘:仪表盘集成

数据分析的仪表盘集成到数字工厂后,页面将加入到经营驾驶舱应用中,可以在角色管理给不同的业务角色访问和使用,分配权限的业务用户登录数字工厂以后就能在经营驾驶舱中使用:使用