/**
* 创建业务视图-SQL查询示例
*/
public class createBizViewDemo {
public static void main(String[] args) {
String user = "admin"; // 用户名
String password = "admin"; // 密码
String smartbiURL = "http://10.10.31.49:11000/smartbi"; // Smartbi链接
ClientConnector conn = null;
try {
conn = new ClientConnector(smartbiURL); // 创建Smartbi链接对象
// 建立此连接时,就对smartbi进行了登录
conn.open(user, password);
// POST请求的请求体
// pid必须是数据源中业务视图下的节点,包括业务视图节点和目录节点
String body = "{\r\n" + "\"pid\": \"I8a8a4ca2017a18e018e0a2b3017a19209a7c13a3\",\r\n"
+ " \"name\": \"SQL查询1\",\r\n" + " \"alias\": \"SQL查询1\",\r\n"
+ " \"sql\": \"select OrderID as a from orders\"\r\n" + "}";
JSONObject json = JSONObject.fromString(body);
// 创建业务视图-SQL查询
InvokeResult result = conn.remoteInvoke("AugmentedDataSetForVModule", "createDataModelBizView",
new Object[] { json });
if (result != null && result.isSucceed()) {
JSONObject object = JSONObject.fromObject(result.getResult());
String id = (String) object.optString("id");
System.out.println("SQL查询的id: " + id);
}
} finally {
if (conn != null) {
conn.close();
}
}
}
}
http://host:port/smartbi/smartbix/api/dataModel/createBizView
POST
DataModelBizViewCreatedVO
属性 | 类型 | 说明 |
---|
pid | Stirng | 业务视图的父节点,必须是数据源中业务视图下的节点,包括业务视图节点和目录节点,如果不是会抛异常 |
id | String | 业务视图的id |
name | String | 业务视图的名称 |
alias | String | 业务视图的别名 |
sql | String | 业务视图的sql, 暂不支持参数 |
CheckResult
属性 | 类型 | 说明 |
---|
id | Stirng | 模型 id |
errorCode | String | 错误码,成功时错误码、错误信息同时为空 |
errorMessage | String | 错误信息,成功时错误码、错误信息同时为空 |
detail | String | 错误详细信息,成功时错误码、错误信息同时为空 |

