Monday, 15 June 2015

Error: The mbo value info for atttribute AUTHALLGLS for object grpreassignauth could not be retrieved

One of my friend faced this issue. This error is little bit tricky, because there is no attribute called "AUTHALLGLS" exist in GRPREASSIGNAUTH table. But still maximo throws this error. And also error logs will not provide any detailed information. This error can find in system out log as a warning.

This error can occur while creating new security group or assigning security group to user.

Cause: Few security groups has granted access to create users.

Solution: Except for MAXADMIN security group, need to remove granted access to create users for other security groups.

I am providing this in my blog, just in case, if anyone faces this issue and not to waste their time to solve it.

 

Tuesday, 9 June 2015

Continous queue stopped processing records into queue.

While importing records into Maximo using continuous queue, after certain amount of errors (in my case, after every 10 errors) in message reprocessing application, continuous queue stopped working.

To solve this issue, I followed below steps:

1. Enable MDB bean for cqin err:

Take a backup of "ejb-jar.xml" from "<Drive>:\IBM\SMP\maximo\applications\maximo\mboejb\ejbmodule\META-INF"
Open the file from "ejb-jar.xml" in notepad++, search for "MEA MDB for error queue". Uncomment it.

BEFORE CHANGE:

<!-- MEA MDB for error queue
    <container-transaction>
     <method>
        <ejb-name>JMSContQueueProcessor-2</ejb-name>
        <method-name>*</method-name>
     </method>
   
     <trans-attribute>Required</trans-attribute>
   
    </container-transaction>
-->

AFTER CHANGE:

<!-- MEA MDB for error queue-->
    <container-transaction>
     <method>
        <ejb-name>JMSContQueueProcessor-2</ejb-name>
        <method-name>*</method-name>
     </method>
   
     <trans-attribute>Required</trans-attribute>
   
    </container-transaction>

Take a backup of "ibm-ejb-jar-bnd.xmi" from "<Drive>:\IBM\SMP\maximo\applications\maximo\mboejb\ejbmodule\META-INF"
Open the file from "ibm-ejb-jar-bnd.xmi" in notepad++, search for "MEA MDB for error queue". Uncomment it.

BEFORE CHANGE:
<!-- MEA MDB for error queue
  <ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding" xmi:id="MessageDrivenBeanBinding_1" activationSpecJndiName="intjmsacterr">
    <enterpriseBean xmi:type="ejb:MessageDriven" href="META-INF/ejb-jar.xml#MessageDriven_JMSContQueueProcessor_2"/>
  </ejbBindings>
-->
AFTER CHANGE:
<!-- MEA MDB for error queue-->
  <ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding" xmi:id="MessageDrivenBeanBinding_1" activationSpecJndiName="intjmsacterr">
    <enterpriseBean xmi:type="ejb:MessageDriven" href="META-INF/ejb-jar.xml#MessageDriven_JMSContQueueProcessor_2"/>
  </ejbBindings>

Rebuild and Redeploy maximo.

2. Login into Maximo:

Go to --> System Configuration--> Platform Configuration --> Select "Crontask setup" --> Search for "JMSQSEQCONSUMER" and open it.

Create a crontask instance of "CQINERR", Schedule "30s,*,*,*,*,*,*,*,*,*", Runas user "MAXADMIN".
 In parameters, Enter below values:
MESSAGEPROCESSOR = psdi.iface.jms.QueueToMaximoProcessor
QUEUENAME = psdi.iface.jms.QueueToMaximoProcessor
ERRORQUEUE = 0
TARGETENABLED = 0

Activate the instance and save the crontask.

3. Change destination of errors in websphere:
Login into websphere.
In Left panel --> Expand "Service Integration" --> Click on "Buses" --> Right panel click on "intjmsbus"-->Under "Destination Resources" click on "Destinations" -->Click on CQINBD -->Under "Exception Destination" select "Specify"--> Enter the value CQINERRBD --> Click "Apply" --> Save it into master --> Click ok --> Save it into Master.
Note: No need to restart server.

Testing:

Import 100 error records into any application and search in message processing that all 100 records exists in it. Earlier it was only 10 error records in my case, now it shows all 100 records.
In websphere, you can notice that all error records are moved into cqinerrbd destination.

I hope this article may help to some one who are new to maximo websphere process. As I suggest always, first try in development environments and also above mentioned parameters may differ based on environments.




 

BMXAA0667E - The value of the changed attribute could not be assigned.

Error: BMXAA0667E - The value of the changed attribute could not be assigned.


 I faced this error, when trying to update length of one field in INVENTORY table. The field which I am trying to update length is a same as object and same as attribute in INVVENDOR table. So I started investigating INVVENDOR table, then I found below cause.

