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

 找回密码
 注册成为天翎用户
查看: 3267|回复: 13

[解决中] myapps里的数据库是否有接口可以给其他系统调用查询

[复制链接]
网络菜菜 发表于 2025-6-5 11:17:34 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1- 社区版
【浏览器类型】:Chrome/其他
【联系方式-QQ】:260217944
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:想咨询一下,myapps社区版,是支持mysql的,如果我在数据库里新建一个db_caiwu的数据库,里面只有一张表,包含一些客户名称,开户行,银行账号,和这个表的主ID,因为不是从天翎的系统生成,只是想借用天翎的mysql维护一个数据库,里面的表都是通过Excel导入。不知是否可以制作一个以接口的形式(类似api),供其他系统调用查询?


1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\\\\\"已解决可结帖\\\\\\\"
Chain 发表于 2025-6-9 17:02:04 | 显示全部楼层
可以通过API中心来把对应的数据通过接口返回,给到外部系统进行访问。

  1. //举例:通过传参用户id和测试字段单号来获取适配数据
  2. (function(){
  3.         //获取URL参数
  4.         var userid = CONTEXT.getParameter("userid");                // __oP0irhWXGA2oZRusW1d
  5.         println("userid------------------->"+userid);
  6.         var testnumber = CONTEXT.getParameter("testnumber");        // 001
  7.         println("testnumber------------------->"+testnumber);


  8.         //判断参数非空
  9.         if (null != userid && userid.trim().length()  > 0 && null != testnumber && testnumber.trim().length()  > 0) {
  10.                 // var list = new Packages.java.util.ArrayList();
  11.                 var DataArray = new Packages.net.sf.json.JSONArray();  
  12.                
  13.                 //可以查询系统创建表也可以获取外部表
  14.                 var sql = "select * from tlk_图片打印测试 where 1=1 and item_测试字段 = '"+testnumber+"' and author = '"+userid+"'";
  15.                 var query = queryBySQL(sql);
  16.                 if (query != null && query.size() > 0) {   
  17.                         for(var iter = query.iterator(); iter.hasNext(); ) {
  18.                                 var JSONObject = createObject("com.alibaba.fastjson.JSONObject");
  19.                                 // var result = new Packages.java.util.HashMap(); //创建指定类对象
  20.                                
  21.                                 var docs = iter.next();        
  22.                                 var value = docs.getItemValueAsString("测试字段");
  23.                                 var path = docs.getItemValueAsString("图片路径");   
  24.                                
  25.                                 JSONObject.put("id", docs.getId().toString());
  26.                                 JSONObject.put("path", path.toString());
  27.                                 JSONObject.put("value", value.toString());
  28.                                 DataArray.add(JSONObject);
  29.                         }
  30.                        
  31.                 }
  32.                 return DataArray;
  33.         }
  34.        
  35. })();
复制代码
访问接口地址:http://192.168.88.222:8080/obpm/magic-api/规划所问题验证/test/__oP0irhWXGA2oZRusW1d/001?accessToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhdXRoMCIsImV4cCI6MTc0OTQ2NjM0NSwidXNlcm5hbWUiOiJfX29QMGlyaFdYR0Eyb1pSdXNXMWQifQ.lYV8dL2KgLaG4Y2ErNRQGg5gu6F_rV-CYdxPqFC1E1c,需要带上token,token可以通过脚本获取,也可以到企业域里面openAPI获取。
  1. var accessToken = new Packages.cn.myapps.common.util.Security().getToken(user.getId());
复制代码
结果:

本帖子中包含更多资源

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

x
 楼主| 网络菜菜 发表于 2025-6-9 17:14:01 | 显示全部楼层
Chain 发表于 2025-6-9 17:02
可以通过API中心来把对应的数据通过接口返回,给到外部系统进行访问。

访问接口地址:http://192.168.88 ...

好的,谢谢工程师,我稍后先试试,有问题再请教。
 楼主| 网络菜菜 发表于 2025-7-1 17:35:52 | 显示全部楼层
Chain 发表于 2025-6-9 17:02
可以通过API中心来把对应的数据通过接口返回,给到外部系统进行访问。

访问接口地址:http://192.168.88 ...

工程师,你好!

