Posts

Showing posts from June, 2021

Rebuilding Maximo Text Indexes due to Query performance issues

Image
Sometimes it is necessary to rebuild text indexes after database move or copy from Prod to other instances. IBM does have an article for Rebuilding Oracle Text Indexes . Basically this process drops all the domain indexes and recreates them.  These are the steps are just walkthrough with the same process in detail. 1. Follow the steps in the above article to remove any DBMS jobs Remove any occurrences of DBMS_JOB Determine how many DBMS_JOBS are running by executing this from SQLPLUS logged in as the schema owner: select job, substr(what,1,80) from user_jobs; For each result where "what" contains maximo_ts_job, execute the following commands: begin dbms_job.remove(####); commit; end; / Substituting one of the job numbers from the select for the ####. 2. Change the job  Change to use DBMS_SCHEDULER Recreate the job submission procedure and run it: CREATE OR REPLACE PROCEDURE maximo_ts_job_call AS BEGIN   dbms_scheduler.create_job(   job_name => 'MAXIMOTSSYNC', ...

List of things checked by Maximo Integrity checker

Maximo Integrity checker is a pretty useful tool to identify issues in Maximo database  Below are some of the things checked by integrity checker and the sample errors returned. 1. Extra tables in database which are not part of Maximo BMXAA0442W -- Warning - BMXAA0475W -- The following tables should be removed from the database because they do not exist in the schema: Sun May 30 12:08:47 GST 2021    APPLICATIONAUTH_BKP    DOCLINKS_POBKP    ABC_MIGR_TEST 2. Missing Indexes BMXAA0443E -- Error - BMXAA0465E -- The following indexes are missing from the database. Use the Database Configuration application to remove the index definition. 3. Missing user groups, invalid users etc BMXAA0455E -- The following users should be removed because they are not authorized. To correct this error, run the Integrity Checker in repair mode. BMXAA0458E -- The following user groups were not found in the MAXGROUPS table. Run the Integrity Checker in repair mode. 4. Invalid M...

Automation script to implement Yes/No confirmation messages in Maximo

Below script can be used to implement Yes/No prompt message taken from IBM documentation . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # Business logic implementation if user selects Yes choice (clicks Yes button) def yes (): service . log( "Sending Email" ) # Business logic implementation if user selects No choice (clicks No button) def no (): service . log( "Not Sending Email" ) # Business logic to present the choice message initially def dflt (): params = [ str (priority)] service . log( "Throw ERROR" ) # Use the service utility's yncerror() method to push the choice message # The below key and group combination should be added in Database configuration -> Messages service . yncerror( "asset" , "assetpriorityemail" ,params); service . log ( '$$SAM$ - entering ASSETPRIORITYVAL' ) # Declare the user input choices and the corresponding functions impleme...

Maximo Spatial Update field with current displaying error

Image
While creating a work order using the pop up map to select asset it is usually possible to select the asset directly from map and update the field using the selected Asset on the Map using the Update field with current Option from the Results dialog box. Unfortunately we were getting below error as popup as well as in the error logs. Application/exception loggers need to be in debug mode for it to appear in logs. 1.   [DEBUG] [MXServer] [] Generated exception psdi.util.MXApplicationException: BMXAA0090E - Asset ACE is not a valid asset, or its status is not an operating status. Instead of trying to set the asset num of the selected Asset it was trying to set the Site ID of the asset on the map the the se lected field. For example in the below error ACE would be the Site ID. After digging deeper it turned out that Maximo was trying to set the 2nd attribute of the  PRIMARYKEYCOLSEQ on the Asset Object. Source of the issue seemed to originate from below OOB file Line:2019 - ps...

Config DB error during Alter column, modifying Maximo Attribute

Config DB can sometimes fail while altering columns if the attributes names are oracle keywords. Usually its a good idea to make sure attribute names and objects in Maximo are not same as one of oracle keywords. Recently we faced an error while using a scope as an attribute name. We were trying to modify size. Error starting at line 34 in command: ALTER TABLE INSPECTPROCESS MODIFY SCOPE VARCHAR2 (100) Error report: SQL Error: ORA-00904: : invalid identifier 00904. 00000 -  "%s: invalid identifier" *Cause:     *Action: As SCOPE is an oracle keyword with special meaning, the alter statement was failing. To fix it we had to run the below statement manually instead. Note the extra set of brackets. ALTER TABLE INSPECTPROCESS MODIFY ( SCOPE VARCHAR2(100BYTE) ) ;