{
"name": "SimpleModelDemo",
"alias": "模型简单示例",
"views": [{
"name": "orders",
"alias": "订单表",
"type": "BASIC_TABLE",
"define": {
"tableId": "TAB.northwind.null.orders"
}
}],
"dimensions":[{
"name": "ShipRegion",
"alias": "区域",
"viewName": "orders",
"fieldName": "ShipRegion",
"valueType": "STRING"
}],
"measures": [{
"name": "Freight",
"alias": "运费",
"viewName": "orders",
"aggregator": "sum",
"fieldName": "Freight"
}]
}
{
"name": "SimpleModelDemo2",
"alias": "模型简单示例2",
"views": [{
"name": "orders",
"alias": "订单表",
"type": "SQL_VIEW",
"define": {
"dataSourceId": "DS.notthwind",
"sql": " select * from orders"
}
}]
}
{
"name": "DataModel_java11",
"alias": "DataModel_java11",
"views": [{
"name": "javaDemo",
"alias": "java示例",
"type": "JAVA_VIEW",
"define": {
"className": "smartbi.composite.AccessibleFunctionQueryData",
"paramDefaultValues": {
"Department": "DEPARTMENT",
"UserName": "ADMIN"
}
},"extractSetting": {
"type": "REALTIME"
}
}],
"dimensions":[{
"name": "FunctionAlias",
"alias": "功能别名",
"viewName": "javaDemo",
"fieldName": "FunctionAlias",
"valueType": "STRING"
}, {
"name": "UserAlias",
"alias": "用户别名",
"viewName": "javaDemo",
"fieldName": "UserAlias",
"valueType": "STRING"
}],
"measures": [{
"name": "FunctionId",
"alias": "功能ID",
"viewName": "javaDemo",
"aggregator": "count",
"fieldName": "FunctionId"
}]
}
{
"name": "DataModel_csv3",
"alias": "DataModel_csv3",
"views": [{
"name": "javaDemo",
"alias": "java示例",
"type": "JAVA_VIEW",
"define": {
"className": "smartbi.CSVJavaQuery",
"configs": {
"FileName": "D:/foodmart_store.csv",
"Encoding": "utf-8"
}
}
}],
"dimensions":[{
"name": "store_street_address",
"alias": "地址",
"viewName": "javaDemo",
"fieldName": "store_street_address",
"valueType": "ASCII"
}],
"measures": [{
"name": "store_number",
"alias": "数量",
"viewName": "javaDemo",
"aggregator": "sum",
"fieldName": "store_number"
}]
}
{
"name": "SimpleModelDemo5",
"alias": "SQL私有查询带参数",
"views": [
{
"name": "orders",
"alias": "订单表",
"type": "SQL_VIEW",
"define": {
"dataSourceId": "DS.notthwind",
"sql": " select * from orders where {[orderId = ${param}]}"
},
"parameters": [
{
"name": "param",
"valueType": "STRING",
"defaultValue": {
"value": [
[
"SQL参数默认值",
""
]
],
"dataSource": "DS.northwind"
}
}
]
}
]
}
{
"name": "SimpleModelDemo6",
"alias": "私有参数映射SQL参数",
"views": [
{
"name": "orders",
"alias": "订单表",
"type": "SQL_VIEW",
"define": {
"dataSourceId": "DS.notthwind",
"sql": " select * from orders where {[orderId = ${param}]}"
},
"parameters": [
{
"name": "param",
"valueType": "STRING",
"defaultValue": {
"value": [
[
"",
""
]
],
"dataSource": "DS.northwind"
}
}
]
}
],
"parameters": [
{
"visible": true,
"name": "参数-1726717634521",
"refMapping": [
{
"refViewName": "orders",
"refParamName": "param"
}
],
"valueType": "STRING",
"componentType": "LIST_SINGLE",
"defaultType": "CONSTLIST",
"defaultValue": {
"value": [
[
"默认值真实值",
"默认值显示值"
]
]
},
"standByType": "CONSTLIST",
"standByValue": {
"value": [
[
"备选值真实值",
"备选值显示值"
]
]
},
"alias": "参数"
}
]
}
{
"name": "SimpleModelDemo7",
"alias": "私有参数含SQL映射SQL参数",
"views": [
{
"name": "orders",
"alias": "订单表",
"type": "SQL_VIEW",
"define": {
"dataSourceId": "DS.notthwind",
"sql": " select * from orders where {[orderId = ${param}]}"
},
"parameters": [
{
"name": "param",
"valueType": "STRING",
"defaultValue": {
"value": [
[
"",
""
]
],
"dataSource": "DS.northwind"
}
}
]
}
],
"parameters": [
{
"visible": true,
"name": "参数-1726717634521",
"refMapping": [
{
"refViewName": "orders",
"refParamName": "param"
}
],
"valueType": "STRING",
"componentType": "LIST_SINGLE",
"defaultType": "SQL",
"defaultValue": {
"SQL": "select * from `orderdetails`",
"nameColumn": "OrderID",
"aliasColumn": "OrderID",
"dataSource": "DS.northwind"
},
"standByType": "CONSTLIST",
"standByValue": {
"value": [
[
"备选值真实值",
"备选值显示值"
]
]
},
"alias": "参数"
}
]
}
{
"name": "SimpleModelDemo8",
"alias": "创建树形私有参数",
"views": [
{
"name": "orders",
"alias": "订单表",
"type": "SQL_VIEW",
"define": {
"dataSourceId": "DS.notthwind",
"sql": " select * from orders where {[orderId = ${param}]}"
},
"parameters": [
{
"name": "param",
"valueType": "STRING",
"defaultValue": {
"value": [
[
"",
""
]
],
"dataSource": "DS.northwind"
}
}
]
}
],
"parameters": [
{
"visible": true,
"name": "参数-1726717634521",
"refMapping": [
{
"refViewName": "orders",
"refParamName": "param"
}
],
"valueType": "STRING",
"componentType": "TREE_SINGLE",
"defaultType": "SQL",
"defaultValue": {
"SQL": "select * from `orderdetails`",
"nameColumn": "OrderID",
"aliasColumn": "OrderID",
"dataSource": "DS.northwind"
},
"standByType": "SQL",
"standByValue": {
"SQL": "select * from `orderdetails`",
"nameColumn": "OrderID",
"aliasColumn": "OrderID",
"dataSource": "DS.northwind",
"pidColumn": "OrderID",
"idColumn": "OrderID",
"orderBy": [
{
"colName": "ProductID",
"type": "asc"
}
]
},
"rootType": "SQL",
"rootValue": {
"SQL": "select * from `orderdetails`",
"nameColumn": "OrderID",
"aliasColumn": "UnitPrice",
"dataSource": "DS.northwind"
},
"alias": "参数"
}
]
}
注意:需要把注释去掉
{
"name": "ModelDemo",
"alias": "模型示例",
// 私有查询列表
"views": [{
"name": "orderdetails",
"alias": "订单明细表",
"type": "BASIC_TABLE",
"define": {
"tableId": "TAB.northwind.null.orderdetails"
}
/*,
"storeType": "EXTRACT",
"extractSetting": {
"type": "FULL"
}*/
},{
"name": "orders",
"alias": "订单表",
"type": "BASIC_TABLE",
"define": {
"tableId": "TAB.northwind.null.orders"
}
/*,
"storeType": "EXTRACT",
"extractSetting": {
"type": "FULL"
}*/
}],
// 层次结构列表
"hierarchies": [{
"name":"hierArea",
"alias": "地区",
"levels": [
{
"viewName": "orders",
"name": "ShipRegionLevel",
"alias": "区域",
"fieldName": "ShipRegion",
"levelType": "LEVEL"
},
{
"viewName": "orders",
"name": "ShipProvinceLevel",
"alias": "省份",
"fieldName": "ShipProvince",
"levelType": "LEVEL"
}
]
}],
// 日期层次结构列表
"dateHierarchies": [{
"name":"hierDate",
"alias": "时间维度",
"levels": [
{
"viewName": "orders",
"name": "orderYear",
"alias": "年",
"fieldName": "OrderDate",
"levelType": "LEVEL_TIME_YEAR"
},
{
"viewName": "orders",
"name": "orderQuarter",
"alias": "季",
"fieldName": "OrderDate",
"levelType": "LEVEL_TIME_QUARTER"
},
{
"viewName": "orders",
"name": "orderMonth",
"alias": "月",
"fieldName": "OrderDate",
"levelType": "LEVEL_TIME_MONTH"
},
{
"viewName": "orders",
"name": "orderDay",
"alias": "日",
"fieldName": "OrderDate",
"levelType": "LEVEL_TIME_DAY"
}
]
}],
// 维度结构列表
"dimensions":[{
"name": "ShipRegion",
"alias": "区域",
"viewName": "orders",
"fieldName": "ShipRegion",
"valueType": "STRING"
}],
// 表关系图
"relationGraph": {
"relations": [{
"srcViewName": "orderdetails",
"destViewName": "orders",
"linkType": "LEFTJOIN",
"fieldRelations": [{
"srcFieldName": "OrderID",
"destFieldName": "OrderID"
}]
}]
},
// 度量列表
"measures": [{
"name": "Quantity",
"alias": "Quantity",
"viewName": "orderdetails",
"aggregator": "sum",
"fieldName": "Quantity"
},{
"name": "UnitPrice",
"alias": "UnitPrice",
"viewName": "orderdetails",
"aggregator": "sum",
"fieldName": "UnitPrice"
}],
// 计算度量列表
"calcMeasures": [
{
"name":"calc1",
"alias":"数量加1",
"expression": "[Measures].[Quantity] + 1"
}
],
// 计算成员列表
"calcMembers": [
{
"name":"north",
"alias":"北方",
"expression": "[hierArea].[东北] + [hierArea].[华北]",
"hierName": "[ShipRegion]"
}
]
}
pid:父节点 id;
post 内容的结构如下,详细说明如下:

