Wednesday, 27 December 2017

Revised Maximo 76 Report Administration and Feature Guide | Maximo

This guide highlights on the Administration process of the Maximo BIRT reporting functionality.

It starts with an overview of the installation process, file and database structure, and then moves into reviews of scheduling, emailing and security. It concludes with detailed reviews of each of the Report Administration actions, along with property settings and cron tasks. Throughout the guide, best practice recommendations are highlighted.


http://www-01.ibm.com/support/docview.wss?uid=swg21696690

Friday, 8 December 2017

Stop Work Order Creation When The Asset is Down (Condition Monitoring) Using Automation Script | IBM Maximo

Maximo will not (automatically or manually) create work order from condition monitoring when the selected asset is down using the following automation script.

  • Launch Point: Object Lauch Point
  • Business object:  WORKORDER
  • Script Language: Python
  • Variables: 
    • asset (bind variable isrunning using relation MEASUREPOINT.ASSET.ISRUNNING)
    • point (bind variable POINTNUM)
  • Event: Save, Add, Before Save

Thursday, 30 November 2017

How to create a READ_ONLY User in Database | Oracle

1. connect with sqlplus with dba rights
sqlplus / as sysdba

2. create a simple user and give password:
create user test identified by test;
3. Give some grants to newly created user, like create session, and select
grant CREATE SESSION to test;
grant SELECT ANY TABLE to test;
:)

Wednesday, 29 November 2017

How to Find Serial Number of your Computer | Windows

run this command in your command prompt:

WMIC BIOS GET SERIALNUMBER

Generate Alert Notification on Condition Monitoring Warning Limits Using Escalations | IBM Maximo

We can generate alert notification email in IBM Maximo condition monitoring application when the measurement value of gauge meter crosses the upper or lower warning limit. The following escalation will generate the email when the measurement value for the asset meter is between upper and lower warning and action limits.



  1. OBJECT:          MEASUREMENT

Wednesday, 8 November 2017

Stop Work Order From Closing or Completing Without Entering Actual Labor (Including Task Labor Work Order Array) | IBM Maximo

We will use automation script from stopping users from closing or completing workorder without actual labor transaction which also includes task work order labor array.

  • Launch Point: Object Lauch Point
  • Business object:  WORKORDER
  • Variables: 
    • var_act_lab bind with array using relation LABTRANS.LABTRANSID*
    • var_task_lab  bind with array of task work order relation WOACTIVITY.LABTRANS.LABTRANSID*
  • Create error message in database configuration with errorgroup = 'wo' and errorkey = 'act_lab_exists'
  • Condition: :status in ('COMP', 'CLOSE')

Wednesday, 1 November 2017

Monday, 23 October 2017

Syslog Configuration in Routers | Cisco

Syslog Configuration in Packet Tracer

router >
enable
configure terminal
int fa 0/1
ip address 192.168.0.100 255.255.255.0
no shutdown
exit
logging 192.168.0.1 #ip of syslog server


now connect a Syslog server with router int fa0/1
and set ip same as mentioned in logging 192.168.0.1


:) we are done.


Port Mirroring, Switch Port Analyzer (SPAN) or Sniffing | Cisco

Port Mirroring, Switch Port Analyzer (SPAN) or Sniffing

switch>
enable
config terminal
monitor session 1 source inter fa 0/1
monitor session 1 source inter fa 0/2
monitor session 1 destination int fa 0/24
exit
show monitor

done:)

Monday, 16 October 2017

Anonymize or Replace text within a File using SED | Linux

Stream Editor aka 'sed' is a *nix utility to transform and parse text.

for example.
if a file testing.txt contains some text like ' helloworld.zip ',  it will be replace with any text or we can use $RANDOM function also.
sed s/hello.*zip/"hello://$RANDOM.zip"/g testing.txt
the final result will be like this:
hello12345.zip (any random number)
/g means all occurrence of this text


Friday, 13 October 2017

Find and Delete All Files Older than 10 Days using mtime | Linux

#to file files older than 10 days:
find /home/folder/ -mtime +10;