我将你的代码修改如下:
//举例:通过传参用户id和测试字段单号来获取适配数据
(function(){
         //var ID = CONTEXT.getParameter("ID");
         var ID = "4674658a-a357-1aa3-336d-902b0debe943";
         println("ID--------------->" +ID);
         //var testaccount = CONTEXT.getParameter("账号名称");
         var testaccount = "欧XX";
         println("testaccount------------->" +testaccount);

        //判断参数非空
        if (null != ID && ID.trim().length()  > 0 && null != testaccount && testaccount.trim().length()  > 0) {
                // var list = new Packages.java.util.ArrayList();
                var DataArray = new Packages.net.sf.json.JSONArray();  
               
                //可以查询系统创建表也可以获取外部表
                var sql = "select * from caiwugx where item_账号名称 = '"+testaccount+"' and item_ID = '"+ID+"'";
                var query = queryBySQL(sql);
                if (query != null && query.size() > 0) {   
                        for(var iter = query.iterator(); iter.hasNext(); ) {
                                var JSONObject = createObject("com.alibaba.fastjson.JSONObject");
                                // var result = new Packages.java.util.HashMap(); //创建指定类对象
                                
                                var docs = iter.next();        
                                var bank_number = docs.getItemValueAsString("银行账号");
                                var bank_name = docs.getItemValueAsString("所属银行_名称");   
                                
                                JSONObject.put("id", docs.getId().toString());
                                JSONObject.put("path", path.toString());
                                JSONObject.put("value", value.toString());
                                DataArray.add(JSONObject);
                        }
                        
                }
                return DataArray;
        }
        
})();

并后台设置如下图,不知为何测试时有这个错误。可以指导一下吗?

本帖子中包含更多资源

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

x
 楼主| 网络菜菜 发表于 2025-7-1 17:42:10 | 显示全部楼层
  1. (function(){
  2.          //var ID = CONTEXT.getParameter("ID");
  3.          var ID = "4674658a-a357-1aa3-336d-902b0debe943";
  4.          println("ID--------------->" +ID);
  5.          //var testaccount = CONTEXT.getParameter("账号名称");
  6.          var testaccount = "欧XX";
  7.          println("testaccount------------->" +testaccount);

  8.         //判断参数非空
  9.         if (null != ID && ID.trim().length()  > 0 && null != testaccount && testaccount.trim().length()  > 0) {
  10.                 // var list = new Packages.java.util.ArrayList();
  11.                 var DataArray = new Packages.net.sf.json.JSONArray();  
  12.                
  13.                 //可以查询系统创建表也可以获取外部表
  14.                 var sql = "select * from caiwugx where item_账号名称 = '"+testaccount+"' and item_ID = '"+ID+"'";
  15.                 var query = queryBySQL(sql);
  16.                 if (query != null && query.size() > 0) {   
  17.                         for(var iter = query.iterator(); iter.hasNext(); ) {
  18.                                 var JSONObject = createObject("com.alibaba.fastjson.JSONObject");
  19.                                 // var result = new Packages.java.util.HashMap(); //创建指定类对象
  20.                                 
  21.                                 var docs = iter.next();        
  22.                                 var bank_number = docs.getItemValueAsString("银行账号");
  23.                                 var bank_name = docs.getItemValueAsString("所属银行_名称");   
  24.                                 
  25.                                 JSONObject.put("id", docs.getId().toString());
  26.                                 JSONObject.put("bank_number", bank_number.toString());
  27.                                 JSONObject.put("bank_name", bank_name.toString());
  28.                                 DataArray.add(JSONObject);
  29.                         }
  30.                         
  31.                 }
  32.                 return DataArray;
  33.         }
  34.         
  35. })();
复制代码
Chain 发表于 2025-7-2 09:30:13 | 显示全部楼层

把这个函数trim()去掉,或者试试直接判断非空 xxx !=""
 楼主| 网络菜菜 发表于 2025-7-2 16:53:16 | 显示全部楼层
Chain 发表于 2025-7-2 09:30
把这个函数trim()去掉,或者试试直接判断非空 xxx !=""