属性 | 类型 | 说明 |
---|
id | String | 模型 id,更新时才需要填 |
name | String | 模型名称 |
alias | String | 模型别名 |
views | LIst<DataModelViewVO> | 私有查询列表 |
measures | LIst<DataModelMeasureVO> | 度量列表 |
relationGraph | DataModelRelationGraphVO | 表关系图 |
hierarchies | List<DataModelHierarchyVO> | 层次结构列表 |
dateHierarchies | List<DataModelDateHierarchyVO> | 基于日期字段生成时间层次列表 |
calcMeasures | LIst<DataModelCalcMeasureVO> | 计算度量列表 |
calcMembers | LIst<DataModelCalcMemberVO> | 计算成员列表 |
namedSets | LIst<DataModelNamedSetVO> | 命名集列表 |
parameters | LIst<DataModelParameterVO> | 私有参数列表 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
type | ViewType | 类型:SQL_VIEW、JAVA_VIEW、BASIC_TABLE,分别代表SQL查询、Java查询、基础表 。以下暂不支持:PROC_VIEW、JS_VIEW、ETL_VIEW、EXCEL_VIEW、COMBINEDQUERY_VIEW、TIME_TABLE |
define | ObjectNode | 定义,有对应具体的 VO,如基础表为BasicTableViewDefineVO |
storeType | StoreType | 存储方式:DIRECT、EXTRACT,分别代表直连、抽取 |
extractSetting | ExtractSettingVO | 抽取设置 |
parameters | List<DataModelParameterFieldVO> | 参数列表定义,支持设置SQL查询中参数的类型及默认值 |
属性 | 类型 | 说明 |
---|
type | ExtractType | 抽取方式:FULL、REALTIME,分别代表全量、按次抽取 |
属性 | 类型 | 说明 |
---|
name | String | 参数名称 |
valueType | ValueType | 数据类型:INTEGER、DOUBLE、LONG、STRING等 |
defaultValue | ObjectNode | 参数类型,可参考案例5中的定义 |
属性 | 类型 | 说明 |
---|
tableId | String | 基础表 Id |
属性 | 类型 | 说明 |
---|
dataSourceId | String | 数据源 Id |
sql | String | sql 语句 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
aggregator | String | 聚合方式:SUM、COUNT、 AVG、DISTINCT_COUNT、MAX、MIN |
fieldName | String | 私有查询字段名 |
viewName | String | 私有查询名 |
属性 | 类型 | 说明 |
---|
relations: | List<RelationVO> | 表关系列表 |
属性 | 类型 | 说明 |
---|
srcViewName | String | 名称 |
destViewName | String | 别名 |
linkType | TableLinkType | 连接方式:LEFTJOIN、RIGHTJOIN、INNERJOIN、FULLJOIN,分别代表 1 对多、多对 1、1 对 1(内连接)、1 对 1(外连接) |
fieldRelations | List<FieldRelationVO> | 私有查询字段名 |
属性 | 类型 | 说明 |
---|
srcFieldName | String | 源字段名 |
destFieldName | String | 目标字段名 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
levels | List<DataModelLevelVO> | 层次列表 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
fieldName | String | 字段名 |
viewName | String | 私有查询名 |
levelType | FieldTreeNodeType | 层次类型:LEVEL、LEVEL_TIME_YEAR、LEVEL_TIME_QUARTER、LEVEL_TIME_MONTH、LEVEL_TIME_WEEK、LEVEL_TIME_DAY、LEVEL_GEO,分别代表普通、年、季、月、周、日、地理层次 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
levels | List<DataModelLevelVO> | 层次列表 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
expression | String | 表达式 |
dataFormat | String | 数据格式名,可以在公共设置-数据格式中查询需要的名 |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
expression | String | 表达式 |
hierName | String | 层次结构名,如:[ShipRegion] |
parentName | String | 父成员名:[ShipRegion].[All ShipRegions] |
属性 | 类型 | 说明 |
---|
name | String | 名称 |
alias | String | 别名 |
expression | String | 表达式 |
hierName | String | 层次结构名,如:[ShipRegion] |
属性 | 类型 | 说明 |
---|
viewName | String | 私有查询名 |
fieldName | String | 字段名 |
visible | String | 可见性 |
dataFormat | String | 数据格式名,可以在公共设置-数据格式中查询需要的名 |
maskingRule | String | 脱敏规则 |
valueType | ValueType | 数据类型:INTEGER、DOUBLE、LONG、STRING 等 |
属性 | 类型 | 说明 |
---|
name | String | 私有查询名 |
alias | String | 字段名 |
visible | boolean | 可见性 |
valueType | ValueType | 控件类型:INPUT、INPUT_MULTIPLE、LIST_SINGLE、TREE_SINGLE(树形)等 |
defaultType | ParamExprType | 默认值类型:SQL、CONSTLIST(静态列表) |
defaultValue | ObjectNode | 参数默认值,有静态列表与SQL,有ConstiListObjectNode 与 SQLObjectNode |
standByType | ParamExprType | 备选值类型 |
standByValue | ObjectNode | 备选值 |
rootType | ParamExprType | 根节点类型 |
rootValue | ObjectNode | 根节点值 |
refMapping | List<DataModelParameterMappingVO> | 映射表参数 |
属性 | 类型 | 说明 |
---|
value | List<List
>
| value中有多个List,每个List有两个元素,第一个元素为真实值,第二个元素为显示值 |
属性 | 类型 | 说明 |
---|
SQL | String | value中有多个List,每个List有两个元素,第一个元素为真实值,第二个元素为显示值 |
nameColumn | String | 真实值字段 |
aliasColumn | String | 显示值字段 |
dataSource | String | 查询SQL的数据源 |
pidColumn | String | 父ID |
idColumn | String | ID |
orderBy | List<OrderByVO> | 排序信息 |
属性 | 类型 | 说明 |
---|
colName | String | 排序字段 |
type | String | 排序类型:asc、desc |
属性 | 类型 | 说明 |
---|
refViewName | String | 引用参数所在表的名称 |
refParamName | String | 引用参数名 |