Maximo Application Suite

MAS – Techno‑Functional

Search This Blog

Thursday, May 11, 2023

MAXIMO BASICS: Broken Sequence BMXAA8010E - Record Already exists erros

Problem :
    When attempting to add a new Asset into Maximo using the Assets application, the following message  
    is displayed when you click Save Record. 

    BMXAA8010E - An asset with the asset identifier 16,058 already exists. Enter a new asset identifier.

Cause :
    This error can occur after a data load or Migration . 

Resolving The Problem:

  To fix tis error we have two possible solutions: 

     1) Run the script: 
            update maxsequence set maxvalue = ( select max(ASSETID) + 1 from asset)  where                                name = 'ASSETID'; 
 or 2) Run this script: 
            ALTER SEQUENCE assetidseq INCREMENT BY 5000; 
            select assetidseq.nextval from dual; 
            ALTER SEQUENCE assetidseq INCREMENT BY 1; 

Because the example above could have been caused by data load in Maximo, the scripts should help to fix the problem, however Support does not engage on fixing data issues in Maximo environments, so the information above is a reference that should help. 

Sunday, April 16, 2023

MAXIMO : DBC-Scripts for Quick and Easy Migration

Are you looking for a way to migrate changes in Maximo? 

Look no further than DBC script! 

This expert guide explains how it works and offers tips for optimal effectiveness. 

MAXIMO : Automation Scripts Quick Overview

 Maximo Automation

Script

Automation scripts are a powerful Maximo feature that allows you to

automate your business processes. They enable you to create a

custom application and process the data with just a few clicks.



Kindly refer attach PDF for overview

Click here to download PDF here

Monday, February 13, 2023

MAXIMO : Run SQL statements from Automation Scripts

This article details  Maximo automation script  needing to execute plain SQL statements instead of Maximo Mbo and MboSet related methods.


Broadly there are two way's to handle SQL statement exeuction , first is you can simply follow standard java.sql package and use respective connection and allied objects and the next which is recommended one is to use maximo DBShortcut class from framework which supports connection pool optimized way in terms of performance/resource usage and clean up aspects.

Below are sample code snippet which can show how to use these two approaches

1. JDBC Connection:

  from psdi.security import UserInfo

from psdi.server import MXServer
 
vsql = "update workorder set priority='1'
         where wonum=1002"
 mxserver = MXServer.getMXServer()
conKey = mxserver.getSystemUserInfo().getConnectionKey()
cnx = mxserver.getDBManager().getConnection(conKey)
stmt = cnx.createStatement()
stmt.executeUpdate(vsql)
 
stmt.close()
cnx.commit()
mxserver.getDBManager().freeConnection(conKey)

2. DBShortcut Class:

  from psdi.mbo import DBShortcut, SqlFormat

from psdi.server import MXServer
 
vsql = "update workorder set priority='1' where wonum=1002"
 
mxserver = MXServer.getMXServer()
conKey = mxserver.getSystemUserInfo().getConnectionKey()
dbs = DBShortcut()
dbs.connect(conKey)
 
sqf = SqlFormat(vsql)
dbs.execute(1, sqf)
dbs.commit()
dbs.close()

MAXIMO - DBC Script Guide

 Here I am sharing IBM guide for DBC.

This will be helpful DevOps automation towards most of maximo configuration migrations put under typical pipeline tools like Jenkins.


DBC XML Format.pdf