#now append it with -exec switch +  rm {} loop to delete all found files:
find /home/folder/ -mtime +10 -exec rm {} \;

----------------------
#and to find only in specific directory ignore sub directories

find /home/folder/ -maxdepth 1 -mtime +10

Monday, 9 October 2017

Install and Configure Target iSCSI Server on Windows Server 2012 | Windows

1. in Add new Role and Feature > Navigate to Server Roles
2. under File and Storage Services > Check iSCSI Target Server > > Install.

3. again in Server Manager, a new File and Storage Services has added,
Click on Launch the new Virtual Disk wizard to create Virtual Disk

Select iSCSI virtual disk Location: Select Drive/ or custom Path
Next
Specify iSCSI virtual disk size:  10GB
iSCSI Target. New iSCSI Target > Next
Target Name and Action : any name > Next
Access Servers (list initiators so the disk be presented to only these): ADD by IQN or IP etc
Next > Create(b).
Close(b).
-------------------------------
on Client as Initiator: 

Start iSCSI Initiator
Targets(T): Target: enter IP (ie. 10.1.1.100), Quick Connect(b)
Done(b)

now verify in Disk Management, a new disk is added with 10GB space. 

Thursday, 28 September 2017

Creating a Dialog Window | IBM Maximo

You can add a new dialog window to a specific application or you can make it
available for use by all applications. You must modify an XML file to create a
dialog window and import the modified file into the Application Designer. After
importing it, you can modify the new dialog window in the Application Designer.

Procedure:
  • In the Application Designer, export one of the following XML files:
    • In the List tab, click Export System XML in the Select Action menu to export the library.xml file if you want to add a new dialog for use by all applications.
    • In the Workspace tab, click the Export Application Definition icon to export the presentation.xml file if you want to add a new dialog for use by a specific application.
  • The XML definition opens in a new browser window.
  • Save the XML definition to a local file and open it with a text editor.

Sunday, 24 September 2017

Enforce Unique Key & Fetch Records From Unsaved MBO Using Automation Script | IBM Maximo


This automation scripts describes the enforcing of unique key to the object, Fetching and looping through unsaved rows of MBO Set from memory.
We have taken the example of restricting the users from selecting same itemnum multiple times in spare parts of asset. It works on both saved and unsaved objects.

Launch Point: Attribute Lauch Point
Business object:  SPAREPART
Attribute: ITEMNUM
Variable: ar_item bind with ITEMNUM of object SPAREPART

Increase The Workflow Map Display Size Maximo | IBM Maximo


Please follow the provided steps below:
  • Go to Directory  ...\maximo\applications\maximo\maximouiweb\webmodule\webclient\css
  • Search for the file maximo.css
  • Change the height/width in the wfmd tag which looks like this:
         /* wfmapdiv */
         .wfmd
         {
         width:800px;
         height:375px;
         border:1px solid #999999;
         overflow:auto;
         }

Friday, 22 September 2017

Increase "Systems" Window Display Size On Asset/ Location Drilldown | IBM Maximo


Some users complaint that the "Systems" window display size is very small on asset/ location drilldown as shown in the screenshot below.




Solution:
  1. Open the Application Designer and select the Export System XML action from the menu. 
  2. Click on the small arrow for the LIBRARY row to export the file. 
  3. Open the XML file with a good text editor and search for "system".

Wednesday, 20 September 2017

Synchronizing Active Workflow Processes without Creating Revision of Main Process | IBM Maximo

A workflow process can include one or more sub-processes. When you modify a sub-process, you must update the main process so that it uses the revised sub-process. This process is known as synchronization.
You must enable the sub-process revisions before you can synchronize a workflow process.
Solution:
  1. In the Workflow Designer application, Create the sub-process revision and Enable it.

Assigning Meters/ Meters Group To Multiple Existing Assets Using Asset Templates | IBM Maximo


  1. Click Go To > Assets > Asset Templates
  2. Click on ‘New Asset Template’
  3. Click on ‘Meters’ tab and enter the following.
  4. Do not enter any other detail on asset template (except template code and description).
  5. Save the record

Monday, 18 September 2017

