install 初始化接口
触发时机:etl创建时。
作用:此时etl刚进行创建,此时开发者可以在此接口中通过on方法添加对etl事件的监听,并进行一些数据准备等初始化操作。
示例代码
import SmartBIExt from 'smartbi-ext-x'
let {
DataminingModule: {
BaseDataminingExtender,
DataminingEventEmum: {
DATAMINING_ON_SAVE_DIALOG_INIT,
DATAMINING_ON_INIT
}
},
Utils: {
ExtensionUtil: { rmi }
}
} = SmartBIExt
class SaveDialogExtender extends BaseDataminingExtender {
constructor() {
super()
}
install () {
// 监听保存面板事件
this.on(DATAMINING_ON_SAVE_DIALOG_INIT, async (iSaveDialog) => {
// 设置根节点id
let resp = await rmi('UserService', 'getCurrentUser')
iSaveDialog.setRootNodeId(`SELF_${resp.result.id}`)
// 设置节点过滤方法
iSaveDialog.setNodeFilter(item => {
return true
})
})
this.on(DATAMINING_ON_INIT, (datamining) => {
// 设置保存成功回调
datamining.setCustomSaveCallback(function (result) {
console.info(result)
})
})
}
}
export default SaveDialogExtender
扩展接口
扩展接口是自助ETL中提供的外部对系统进行修改的接口,这些接口会在对应的生命周期执行。
开发者实现相关接口时,只需在install方法中,通过on方法监听对应的事件,并实现对应的回调方法,以下示例代码均在install方法中编写。
Datamining 自助ETL/数据挖掘接口
DATAMINING_ON_SAVE_DIALOG_INIT
触发时机:首次打开保存弹窗时
作用:指定用户的可保存的目录
名称 | 类型 | 说明 | |
---|---|---|---|
输入参数 | iSaveDialog | ISaveDialog | 保存弹窗对象(见下文接口对象) |
返回值 | - |
示例代码
this.on(AUGMENTEDDATASET_ON_SAVE_DIALOG_INIT, async (iSaveDialog) => {
// 删除所有操作按钮
iSaveDialog.setOperateButtonFilter(item => {
return false
})
// 设置根节点为我的空间中的分析报表
let resp = await rmi('UserService', 'getCurrentUser')
iSaveDialog.setRootNodeId(`SELF_ANALYSIS_${resp.result.id}`)
})
DATAMINING_ON_INIT
触发时机:点击新建的子菜单时
作用:自定义新建点击的处理
说明:可以在点击新建即席查询、交互式仪表盘(自由布局、自适应布局)时,定制自己的处理逻辑
名称 | 类型 | 说明 | |
---|---|---|---|
输入参数 | iAugmentDataset | IAugmentDataset | 数据模型对象 |
输入参数 | args | Json对象 | restype:资源类型,SMARTBIX_PAGE、COMBINED_QUERY分别代表仪表盘、即席查询 action:动作, SMARTBIX_CRAETE_LARGESCREEN_DASHBOARD_WITH_DATASETID、 SMARTBIX_CRAETE_DASHBOARD_WITH_DATASETID、 SMARTBIX_CREATE_MODEL_QUERY_WITH_DATASETID分别代表:创建自由布局、创建自适应布局、创建即席查询 dataSetId:数据模型id 示例,如下: { restype: 'SMARTBIX_PAGE', action: 'SMARTBIX_CRAETE_LARGESCREEN_DASHBOARD_WITH_DATASETID', dataSetId: 'I8a8a9fb6018210a510a51735018210a517350000' } |
返回值 | - |
示例代码
class AugmentExtentor extends BaseAugmentExtender{
async install () {
let resp = await rmi('UserService', 'getCurrentUser');
this.on(AUGMENTEDDATASET_ON_CREATE_RESOURCE, (iAugmentDatasetImpl, args) => {
console.log(resp)
if (resp.result.name === 'admin') {
// 禁止原创建的逻辑
iAugmentDatasetImpl.setCreateResource(false);
}
})
}
}