当我取消trim()函数时,到length()报错,后来我直接判断xxx != "";
提示oa5.caiwugx的表,后我改了下代码,提示列不存在。
  1. (function(){
  2.          //var ID = CONTEXT.getParameter("ID");
  3.          var ID = "4674658a-a357-1aa3-336d-902b0debe943";
  4.          println("ID--------------->" +ID);
  5.          //var testaccount = CONTEXT.getParameter("账号名称");
  6.          var testaccount = "欧燕红";
  7.          println("testaccount------------->" +testaccount);
  8.          var dsName = "浪潮财务共享库";
  9.          var id = COUNTER.genUUID();

  10.         //判断参数非空
  11.         if (null != ID && null != testaccount) {
  12.                 // var list = new Packages.java.util.ArrayList();
  13.                 var DataArray = new Packages.net.sf.json.JSONArray();  
  14.                
  15.                 //可以查询系统创建表也可以获取外部表
  16.                 var sql = "select * from caiwugx where item_账号名称 = '" +testaccount+ "' and item_ID = '" +ID+ "'";
  17.                 //var query = queryBySQL(sql);
  18.                 var query = queryByDSName(dsName,  sql);
  19.                 if (query != null && query.size() > 0) {   
  20.                         for(var iter = query.iterator(); iter.hasNext(); ) {
  21.                                 var JSONObject = createObject("com.alibaba.fastjson.JSONObject");
  22.                                 // var result = new Packages.java.util.HashMap(); //创建指定类对象
  23.                                 
  24.                                 var docs = iter.next();        
  25.                                 var bank_number = docs.getItemValueAsString("银行账号");
  26.                                 var bank_name = docs.getItemValueAsString("所属银行_名称");   
  27.                                 
  28.                                 JSONObject.put("id", docs.getId().toString());
  29.                                 JSONObject.put("bank_number", bank_number.toString());
  30.                                 JSONObject.put("bank_name", bank_name.toString());
  31.                                 DataArray.add(JSONObject);
  32.                         }
  33.                         
  34.                 }
  35.                 return DataArray;
  36.         }
  37.         
  38. })();
复制代码


本帖子中包含更多资源

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

x
 楼主| 网络菜菜 发表于 2025-7-2 17:21:48 | 显示全部楼层
  1. if (null != ID && null != testaccount) {
  2.                 // var list = new Packages.java.util.ArrayList();
  3.                 var DataArray = new Packages.net.sf.json.JSONArray();  
  4.                
  5.                 //可以查询系统创建表也可以获取外部表
  6.                 var sql = "select * from caiwugx where inspur.caiwugx.账号名称 = '"+testaccount+"' and inspur.caiwugx.ID = '"+ID+"'";
  7.                 //var query = queryBySQL(sql);
  8.                 var query = queryByDSName(dsName,  sql);
  9.                 if (query != null && query.size() > 0) {   
  10.                         for(var iter = query.iterator(); iter.hasNext(); ) {
  11.                                 var JSONObject = createObject("com.alibaba.fastjson.JSONObject");
  12.                                 // var result = new Packages.java.util.HashMap(); //创建指定类对象
  13.                                 
  14.                                 var docs = iter.next();        
  15.                                 var bank_number = docs.getItemValueAsString("银行账号");
  16.                                 var bank_name = docs.getItemValueAsString("所属银行_名称");   
  17.                                 
  18.                                 JSONObject.put("id", docs.getId().toString());
  19.                                 JSONObject.put("bank_number", bank_number.toString());
  20.                                 JSONObject.put("bank_name", bank_name.toString());
  21.                                 DataArray.add(JSONObject);
  22.                         }
  23.                         
  24.                 }
  25.                 return DataArray;
复制代码

补充内容 (2025-7-3 14:03):
这个我找到问题了。

本帖子中包含更多资源

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

x
 楼主| 网络菜菜 发表于 2025-7-3 16:53:49 | 显示全部楼层
请问以下这图,一定要带上openapi和前端系统登陆用户名才可以获取accessToken吗?
有无一种方式,只需要openapi就可以获得accessToken

本帖子中包含更多资源

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

x
 楼主| 网络菜菜 发表于 2025-7-4 13:15:04 | 显示全部楼层
Chain 发表于 2025-6-9 17:02
可以通过API中心来把对应的数据通过接口返回,给到外部系统进行访问。

访问接口地址:http://192.168.88 ...

工程师,你好,请教一下这里URL的test我是用哪里的路径

本帖子中包含更多资源

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

x

本版积分规则

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

GMT+8, 2026-8-12 07:32

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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