Difference between sqlplus /nolog & Sys as sysdba


sqlplus /nolog :
you are not connecting to any user, instance or database;

sqlplus / as sysdba :
you are connected with 'SYS' through os authentication if enabled with ORACLE_SID. 

Wednesday, 9 August 2017

What is inode in Linux and IF You are Out of It (solution) | Linux

inode is basically a count of total number of files in directories of a user account in *nix systems.

similar to a unique identification of individuals in a country.

inode is data structure , it contains:
size,
user id,
group id
device id,
mode and access
protection
timestamps
links
points
etc.
except file name, and contents. 


Tuesday, 8 August 2017

How to Reset Cisco 26xx, 28xx Series Router (Password Recovery) | Cisco

Reboot your router and hold CTR+BREAK sequence to enter into Rommon mode. and enter these 2 commands

rommon 1 > confreg 0x2142
rommon 2 > reset
done :)

Now revert your router sequence back to normal:

Router>enable
Router#config terminal
Router(config)#config-register 0x2102
Router(config)#exit
done:) 

Thursday, 25 May 2017

Embed HTML in Maximo Labels | IBM Maximo

Suppose we want to color the label of prnum in PR application.

1. in application designer, open property dialog of desired control. (PR in my case)
2. copy and paste below mentioned html label field in control properties:

<font style="background-color:blue; color:white; font-weight:bold;">PR</font>

3. Save and we are done :)

Thursday, 18 May 2017

Sequence Error when Uploading Assets using MIF | IBM Maximo

for instance look at this error:
BMXAA8010E - An asset with the asset identifier 16,058 already exists. Enter a new asset identifier

Solution is very easy , just need to increment object's sequence (asset in my case)

Run these below mentioned command one by one in sqldeveloper(Oracle):

1. Increment of 10,000 in AssetIdSeq sequence:
ALTER SEQUENCE assetidseq INCREMENT BY 10000;

2. Now run this select command once to update Asset Sequence Id
SELECT assetidseq.nextval FROM DUAL;

3. in last run this command to set Asset's Sequence back to routine:
ALTER SEQUENCE assetidseq INCREMENT BY 1;

Reference: http://www-01.ibm.com/support/docview.wss?uid=swg21998810

Tuesday, 9 May 2017

Keyattribute in Custom Application for Better Search | IBM Maximo

1. Export presentation xml
2. Append keyattribute=<custom filed>
(for example, in PR application, db unique field is PRID, but for as end user we use PRNUM)

<presentation id="PRID" keyattribute="PRNUM" ismobile="false" mboname="CUSTOMPR" resultstableid="results_showlist" version="6.0.0">



Monday, 8 May 2017

Sort out of the box lookups using ORDERBY by using LOOKUP.XML - IBM Maximo

1. Open LOOKUP.XML in your favorite editor, mine is Notepad++ and find html tag looks like this:

<table id="worktype" inputmode="readonly" selectmode="single"
2. append this line and add where clause, and it will become like this:
<table id="worktype" inputmode="readonly" selectmode="single" orderby=" REPORTDATE desc">

Monday, 1 May 2017

Shortest Way to Create a Custom Lookup (MBONAME attribute in xml) | IBM Maximo

1.Insert this into looksup.xml
<table id="custum_lookup" inputmode="readonly" mboname="custom_object" selectmode="single">
<tablebody displayrowsperpage="20" filterable="true" filterexpanded="true" id="custum_lookup_lookup_tablebody">
<tablecol dataattribute="description" id="custum_lookup_lookup_tablebody_col_2" mxevent="selectrecord" mxevent_desc="Go To %1" sortable="true" type="link"/>
</tablebody>
</table>

2. Add this table id (custum_lookup) as lookup in application designer.
3. Add source and target in Edit Lookup Map.

We are done :)
-------------------------------
another example with whereclause

Wednesday, 19 April 2017

Duplicate Start Center Template | IBM Maximo

1. Create a new empty Start Center Template, Save and write down sctemplateid.

Now run these SQL queries and modify source and targetIds:

