天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
楼主: 网络菜菜

[已解决] 社区版如何脚本运行执行两个数据源的表单

[复制链接]
 楼主| 网络菜菜 发表于 2024-2-9 09:24:02 | 显示全部楼层
工程师,您好!
var array = text.split( "$$");这个有效,已实现分割查出。

后续代码还有个问题,因为有一个查询语句涉及两个数据源,不知编写的格式如何,出现在如下错误

java.lang.Exception: JavaScriptRunning:[FormName:null Activity(__2M01tFMIyeOHNwkLj7s).同步角色.afterActionScript]: Wrapped com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OA办公' at line 1 (base

我的代码如下:
(function(){
    var dsName = "售后管理系统库";
    var dsName2 = "OA办公";
    var id = COUNTER.genUUID();
    var sql = "SELECT ITEM_NAME FROM oa5.`tlk_职务岗位导入` WHERE ITEM_JOBNAME='工人'";
    var list = queryByDSName(dsName,  sql);

    var text = "";
    for(var itor = list.iterator();itor.hasNext();){
        var item = itor.next();
        text += item.get('ITEM_NAME') + "$$";
    }   
    var array = text.split("$$");
//    println(array[0]);
//    println(array[3]);
    for (var i=0; i<array.length; i++){
        var insert_sql = "SELECT LEFT(oa5.tlk_职务岗位导入.`ID`,18) AS ID, defaultdepartment AS DEPARTMENTID, t_user.ID AS USERID, oa5.`tlk_职务岗位导入`.ITEM_ROLEID2 AS ROLEID FROM obpm5.t_user INNER JOIN oa5.`tlk_职务岗位导入` ON obpm5.t_user.NAME = oa5.`tlk_职务岗位导入`.item_name WHERE obpm5.t_user.NAME='" + array[i] + "'";
        var list2 = queryByDSName(dsName, dsName2,  insert_sql);
    }
println(list);
println(text);
//return text;  
println("aaaaaaaa");
})()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-2-19 17:28:45 | 显示全部楼层
网络菜菜 发表于 2024-2-9 09:24
工程师,您好!
var array = text.split( "$$");这个有效,已实现分割查出。

queryByDSName就用tlk表对应的数据源名称试一下。
 楼主| 网络菜菜 发表于 2024-2-22 11:20:36 | 显示全部楼层
yaya 发表于 2024-2-19 17:28
queryByDSName就用tlk表对应的数据源名称试一下。

工程师,您好!

我改成这样

     for (var i=0; i<array.length; i++){
        var insert_sql = "SELECT LEFT(oa5.tlk_职务岗位导入.`ID`,18) AS ID, defaultdepartment AS DEPARTMENTID, t_user.ID AS USERID, oa5.`tlk_职务岗位导入`.ITEM_ROLEID2 AS ROLEID FROM obpm5.t_user INNER JOIN oa5.`tlk_职务岗位导入` ON obpm5.t_user.NAME = oa5.`tlk_职务岗位导入`.item_name WHERE obpm5.t_user.NAME='" + array + "'";
        var list2 = queryByDSName('售后管理系统库', 'OA办公',  insert_sql);

但一样提示出错

    错误
java.lang.Exception: JavaScriptRunning:[FormName:null Activity(__2M01tFMIyeOHNwkLj7s).同步角色.afterActionScript]: Wrapped com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OA办公' at line 1 (base

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-2-22 13:46:31 | 显示全部楼层
网络菜菜 发表于 2024-2-22 11:20
工程师,您好!

我改成这样

queryByDSName( 'OA办公',  insert_sql);
只写一个数据源,写多个数据源肯定是报错的。
 楼主| 网络菜菜 发表于 2024-2-22 14:43:12 | 显示全部楼层
yaya 发表于 2024-2-22 13:46
queryByDSName( 'OA办公',  insert_sql);
只写一个数据源,写多个数据源肯定是报错的。

工程师,您好!

如果只写一个数据源会如何提示出错

错误
java.lang.Exception: JavaScriptRunning:[FormName:null Activity(__2M01tFMIyeOHNwkLj7s).同步角色.afterActionScript]: Wrapped java.sql.SQLException: Column 'DEFAULTDEPARTMENT' not found. (baselib#1)

因为我里面有两个键值(defaultdepartment, ID)要用到另外一个数据源(售后管理系统库);如果这样只指定一个数据源,就无法查询。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-2-22 15:17:58 | 显示全部楼层
网络菜菜 发表于 2024-2-22 14:43
工程师,您好!

如果只写一个数据源会如何提示出错

那换成另个数据源的会有报错吗。
 楼主| 网络菜菜 发表于 2024-2-22 15:45:31 | 显示全部楼层
yaya 发表于 2024-2-22 15:17
那换成另个数据源的会有报错吗。

是的,会报一样的错

    var list2 = queryByDSName('售后管理系统库',  insert_sql);

错误
java.lang.Exception: JavaScriptRunning:[FormName:null Activity(__2M01tFMIyeOHNwkLj7s).同步角色.afterActionScript]: Wrapped java.sql.SQLException: Column 'DEFAULTDEPARTMENT' not found. (baselib#1)
yaya 发表于 2024-2-22 16:28:53 | 显示全部楼层
网络菜菜 发表于 2024-2-22 15:45
是的,会报一样的错

    var list2 = queryByDSName('售后管理系统库',  insert_sql);

DEFAULTDEPARTMENT把这个字段前加上数据库名试试:obpm5.DEFAULTDEPARTMENT
 楼主| 网络菜菜 发表于 2024-2-22 17:09:48 | 显示全部楼层
yaya 发表于 2024-2-22 16:28
DEFAULTDEPARTMENT把这个字段前加上数据库名试试:obpm5.DEFAULTDEPARTMENT

加上了,但一样提示错误。

var insert_sql = "SELECT LEFT(oa5.tlk_职务岗位导入.`ID`,18) AS ID, obpm5.defaultdepartment AS DEPARTMENTID, obpm5.t_user.ID AS USERID, oa5.`tlk_职务岗位导入`.ITEM_ROLEID2 AS ROLEID FROM obpm5.t_user INNER JOIN oa5.`tlk_职务岗位导入` ON obpm5.t_user.NAME = oa5.`tlk_职务岗位导入`.item_name WHERE obpm5.t_user.NAME='" + array + "'";
        var list2 = queryByDSName('售后管理系统库',  insert_sql);

错误
java.lang.Exception: JavaScriptRunning:[FormName:null Activity(__2M01tFMIyeOHNwkLj7s).同步角色.afterActionScript]: Wrapped com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'obpm5.defaultdepartment' in 'field list' (baselib#1)
yaya 发表于 2024-2-22 17:31:02 | 显示全部楼层
网络菜菜 发表于 2024-2-22 17:09
加上了,但一样提示错误。

var insert_sql = "SELECT LEFT(oa5.tlk_职务岗位导入.`ID`,18) AS ID, obp ...

很抱歉,我的问题,改成这个试试obpm5.t_user.defaultdepartment 。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 15:20

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表