页面树结构

版本比较

标识

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

目录

2022/6/9

问:怎么才能在SDK开发的时候用标准方法打印日志出来

答:看下面的例子

代码块
languagejava
...
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...

@Component
public class UreportRunner implements ApplicationRunner {

static Logger logger = LoggerFactory.getLogger(UreportRunner.class);


@Override
public void run(ApplicationArguments args) { // 初始化
logger.info("检测到Ureport2插件,正在进行初始化检查...");
try {
throw new PlatformException("不存在目录" + fileStoreDir + ",文件将被存储到默认临时目录!(如仍需自定义存储目录,请创建该目录并重新装配)");
} catch (Exception e) { logger.warn("Ureport2初始化异常:" + e.getMessage()); return; }
logger.info("Ureport2初始化完毕,文件存储目录" + fileStoreDir);
}

}


2021/7/21

问:为什么在DWF后端脚本调用阿里云的物模型Restful api的时候,会出现 400 bad request?

答:原因是使用resttemplate发送出去的url会编码一次导致签名被重复编码,在后端服务获取签名时减少了一次签名的编码。

问:如何在DWF表单里面显示3D模型?又如何在三维模型里显示DWF的表单,查询数据,像这样:

Image Added

文档:超级控件实现三维展示攻略.md
链接:http://note.youdao.com/noteshare?id=eb8ef3e8af0980bd3e3432704c91a6c7

2021/7/20日

问:IoTDB时序看板设置隐藏以后,出现了一个空白区,包含了区域放大,时序点选,如何隐藏?

Image Added

答:这是一个时序看板的BUG,现在的解法可以将时序看板放入一个容器控件中,例如:列控件,然后将列控件隐藏。

问:IoTDB时序看板的选项在脚本里怎么设置?

Image Added

Zoom轴: args.rangeSelect
区域拖动放大: args.areaZoom
多图显示: args.multiCharts
选择序列: args.selectSeries
时间过滤: args.dateSwitch

问:IoTDB时序看板如何在脚本里设置设备路径?

答:下面的代码可以完成图形区域的刷新,但是上面的区域参数“设置序列”的列表不会变化,需要另外设置脚本。


代码块
var B= this.getAddinById("TimeSeriesBoard1");
B.args.devicePath="root.sg_test_01.sc2";
B.freshData();

2021/7/19日

问:为什么按照案例(十)写出来的刷新逻辑有错?出现series.type should be specified.

Image Added

答:请注意EChart1控件放入到画布中以后内容是否为空,没有打开编辑放入初始化的EChart选项,需要先在控件里设置初始选项。

问:为什么后台执行Python时间过长以后,会出现505错误,gateway timeout?

答:现在提供的实训环境中请求有超时值设置,目前设置为10分钟,如果后台任务执行时间超过10分钟,就会报错。

2021/7/16日

问:为什么写入IoTDB数据以后,查询得到的时间是1970年去了?

答:注意检查写入程序是不是将时间戳直接当做整数写入,如下所示:

...

insert into root.sg.d(time,sa) values(now(),1) 

问:在案例(十)中提到的定期刷新如何读取IoTDB里面的数据呢?

答:可以通过下面的代码读取IoTDB的数据,然后用this.res返回结果,注意:不要一口气读上百万条!

代码块
languagejs
var Driver = Java.type("org.apache.iotdb.jdbc.IoTDBDriver");
var DriverManager = Java.type('java.sql.DriverManager');

DriverManager.registerDriver(new Driver());
this.logger.info("创建连接类成功!");

// 连接数据库的URL,如果是本地配套的直接使用127.0.0.1:6667
var url = "jdbc:iotdb://127.0.0.1:6667/";

// 数据库连接的用户名密码
var username = "root"; var password = "root";
var connection = DriverManager.getConnection(url, username, password);
this.logger.info("创建连接对象成功!");

var statement = connection.createStatement();
this.logger.info("创建语句成功!");

statement.execute("SHOW STORAGE GROUP");
var result = statement.getResultSet();
this.logger.info("执行语句成功!");while (result.next()) {
this.logger.info(result.getString(0));    
// TODO:在这里增加有关连接结果处理的逻辑
}statement.close();
connection.close();
//返回结果
this.res = 1;  

问:百度地图控件能设置地图中心点和缩放比例吗?

答:目前不支持配置中心点和缩放比例,可以通过脚本来实现(脚本放到表单的初始化中),示例脚本如下:

代码块
languagejs
var map = this.getAddinById("DynamicMap1");
var point = new BMap.Point(116.331398,39.897445);  //中心点坐标
map.map.centerAndZoom(point,12); //放大比例


问:百度地图中鼠标悬停事件以tooltip的形式展示表单怎么设置高度?

答:现在还不支持tooltip的高度,作为需求加入到迭代开发计划

2021年7月14日:

问:为什么this.callServer("abc")传递参数给后端脚本之后,在后端脚本里得到this.customData.xxx的内容是undefined?

答:因为前端脚本里this.callServer期待的参数是一个JSON对象,在这个例子中传输的只是一个字符串,不是JSON对象,所以在后端脚本里通过this.customData.xxx获取的属性值为空,结果自然是undefined,正确的调用方式是:this.callServer({xxx: "abc"}).then...,后端this.customData.xxx

问:如何将用户管理的界面放到App端