update MAXIMO.SCTEMPLATE
set presentation=(SELECT presentation FROM MAXIMO.SCTEMPLATE where      sctemplateid=<SourceID>)
where sctemplateid=<TargetID>;

update SCTEMPLATE set PRESENTATION=replace(PRESENTATION,'startcenter contentuid="<sourceID>"','startcenter contentuid="<TargetID>"'), where sctemplateid=<new SCTEMPLATEID>;

Monday, 3 April 2017

Manually Updating Database, Building and Deploying EAR WebSphere | IBM Maximo

If you really do not want to use ConfigUI.exe utility due to any reason, then below mentioned commands will help you out to manually update the Maximo database,build and deploy the EAR file.

install_home\maximo\tools\maximo\updatedb

install_home\maximo\deployment\buildmaximoear

install_home\ConfigTool\scripts\reconfigurePae.bat  -action updateApplication -deploymaximoear

We are Done :) 

if error occurs or if ConfigUI.exe get blank, use this link it may resolve your error. 
http://www-01.ibm.com/support/docview.wss?uid=swg21454722

Monday, 20 March 2017

ES6 Arrow Functions: The New Fat & Concise Syntax in JavaScript

Arrow function (fat arrow functions are new ES6 syntax for writing JS functions to save developers time ease of scope.

//param1, param2 => expression

//ES5 old school
var multiply = function (x,y){
return x*y;
};
console.log(multiply(2,3));

//ES6
var multiplynew = (x,y) => { return x*y};
console.log(multiplynew(3,4));


Saturday, 18 March 2017

Auto population of LEAD field on Work order | Maximo Functional

1. Group default flag on persongroupteam of person group on the work order.

2. if the work order is generated from PM, then PM.LEAD 

3. alternate person for each primary member in PG. 

if 

group default is not available for the 

target/schedule start time of workroder. 

then 

alternate person.


Availability is determined from the primary calendar field PERSON.PRIMARYCALNUM.

Friday, 17 March 2017

Launch in Context, Locate People with Google Map | IBM Maximo

Launch an external website or call an external API in a context. In our case, the context is an application record we are in.

it means the LIC is used to integrate with other products.
let us discuss it with an example, in People appliation, WILSON's addresses (bill to and ship to) will be displayed on google map.



org's address
ibmbrasil
ibmpakistan

1. in people, filer WILSON
set WILSON's workplace as shipto billto addresses.

2. we will use google api to show marker on map for WILSON's addresses. B for bill-to and S for ship-to
(https://developers.google.com/maps/maps-api-list)

Thursday, 16 March 2017

Child Dataset in BIRT using Scripted Data Source | IBM Maximo

developing complex reports for Maximo requires a number of data sets in Birt sometimes. And definately every second dataset is a subset/or dependent of Main dataset. therefore every child dataset takes a parameter as input from MainDataSet.

for example;
A PO data set,
and a POLINE dataset, poline dataset takes PONUM as InputParameter from PO.

1. create a Paramter in PolineDataSet "Edit DataSet"
PONUM, String, Input, NULL
2. In Layout tab, draw table, and in Table Data Binding
a Click on DataSet Parameter Binding (b)
b Click Edit (b)
c type/select row["ponum"]
3. In PoLineDataSet's Open event (4 things)
i data source provider
ii dataset open
iii set query
iv Query Parameters

3(i) SetQuery:
we need to append our where class in (iii) set query part
sqlText = "select * from PO where ponum = ?";

don't forget to comment this line in child dataset "where " + param["where"]

3(ii) Query Parameter:
name first paramater in this line
polineDataset.setQueryParamterValue(1,inputParams["ponum"]);

Friday, 10 March 2017

How do I detect whether 32-bit Java is installed on x64 Windows

java -d64 -version


If it's not a 64-bit version, you'll get a message that looks like:

This Java instance does not support a 64-bit JVM. Please install the desired version.

Monday, 13 February 2017

Inventory Issue and Return Debit/Credit Transaction | IBM Maximo

Maximo doesn't use a reverse entry approach but instead Maximo will change the SIGN(-) of LINECOST and GL accounts remains the same.

e.g.
Issuance:
GL Debit = org-222 $1,000
GL Credit = org-111 $1,000

Return:
GL Debit = org-222 $-1,000
GL Credit = org-111 $-1,000

Friday, 10 February 2017

Maximo 76 BI Documentation at Developer Works | IBM Maximo

This page lists BI (Business Intelligence) Documentation either introduced or updated for the Maximo 76 release.   Access this page for demo recordings of these features.  
*NEW* Or access or subscribe to the You Tube Channel of Maximo BI Development videos and more here!

Monday, 16 January 2017

Formula Average Cost of an Item | IBM Maximo

(Old Balance * Old Average Cost) + (Receipt Qty * Receipt Cost) /
(Old Balance + Receipt Qty)

for example:

Old Balance: 0
Old Average Cost: $1000.00
Receipt Qty(one new item purchased): 1
Receipt Cost: $4000.00

(0 x 1000) + (1 x 4000) / (0 + 1) = 4000

Saturday, 14 January 2017

Get Location data using REST API in External application | IBM Maximo

create a html file named index.html
paste this code into it.

<html>
<head>
</head>
<body>
<form action="http://maximo/maxrest/rest/mbo/locations?_lid=maxadmin&_lpwd=maxadmin" method="GET" >
GET LOCATION type location:<input type="text" name="location" value="SEG100" />
<input type="submit" value="SUBMIT" />
</form>

Post/Update Asset's Description using POST method:
<form action="http://maximo/maxrest/rest/mbo/asset/123?_lid=maxadmin&_lpwd=maxadmin" method="POST" >
POST/UPDATE ASSET<input type="text" name="description" value="new description HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap" />
<input type="submit" value="SUBMIT" />
</form>
</body>
</html>

Get Person Record using REST API | IBM Maximo

Create a file for example, index.html
paste this code into it.

<html>
<head>
</head>
<body>
<form action="http://maximo/maxrest/rest/os/MXPERSON/3?_lid=maxadmin&_lpwd=maxadmin" method="GET" >
GET person where personuid is 3:<input type="submit" value="SUBMIT" />
</br>
<form action="http://maximo/maxrest/rest/os/mxperson" method="GET" >
GET PERSON enter personid:<input type="text" name="personid" value="WILSON" />
<input type="submit" value="SUBMIT" />
</form>
</form>
</body>
</html>

How to Deploye a Web Service | IBM Maximo

first check this system properties, it should be set to 1
mxe.int.containerdeploy

Now go to integration, web servcies library application
New(b), Create Web Service, Create From Object Structure
select MXASSET > and hit Create(b) button

Open newly created MXASSET in list view
in select action menu > deploye to AS web Service Container > Generate Deployement File Entries

now copy this file fro c:\mif\jaxws\deplmodule.dar
to c:\ib\smp\maximo\deployement\ folder

redeploye EAR file (bulidmaximoear.cmd)

after if all goes good

hit this url: http://<host>:<port>/meaweb/wsdl/mxasset.wsdl

Common Question: "how do I define my locations?" | IBM Maximo

One of the most common questions that planners who are trying to implement Maximo have to ask is "how do I define my locations?".

This document helps you define your locations in Maximo. 

Defining Locations in Maximo

Configuring Multiple "Go To Application" Options with Lookup | IBM Maximo

suppose in invoice application, there is a PO field from where we can jump back to PO by clicking on "Go to >> Purhcase Order "

Today we are going to set multiple application in this "Go to" ;

A simple tip is here to do that, we just need to append the property of desired field in application designer named "Go to Application".

for example, Open Invoice application in application designer

right click to open properties of PO field
there is already entered a value (PO) in "Go to Application" property.
we just need to append another after PO like this (PO,RECEIPT)

note: don't type a space after comma;

and we are done :)

Save Record When User Moves from One Tab to Another | IBM Maximo

for example in Workorder Tracking Application, when user moves to PLAN tab, record should save.

Export presentation XML file from application designer, 
filter workorder tracking application, 
note: make a copy (backup)
open XML in notepad

find 'tab' element i.e. <tab id="plans"
add tabchangeevent="save" property in tab element

it will look after adding
<tab id="plans" label="Plans" tabchangeevent="save">

Export Flat file with Enable Event Listner MIF - IBM Maximo

1. Object Structure 
New > D-Person  Demo Person AQ_PERSON_OS
Consumed by : Integration
Support Flat structure Flag : True
Source Person
Exclude all column except , personid, firstname, lastname

2. Publish Channel
New > D-Person Demo Publish Channel Person AQ_PERSON_PC
Operation: Publish
Object Struction: D-Person AQ_PERSON_OS
Action > Enable Event Listner
Action > Message Tracking > Enable Message Tracking Flag : True > Ok(b)

Tuesday, 10 January 2017

Change Status using REST API integrated in HTML | IBM MAXIMO

REST API (Representational State Transfer) (Application Programming Interface)
it was introduced in 7501, a new protocol to integrate Maximo with external systems.
Its a part of Maximo Integration Framework (MIF) works and can be use to CRUD.
With Business objects (Mbo) and Object structures (OS)

Useful Links



For example, lets try to change the stautus of a Workorder using REST API

create a html file named index.html
paste this code into it.

Monday, 9 January 2017

Modify "Change Status" Description | IBM Maximo

1. In Domain Application, filter PR Status
2. Modify Description and hit OK
We are done :)

