Maximo 在 Automation Script 中访问数据库
在 Automation Script 中我们通常使用 mbo 对象来操作数据,但有时候当数据量较大时,使用 mbo 对象来操作数据会比较慢。这时候,我们可以使用 JDBC 的方式来直接访问数据库,从而提高操作数据的效率。
下面看看使用 JavaScript 脚本怎么实现在 Automation Script 中访问数据库:
- 首先需要倒入必要的包
load('nashorn:mozilla_compat.js');
importPackage(Packages.psdi.server);
importPackage(Packages.psdi.security);
importPackage(Packages.psdi.security);
importPackage(Packages.java.sql);
- 获取 Connection 实例
var mxServer = MXServer.getMXServer();
var connKey = mxServer.getSystemUserInfo().getConnectionKey();
var conn = mxServer.getDBManager().getConnection(connKey);
- 执行 SQL 语句并处理结果
var wos = [];var stmt = conn.createStatement();
var rs = stmt.executeQuery("select * from workorder order by WORKORDERID");
var i = 0;
while(rs.next()) {var wo = {};if (i < (pageNum - 1) * pageSize) {continue;}if (i >= pageNum * pageSize) {break;}i++;wo.wonum = rs.getString("WONUM");wo.workorderid = rs.getString("WORKORDERID");wo.description = rs.getString("DESCRIPTION");wos.push(wo);
}rs.close()
stmt.close()
conn.close()
- 以 json 格式返回
var responseBody = JSON.stringify(wos);
完整代码
下面看一下完整的 Automation Script 代码:
load('nashorn:mozilla_compat.js');
importPackage(Packages.psdi.server);
importPackage(Packages.psdi.security);
importPackage(Packages.psdi.security);
importPackage(Packages.java.sql);var pageNum = request.getQueryParam("pageNum");
var pageSize = request.getQueryParam("pageSize");var mxServer = MXServer.getMXServer();
var connKey = mxServer.getSystemUserInfo().getConnectionKey();
var conn = mxServer.getDBManager().getConnection(connKey);var wos = [];var stmt = conn.createStatement();
var rs = stmt.executeQuery("select * from workorder order by WORKORDERID");
var i = 0;
while(rs.next()) {var wo = {};if (i < (pageNum - 1) * pageSize) {continue;}if (i >= pageNum * pageSize) {break;}i++;wo.wonum = rs.getString("WONUM");wo.workorderid = rs.getString("WORKORDERID");wo.description = rs.getString("DESCRIPTION");wos.push(wo);
}rs.close()
stmt.close()
conn.close()var responseBody = JSON.stringify(wos);
测试
使用 vscode 的 REST Client 插件来测试这个 Automation Script
###
# call automation script
GET {{base_url}}/api/script/<automation script>?apikey={{api_key}}&lean=1&pageNum=1&pageSize=10
Content-Type: application/json
返回结果类似如下:
[{"wonum": "1638","workorderid": "1","description": "Check Leaking Condensate Return Pump"},...
]
相关文章:
Maximo 在 Automation Script 中访问数据库
在 Automation Script 中我们通常使用 mbo 对象来操作数据,但有时候当数据量较大时,使用 mbo 对象来操作数据会比较慢。这时候,我们可以使用 JDBC 的方式来直接访问数据库,从而提高操作数据的效率。 下面看看使用 JavaScript 脚本…...
gitee 简易使用 上传文件
Wiki - Gitee.com 官方教程 1.gitee 注册帐号 (直接选择初始化选项即可,无需下载git) 2.下载git 安装 http://git-scm.com/downloads 3. 桌面 鼠标右键 或是开始菜单 open git bash here 输入(复制 ,粘贴) 运行…...
iOS Xcode 升级Xcode15报错: SDK does not contain ‘libarclite
一 iOS Xcode 升级Xcode15报错: SDK does not contain libarclite 1.1 报错信息 SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib/arc/libarclite_iphonesimulator.a; try increasin…...
即插即用篇 | YOLOv8引入轴向注意力 Axial Attention | 多维变换器中的轴向注意力
本改进已集成到 YOLOv8-Magic 框架。 我们提出了Axial Transformers,这是一个基于自注意力的自回归模型,用于图像和其他组织为高维张量的数据。现有的自回归模型要么因高维数据的计算资源需求过大而受到限制,要么为了减少资源需求而在分布表达性或实现的便捷性上做出妥协。相…...
【芯片制造】【常用术语】CP、FT、WAT
背景: 在我们讲wafer加工好以后,需要进行相关测试,在此阶段,有很多提及到的常用术语,我们依次进行解释。主要单词含义: CP : Chip Probing(probe card),wafer…...
计算机vcruntime140.dll找不到如何修复,分享5种靠谱的修复教程
当您在运行某个应用程序或游戏时遇到提示“找不到vcruntime140.dll”,这通常意味着系统中缺少了Visual C Redistributable for Visual Studio 2015或更高版本的一个重要组件。这个错误通常发生在运行某些程序时,系统无法找到所需的动态链接库文件。小编将…...
超级简单的地图操作工具开发可疑应急,地图画点,画线,画区域,获取地图经纬度等
使用echars的地图画点,画线,画区域,获取地图经纬度等 解压密码:10086007 地图也是用临时的bmap.js和china.js纯离线二选一 一共就这么多文件 画点,画线,画区域 点击地图获取经纬度-打印到控制台,这样就能渲染航迹,多变形,结合其他算法算圆等等操作 下载资源:https://download…...
25_NumPy数组np.round将ndarray舍入为偶数
25_NumPy数组np.round将ndarray舍入为偶数 使用 np.round() 将 NumPy 数组 ndarray 的元素值舍入为任意位数。请注意,0.5 由于舍入到偶数而不是一般舍入而舍入为 0.0。 本文介绍了一般舍入的实现示例。 如何使用 np.round() 基本用法指定要舍入的位数:…...
Java字符串去除空格的方法
前言 在Java编程实践中,处理字符串中的空格是一项基本且频繁的操作。本文将深入探讨如何使用Java原生方法以及Apache Commons Lang库中的StringUtils类,全方位解决字符串去空格的需求,让你的代码更加健壮和高效。 1. Java原生方法 a. trim…...
【Python】【应用】Python应用之如何操作WiFi之一——使用pywifi
🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:Python应用&…...
2024OD机试卷-分割均衡字符串 (java\python\c++)
题目:分割均衡字符串 题目描述 均衡串定义: 字符串 中只包含两种字符,且这两种字符的个数相同。 给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。 约定:字符串中只包含大写的 X 和 Y 两种字符。 输入描述 字符串的长度:[2, 10000]。 给定的字符串均为均…...
完整版解答!2024年数维杯数学建模挑战赛B题
B题 生物质和煤共热解问题的研究 技术文档第一问1.1问题一分析1.2数据预处理1.3问题一Spearman相关性分析 数据代码资料获取 技术文档 第一问 1.1问题一分析 对于问题一,题目要求分析出正己烷不溶物对焦油产率、水产率、焦渣产率这三个指标是否有显著影响&#x…...
Android开发,日志级别
5个日志级别 Verbose (VERBOSE): 这是最低的日志级别,用于输出最为详尽的信息,包括开发和调试过程中的各种细节。在Log类中对应的方法是Log.v()。Debug (DEBUG): 此级别用于输出调试信息,帮助开发者理解程序运行流程或状态。通过Log.d()方法…...
Docker 部署 MySQL 数据库
文章目录 MySQL 镜像创建缩主机目录my.cnf 配置文件docker-compose.yml给 Test 账号添加权限 Docker 与 docker-compose 安装这里不做介绍。 MySQL 镜像 根据需要选择版本 # 5.7 版本 docker pull mysql:5.7 # 8.2 版本 docker pull mysql:8.2创建缩主机目录 cd home # 创建…...
代码技巧: 类中同一个函数可以同时存在常函数版本和普通函数版本(c++)
在类中如果我们希望在常函数中修改某属性的值可以使用mutable来实现。 如果有下面的场景,假设我们有一个函数hobby()需要在非const的对象调用的时候,应该去修改内部的属性,在const修饰的对象调用的时候可以满足不修改内部的属性。 鉴于上面的…...
2024OD机试卷-转盘寿司 (java\python\c++)
题目:转盘寿司 题目描述 寿司店周年庆,正在举办 优惠活动 回馈新老客户。 寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格, 如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足…...
MongoDB创建或删除用户并验证数据库权限
本文假设在Ubuntu中安装了MongoDB,并用命令行工具mongosh演示。 一、创建用户并设置数据库权限 用户和数据库是关联的,要在登录时验证某个数据库,需要在相应的数据库内创建用户,即先切换到该数据库再创建用户。除非是root最高权…...
半小时搞懂STM32面经知识——RCC
1. 时钟的概念 时钟是由电路产生的具有周期性的脉冲信号,相当于单片机的心脏,要想使用单片机的外设必须开启时钟。 时钟对单片机有什么作用? 1. 驱动外设的本质是寄存器,而寄存器需要时钟触发才能改写值。 2. 时钟频率越高&#…...
汇聚荣科技:拼多多开店没有流量应该怎么办?
拼多多开店没有流量是一个常见的问题,许多新手商家都会遇到这样的困境。那么,如何解决这个问题呢?下面从四个方面进行详细阐述。 一、优化店铺和商品 首先,要确保店铺和商品的质量。店铺要有自己独特的风格和特色,商品要有高质量…...
uni-app(三):离线打包与插件引用(Android)
离线打包与插件引用 1.下载Android离线SDK2.使用Android Studio打开离线打包项目并更新Gradle3.解决报错4.构建5.配置AppKeya.查看证书b.申请AppKeyc.配置AppKey 6.生成本地打包App资源7.拷贝App资源到Android项目中8.修改 appid9.修改Android项目配置文件10.下载证书并配置11.…...
保姆级教程:在PHPStudy环境下复现CTFHub MySQL注入题(附WAF绕过Payload分析)
从零构建MySQL注入实验环境:PHPStudy靶场搭建与Quine攻击实战 第一次接触SQL注入时,我盯着屏幕上那个看似简单的登录框,完全无法理解黑客是如何通过几个特殊字符就能突破系统防线的。直到亲手搭建环境、逐行调试代码后,才真正明白…...
万象熔炉 | Anything XL详细步骤:错误提示‘low VRAM’的5种应对策略
万象熔炉 | Anything XL详细步骤:错误提示‘low VRAM’的5种应对策略 1. 工具简介与显存挑战 万象熔炉 | Anything XL是一款基于Stable Diffusion XL Pipeline开发的本地图像生成工具,它最大的特点是支持直接加载safetensors单文件权重,无需…...
NanoHttpd POST 请求中文乱码问题解决方案
解决方案 推荐做法:服务器端修正 在请求处理的 serve() 方法中,在调用 parseBody() 之前,显式确保 Content-Type 包含 charsetUTF-8: Override public Response serve(IHTTPSession session) {Map<String, String> files n…...
gitmaven命令
git命令git diff #查看差异git push origin feature/recover_pwd_bug #推送 git commit -m ‘perf #重置密码逻辑优化git log #查看提交版本号 git reset --hard <版本号> #本地回退到相应的版本 git push origin <分支名> --force #远端的仓库也回退到相应的版本…...
AnimateDiff写实视频生成教程:基于SD1.5+Motion Adapter的全流程实操
AnimateDiff写实视频生成教程:基于SD1.5Motion Adapter的全流程实操 想用AI把文字变成生动的视频?AnimateDiff让你用几句话就能生成专业级的写实视频,无需任何绘画基础,8G显存就能流畅运行。 1. 项目简介:文字直接变视…...
【网络安全干货】黑客内网渗透零基础入门,超详细基础知识手把手教学
0x01 内网概述 内网也指局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的历程安排、电子邮件和传真通信服务等功能。 内…...
JDK-02 | 我为什么越来越喜欢用 Java 的 Text Blocks
这是专栏第 2 篇。 如果第一篇 record 是在“模型表达”上让我轻松,Text Blocks 则是在“日常编码和代码审查”上让我明显省力。 我先给结论:Text Blocks 不只是少写几个 +,它真正解决的是多行文本在代码中的可读性、可评审性和可回归性。 一、我为什么会认真用这个特性 …...
健康赛道又一个爆款玩法:华一拼团+公排返利,到底怎么做?
大家好,我一家电商软件开发公司的负责人。现在健康赛道那可真是遍地黄金,躺赚的机会说来就来啦!你是不是一直苦于找不到能落地、还能高盈利的模式系统?今天我就给大家分享2026爆火的模式——华一健康模式系统,它直接照…...
深度学习模型的解释性与可解释AI:从原理到实践
深度学习模型的解释性与可解释AI:从原理到实践 1. 背景介绍 深度学习模型在各种任务中取得了优异的性能,但它们通常被视为"黑盒",缺乏可解释性。随着AI应用在关键领域的普及,模型的可解释性变得越来越重要。本文将深入…...
直流电机与步进电机工作原理及应用解析
1. 电机基础概念与分类电机作为将电能转换为机械能的装置,在现代工业和生活中有广泛应用。从家用电器到工业设备,电机无处不在。理解电机的工作原理,对于从事相关领域的技术人员至关重要。电机按电源类型可分为直流电机(DC电机&am…...