In my environment, problem is, INVVENDOR has a audit table A_INVVENDOR, but audit enabled is unchecked.
While investigating, found that, audit table A_INVVENDOR details available in MAXATTRIBUTECFG and MAXATTRIBUTE tables, but A_INVVENDOR table itself not exist.

Note: Before doing below changes, make sure you have backup of database. And better try in your development environment first.

Steps:

1. In database configuration, INVVENDOR table, make sure audit is disabled and audit table field is blank. In my case, audit enabled is false, but audit table field has value A_INVVENDOR. To remove, audit table field (it is read only), first check the check box of audit enabled, it makes audit table field editable. Now remove value of audit table field and uncheck audit enabled field. Save the record.

2. Apply configuration changes. It will remove A_INVVENDOR meta data available in MAXATTRIBUTECFG and MAXATTRIBUTE tables.

3. Now, change the length of the required field in INVENTORY table and save the record. Error will not occur.

 

Tuesday, 2 June 2015

Maximo attachments - doclinks

Step 1:
Create folder doclinks in your drive. And also create subfolders under doclinks --> "attachments", "images" and "diagrams".
Names of the folders are case sensitive.

Step 2:

1. Take a backup fo httpd.conf file from path <drive>\IBM\HTTPServer\conf
2. Open httpd.conf file from path <drive>\IBM\HTTPServer\conf
3. Find ‘DocumentRoot’ and change DocumentRoot "D:\doclinks"
4. Save and close the file.


Step 3:
Go to System properties application:
1. mxe.doclink.doctypes.defpath = D:\doclinks
2. mxe.doclink.path01 = D<PATH>\doclinks = http://<servername or IP>
3. mxe.doclink.doctypes.topLevelPaths = D:\doclinks
4. Rebuild and restart the server.


Step 4:
Login into Maximo.
Go to any application --> From select action menu click on "Manage folders"
Attachments = D:\doclinks\attachments
Images = D:\doclinks\images
Diagrams = D:\doclinks\diagrams



Step 5: Testing
Go to PR application --> Click new row and attach a document
Save it. Then click view attachments and click on the attached file. File will be opened.

Hope this topic will be helpful!! :)

Tuesday, 26 May 2015

Automation Script - get current date and time.

In automation script, there is no implicit variable available to get current date and time. I followed below procedure, to get current date and time to set date time field.

from java.util import Calendar

#Create a instance for Calendar
cal = Calendar.setInstance();

#Get Current date and time by using cal.getTime()
currentDateTime = cal.getTime();

#AS I AM APPLYING THIS SCRIPT TO WORKTYPE OF WORKORDER, ALREADY DECLARED VARIABLES FOR WORKTYPE as worktype AND TARGSTARTDATE as tsd

if worktype="CM":
 tsd = currentDateTime


Hope it helps to someone who are new to set date time in automation script.

 

Friday, 22 May 2015

Route stops data loading

While loading route stops, make sure below fields are exist in your file:

ASSETLOCORGID
ASSETLOCSITEID
ROUTESTOPID (This field is to provide sequence number of route stop for a respective route)

If those fields are not exist and trying to load route stops with locations, error will appear "XXXXX is not a valid location".

ROUTESTOPID will help to avoid routestop duplicates.
For example:
ROUTE,ASSETNUM,LOCATION,JPNUM,STOPSEQUENCE,SITEID,ROUTESTOPID
1001,,LOC1,,10,SITE1,1
1001,,LOC2,,20,SITE1,2
1002,LOC21,,10,SITE1,1
1002,LOC22,,10,SITE1,2
1002,LOC23,,10,SITE1,3
1002,LOC24,,10,SITE1,4

if you don't provide ROUTESTOPID, when doing routes data loading second time, it will add duplicate records.
Below format will create duplicate records in route stops:
ROUTE,ASSETNUM,LOCATION,JPNUM,STOPSEQUENCE,SITEID
1001,,LOC1,,10,SITE1
1001,,LOC2,,20,SITE1
1002,LOC21,,10,SITE1
1002,LOC22,,10,SITE1
1002,LOC23,,10,SITE1
1002,LOC24,,10,SITE1 

PM Records data loading

While data loading PM records, make sure USEFREQUENCY = 1 for frequency based PMs.

Otherwise, problem is, even though you saved the record, it will ask again to save the pm record. PM Work orders will not generate.

Maximo SOAPUI error javax.xml.ws.WebServiceException

SOAPUI error while sending payload to below url (in cluster environment) http://localhost:9080/meaweb/services/MXASSET Error : <f...