Maximo 7.6 Installation Procedure Step by Step | IBM Maximo

with new features Maximo 7.6 has introduced a number of technology updates, first look is and updated installer.

A document describes how to download IBM® Maximo® Asset Management 7.6 using the IBM Passport Advantage web site. https://www-304.ibm.com/support/docview.wss?uid=swg24038431

DEOCK YONG SHIN (ExInEx) has published a very detailed screen by screen installation procedure to Install Maxio 7.6 at IBM Developer Works
 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Anything%20about%20Tivoli/page/Maximo%207.6%20installation%20procedure
Another published article and very documented step by step procedure to install Maximo 7.6 by Richard Lesses 


  1. Installing Maximo 7.6: A first look, part 1
  2. Installing Maximo 7.6: A first look, part 2
  3. Installing Maximo 7.6: A first look, part 3
  4. Installing Maximo 7.6: A first look, part 4


Wednesday, 4 January 2017

Disable Emailing of Password when Updating Password | IBM Maximo

in Security > Users Application
Click Security Controls from Select Action
Select " Allow Generated Passwords to Be Displayed On Screen option"
and hit OK.

we are done :)

By disabling this option, you do not need to set up the SMTP server or provide email information for the user when creating a new user and password or updating an existing password.
Reference: http://www.ibm.com/support/knowledgecenter/SS2GNX_7.2.2/com.ibm.tivoli.tpm.scenario.doc/security_troubleshooting/trcom_disablingpsswd4update.html

Monday, 2 January 2017

Maximo 7.6 Developement Environment, EAR Deployment and Mbo Customization | IBM Maximo

Download Eclipse Kepler (64bit) from: http://www.eclipse.org/downloads/
run Eclipse.exe if java is already installed, or copy websphere/Appserver/jre c:\eclipse\ folder.
start Eclipse.exe and set java compiler settings, (Windows > Preferences > java > compiler > 1.7)

1. Create a new Java project Proj01, Finish
2. extract maximo.ear file into this workspace/Proj01/maximo folder (C:\IBM\SMP\maximo\deployment\default\maximo.ear)
3. Add JARS in Project Properties > Java Build Path > Add Jars(b)
    Add the following jars
        maximo/lib/*.jar
        maximo/businessobjects.jar
Done :)
thanks to Bruno Quick Setup Development Environment

Sunday, 1 January 2017

Create a Child Table Using Table Control | IBM Maximo

1. First drag and drop a table control in Maximo, set properties as below:


Data Source Id:            main_tasks_table
Relationship:               Master_Detail_Relation (master to detail main relationship)

2. Drag a Default value control and set properties as below:
From Data Source ID: MAINRECORD
From Attribute: ParentTableID
Attribute: ChildTableID