Q:您好:如果用queryBySQL(sql);这个函数放在表单操作按钮的动作执行脚本中可以查询到数据,为什么放到定时任务中却获取不到数据呢?
A:您好,您可以到baselib.js文件中具体看这个方法的实现,代码如下:
- function queryBySQL(sql) {
- var process = getDocProcess($WEB.getApplication());
- var dpg = process.queryBySQL(sql, $WEB.getDomainid());
- if (dpg != null) {
- return dpg.datas;
- } else {
- return null;
- }
- }
复制代码 这里方法中的具体实现用到了getDomainid()这个函数获取企业域的id,用户登录前台后,能够根据这个函数获取当前登录的企业域id,但是注意这里的定时任务是在后台运行的,所以这里的getDomainid()就获取不到企业域的id,那么你在定时任务执行就会获取不到数据啊,那具体如何在定时任务下使用该方法呢,您可参考如下:
- var applicationid="11e2-faba-29768458-ac72-af31f40dcc3f";//固定死的软件id
- var domainid="11e2-faba-c7b9a680-ac72-af31f40dcc3f";//固定死的企业域id
- var sql="select * from tlk_测试A";
- var process = getDocProcess(applicationid);
- var datas=process.queryBySQL(sql,domainid).datas;//根据sql语句和企业域id获取数据集
复制代码 PS:所以如果以后有需要用到我们平台封装好的这些方法在定时任务中执行时,先去baselib.js文件中了解下对应方法的具体实现,看是否有需要用到getApplication()、getDomainid()等这些函数,因为定时任务是在后台运行的,并不知道对应的软件id或企业域id。 |