答:如何将用户管理的界面放到App端
http://$env.serverIp:$env.serverPort/dwf/modeler-web/AuthModel/AuthBrief?token=$user.token&single=true
其中:
- http://$env.serverIp:$env.serverPort/dwf/modeler-web是服务器的路径
- AuthModel/AuthBrief是建模工具里的界面
- token=$user.token当前用户的令牌
- &single=true要求单页面呈现,不要菜单,不要标题栏
按照上述拼写方法,定制操作可将界面引入应用,不支持深沉黑皮肤


问:如何将省份地图我如何对它任意缩小,扩大?

答:现在只能通过调用echart的函数实现地图缩放,每一个dwf的可视化控件里都有一个chart属性,这个属性就是echart的实例,方法如下:
var myEchart = this.getAddinById("id");
myEchart.chart.setOption(option);

问:this.validateForm是不是会检查控件处于error状态?

答:不会,如果要阻止弹框检查需要使用自行编写的逻辑。

问:Swagger调用调试显示403认证不通过?

答:可以通过App端api登录获得token,然后作为restful api测试使用的token。

...


2021-07-

...

01

答疑老师:刘博

问题清单

Q1: 上传文件控件没保存时下载地址不生效?

...

答:在根节点上创建子件和在子孙节点上创建自建的来法不同,需要区分

...

2021-06-

...

30

答疑老师:郭思雨

问题清单Q1. Echarts里把一个钟表代码复制到dwf的echarts控件里

问:Echarts里把一个钟表代码复制到dwf的echarts控件里 没有正常显示?

问题场景主要现象:

       

             图一echarts5.x官网例子.                           图二DWF建模端自定义可视化组件运行后结果.

...

A1: 目前建模和应用端echarts的版本使用是V4.6.0 用户用例脚本里出现的echarts5.x对仪表盘新增的 'anchor' 等新属性 所以导致无法正确绘制样例 后面版本迭代会考虑更新我们对echarts的版本支持情况的。Q2.表格内


问:表格内 ‘下载图片’ 功能无法正确下载图片 打开的地址404?

问题场景主要现象:

错误的代码:     错误的资源文件地址:

...

  • 脚本全局属性env.serverURL 目前自动获取的是的当前服务器ip+port 对私有自定义部署 增加服务器path情况不友好;
  • 脚本内容中还有一处 '${targetObjOid}' 前面有大量的空格 在浏览器url地址栏解析为转码%20 导致找不到资源 ;

...


问:授权模型对某个用户a授权在某个用户组A下后 该用户登录modeler端无法在授权看到其他用户组?

A3. 是的 目前授权规则就是这样去限制的 只能通过admin去修改a分配到更多其他用户组下;Q4. 表格在列定制面板


问:表格在列定制面板 =》显示模式 =》自定义转换 无效?

A4. 有效的 用户没有提供截图或者表单链接 说是估计自己写的少了引号逗号之类的?;Q5.多对象标签无法正确回填值?


问:多对象标签无法正确回填值?

A5. 因为用户设定多对象标签弹窗的那张表单里 第一个多对象控件是一个收藏的组件控件 而表格控件在其后 导致回填的时候不能将表格所选对象正确带回;Q6.级联创建后的关联关系对象修改后


问:级联创建后的关联关系对象修改后 无法正确回填属性?

A6. kkk这里应该是目前我们的级联创建后的对象 再修改会有问题 建议教程严谨下级联创建的内容;

...

2021-06-

...

29

答疑老师:白静宜

问:实体类中新增属性里的数据字典功能如何使用?

答:在DataDict维护目录与键值对

问:上传文件之后,鼠标悬停位置有个红叉,能拿到这个红叉的事件么?

答:附件控件的红叉事件目前拿不到;appClose脚本正在开发。

问:已经创建的实体类表单, 表单的英文名是否就不能再修改了?

答:表单英文名是不能修改的。

问:模型的版本管理除了模型包打包导出外,还有没有其他方法?

答:现在只能以导出的方式进行模型的版本管理。

问:建模工具的密码可以修改吗?

答:可以,不过admin的密码在application.prop配置文件里。

问:起始操作咋设置呢?

找到起始操作对应的路由

在应用的配置里设置:

第一天:

答疑老师:张晨浩、王昆

...



2021-06-28

问:相同实体类绑定在两个不同的表格A,B上,向B增加记录的时候,A中出现空行是为什么?

答:虽然界面上是两个表格,但是实体类还是一个,增加一行对象意味着前面的字段也增加了空格,所以前一张表也出现了空行。


问:做好的表单, 怎么发布到 app-web 页面上?

答:通过功能模型设置,第二天的课会提到。


问:用户界面,用户可以通过excel上传数据么?数据导入导出 支持多大数据量?一次10万可以吗?

答:用户界面可以设置导入,导出功能,一次导入不宜太多,建议将10条数据分成多个文件导入。


问:通过数据模型新增的属性,为什么在属性库中看不到?

答:通过数据模型新增的属性是绑定在对应类上的,和属性库是分离的,所以在属性库里查不到。


问:自动生成的列表表单,新增显示了创建人和日期?

答:使用引用类的时候需要设置回填oid,否则DWF不知道如何查询引用对象。


问:我们做手机端 页面要开发两次吗 一遍是手机 一遍是pc端?

答:不用,但是需要区分手机页面和PC页面的表单。


问:为什么编辑表单的时候会出现“找不到服务器”的情况?

答:建议使用Chrome浏览器。

问:属性名能带下划线吗?

答:不能,建议采用驼峰命名。


问:请问选择框的 "浏览字段" 能自定义显示格式么?我目前看到的是选择的多个字段以短线相连?

答:不能,还在改进中。

问:这个表的操作列有办法可以实现把“删除”和“详情”放在更多里面吗?

答:现在还不能