页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

案例说明

多维分析的简单告警功能,可以满足大部分用户的数据告警需求,但有一些比较复杂的告警,则需要通过多维分析的高级告警功能来实现。例如,当对销售量进行告警的时候,要结合销售利润的值来进行判断,这时简单告警是无法实现的。

...

(1)准备好多维数据源。在本例中,使用系统示例多维数据库” MondrianFoodmartA”。Mondrian”。

数据源路径:数据源 > MondrianFoodmartAMondrian

多维数据源的创建参考多维数据源章节

(2)准备好多维数据集。在本例中,使用多维数据库” MondrianFoodmartA”的”Sales”Mondrian”的”Sales”

多维数据集路径:数据源 > MondrianFoodmartA Mondrian > Sales

多维数据集的创建参考多维数据集章节

(3)准备好告警格式。在本例中,使用的是系统内置的告警格式。

...

行区:放产品维和时间维。产品维包括3个成员:小家电、白色家电、黑色家电;时间维包括4个成员:2016年1季度、2016年2季度、2016年3季度、2016年4季度

列区:放销售量和利润两个度量区的成员。

 Image RemovedImage Added

(5)创建告警

在右侧资源树的”告警”节点上,右键新建告警。将”告警格式”选项设置为”高级设置”,在下方出现的JavaScript脚本编辑框中输入以下脚本。在右侧资源树的”告警”节点上,更多操作菜单上选择  新建,将”告警格式”选项设置为”高级设置”:

Image Added

在下方出现的JavaScript脚本编辑框中输入以下脚本。

//main函数是固定的处理入口

function main(reportResult) {

    var cells = reportResult.getCells();//所有单元格

    var rowSize = reportResult.getRowSize();//总行数

    var columnSize = reportResult.getColumnSize();//每行的列数

    for (var j = 0; j < rowSize; j++) {

        var saleCountCell = cells[j * columnSize];//销售量单元格

        var saleAmountCell = cells[j * columnSize + 1];//利润单元格

        var styleNo = getStyleNo(saleCountCell, saleAmountCell);

        saleCountCell.setStyleNo(styleNo);//设置单元格的告警格式

    }

}

//获取单元格对应告警格式的编号。编号可以通过”查看样式”按钮查看

function getStyleNo(saleCountCell, saleAmountCell) {

    if (saleCountCell.getValue() == null) {

        return 0;

    }

    if (saleAmountCell.getValue() == null) {

        return 0;

}

//销售量大于2000而且利润小于1000000

    if (saleCountCell.getValue() > 2000.0 && saleAmountCell.getValue() < 1000000.0) {

        return 6;

}

//销售量小于3000而且利润大于1000000

    if (saleCountCell.getValue() < 3000.0 && saleAmountCell.getValue() > 1000000.0) {

        return 1;

    }

    return 0;//默认情况返回0,也就是没有告警样式

}

Image Removed

 


关于代码中使用告警样式的编号,可以通过”查看样式”节点查看。

Image Removed

点击【确定】按钮保存告警。点击【刷新】按钮查看告警效果Image Added

点击 确定 按钮保存告警,并在多维分析工具栏中点击 刷新 按钮查看告警效果:

Image Modified

(6)

...

点击 保存 按钮,保存当前多维分析。