<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>MaximoDev Blog</title>
    <link>https://bportaluri.click/</link>
    <description>Recent content on MaximoDev Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 07 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bportaluri.click/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Load failure codes in Maximo with MxLoader</title>
      <link>https://bportaluri.click/post/2026/04/load-failure-codes-in-maximo-with-mxloader/</link>
      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/04/load-failure-codes-in-maximo-with-mxloader/</guid>
      <description>&lt;p&gt;MxLoader 6.2 was the last version with a &lt;a href=&#34;https://bportaluri.com/2017/03/load-failure-codes-in-maximo.html&#34;&gt;built-in support for failure codes data loading&lt;/a&gt;. Unfortunately this version does not support REST APIs. This post describes how to load failure codes using MxLoader 8.5 with the latest versions of Maximo (including MAS Manage) that only support REST protocol.&lt;/p&gt;&#xA;&lt;p&gt;I will use the following small failure class hierarchy C1 as an example.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CL1 - Failure Class 1&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;P1 - Problem 1&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;C1 - Cause 1&#xA;&lt;ul&gt;&#xA;&lt;li&gt;R1 - Remedy 1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;P2 - Problem 2&lt;/p&gt;</description>
    </item>
    <item>
      <title>Force table refresh from automation script</title>
      <link>https://bportaluri.click/post/2026/03/force-table-refresh-from-automation-script/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/03/force-table-refresh-from-automation-script/</guid>
      <description>&lt;p&gt;The most common technique to force a reload of an MboSet (and thus refresh a table on the UI) is to call the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/mbo/MboSet.html#reset--&#34;&gt;&lt;strong&gt;&lt;em&gt;MboSet().reset()&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; method.&lt;/p&gt;&#xA;&lt;p&gt;context = UIContext.getCurrentContext()&lt;br&gt;&#xA;wcs = context.getWebClientSession()&lt;br&gt;&#xA;wcs.getDataBean(&amp;ldquo;assetmove_t&amp;rdquo;).refreshTable()&lt;/p&gt;&#xA;&lt;p&gt;In some cases you don&amp;rsquo;t need to reload the MboSet or you just cannot do it because you haven&amp;rsquo;t yet saved the MboSet. In such cases you have to work at UI level using the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/webclient/system/beans/DataBean.html#refreshTable--&#34;&gt;DataBean.refreshTable()&lt;/a&gt; method. This will force a reload of the data in the UI from the underlying MboSet in memory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Conditional expression variables</title>
      <link>https://bportaluri.click/post/2026/03/conditional-expression-variables/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/03/conditional-expression-variables/</guid>
      <description>&lt;p&gt;Maximo conditional expressions use an SQL-like syntax allowing to replace the value of a specific attribute using the &amp;ldquo;:&amp;rdquo; notation.&lt;/p&gt;&#xA;&lt;p&gt;For example, you can have an expression like this:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;exists (select 1 from workorder where wonum=:wonum)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;At run time, the second wonum is replaced with the value of the wonum attribute for the current record.&lt;/p&gt;&#xA;&lt;p&gt;The value of an attribute of a related object can also be referenced using the following natation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM Maximo 7.5 manuals in PDF format</title>
      <link>https://bportaluri.click/post/2026/02/ibm-maximo-7-5-manuals-in-pdf-format/</link>
      <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/02/ibm-maximo-7-5-manuals-in-pdf-format/</guid>
      <description>&lt;p&gt;We all know that Maximo has moved to OpenShift platform and is evolving to a more web-based documentation system but sometimes I feel a little bit old and I prefer to study in the &amp;ldquo;old way&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;In this page I&amp;rsquo;m sharing to old IBM Maximo 7.5 documentation in PDF format. I know it&amp;rsquo;s quite old but 99% of the information is still valid in MAS Manage application.&lt;/p&gt;&#xA;&lt;p&gt;Installation&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.click/wp-content/downloads/docs/pdf_mam_install_was.pdf&#34;&gt;Installation Guide (IBM WebSphere)&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Save disk space in doclinks folder resizing images</title>
      <link>https://bportaluri.click/post/2026/02/save-disk-space-in-doclinks-folder-resizing-images/</link>
      <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/02/save-disk-space-in-doclinks-folder-resizing-images/</guid>
      <description>&lt;p&gt;If you are collecting a lot of photos with service requests or workorder you may start wasting a lot of disk space in the DOCLINCS folder.&lt;/p&gt;&#xA;&lt;p&gt;Here is a small script I have developed for one of our clients to resize JPEG files in the doclinks folder using &lt;strong&gt;&lt;em&gt;&lt;a href=&#34;https://imagemagick.org/&#34;&gt;ImageMagick&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; open-source software.&lt;/p&gt;&#xA;&lt;p&gt;Download the application from the &lt;a href=&#34;https://imagemagick.org/script/download.php&#34;&gt;ImageMagick website&lt;/a&gt;. I have downloaded the Windows x64 portable version &lt;em&gt;&lt;a href=&#34;https://imagemagick.org/archive/binaries/ImageMagick-7.1.2-15-portable-Q16-x64.7z&#34;&gt;ImageMagick-7.1.2-15-portable-Q16-x64.7z&lt;/a&gt;&lt;/em&gt; file. Extract the archive on one of the application servers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MIF vs OSLC vs REST vs JSON APIs</title>
      <link>https://bportaluri.click/post/2026/02/mif-oslc-rest-json-api/</link>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/02/mif-oslc-rest-json-api/</guid>
      <description>&lt;p&gt;&lt;em&gt;I&amp;rsquo;m copying here a very insightful explanation by &lt;a href=&#34;https://www.linkedin.com/in/stevenshull/&#34;&gt;Steven Shull&lt;/a&gt; on &lt;a href=&#34;https://moremaximo.com/discussion/mas-9-rest-integration-architecture-mif-vs-oslc-vs-rest-api-best-practice&#34;&gt;MoreMaximo forum&lt;/a&gt; about of the different types of REST APIs available in Maximo. It is (as always) really well written and worth posting here as well.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MIF&lt;/strong&gt; is the abbreviation for the &lt;strong&gt;Maximo Integration Framework&lt;/strong&gt;. All the integration possibilities (flat file, table, SOAP, REST, etc.) and the components (external systems, enterprise services, publish channels, etc.) fall under this umbrella.&lt;/p&gt;&#xA;&lt;p&gt;If you have existing integrations, you may need to make some minor adjustments like switching to API key for authentication instead of basic authentication for SOAP/REST. And you should test for behavioral changes between the versions. But most of your existing integrations should continue to work as written and I wouldn&amp;rsquo;t recommend changing without additional reasons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Query Manager application</title>
      <link>https://bportaluri.click/post/2026/02/maximo-query-manager-application/</link>
      <pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/02/maximo-query-manager-application/</guid>
      <description>&lt;p&gt;Maximo allows to create predefined queries in applications that can be used to filter records based on specific criteria and reuse them in Start Centers. However, there are some limitations in the capability and manageability of these queries. In this post I will describe how to create a Query Manager application to centrally manage application queries.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image-1024x478.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;h3 id=&#34;application&#34;&gt;Application&lt;/h3&gt;&#xA;&lt;p&gt;Open Application Designer application and create the following app:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Application: CX_QUERY&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Description: Query Manager&lt;/p&gt;</description>
    </item>
    <item>
      <title>Binary and text files handling in MxLoader 8.5</title>
      <link>https://bportaluri.click/post/2026/01/binary-and-text-files-handling-in-mxloader-8-5/</link>
      <pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2026/01/binary-and-text-files-handling-in-mxloader-8-5/</guid>
      <description>&lt;p&gt;MxLoader 8.5 has some improvements regarding the capability to upload and download files from Maximo. REST and OS services behavior is now aligned and upload/download is fully supported.&lt;/p&gt;&#xA;&lt;p&gt;MxLoader provides two special tags to manage files:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;FileTxt&lt;/strong&gt; - to be used to upload/download text content (long descriptions, automation scripts, report design, etc.)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;FileEnc&lt;/strong&gt; - to be used to upload/download text content (item image, attachments/doclinks)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;downloading-files&#34;&gt;Downloading files&lt;/h3&gt;&#xA;&lt;p&gt;To download files you must specify the &lt;em&gt;FileTxt/FileEnc&lt;/em&gt; tag in the header. MxLoader will recognize that you want to save the data in separate files instead of using the Excel sheet to store the data.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exception handling in automation scripts</title>
      <link>https://bportaluri.click/post/2025/11/exception-handling-in-automation-scripts/</link>
      <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/11/exception-handling-in-automation-scripts/</guid>
      <description>&lt;p&gt;Writing automation scripts in Maximo is easy and almost every Maximo specialist has some ort of skills to develop customizations using Python/Jython scripts. Every error in your code will be handled by Maximo and displayed to end user as an error message. However, in some cases you need to handle exceptions in order to explicitly manage errors.&lt;/p&gt;&#xA;&lt;p&gt;Lets consider this little piece snippet of code&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;woSet = mbo.getMboSet(&amp;#34;ALLWO&amp;#34;)&#xA;wo = woSet.getMbo(0)&#xA;wonum = wo.getString(&amp;#34;WONUM&amp;#34;)&#xA;woSet.close()&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The mbo here refers to an ASSET and the ALLWO relationship is used to get the woSet MboSet with all work orders related to the asset. The script then fetches the WONUM of the first record in the MboSet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>String index out of range error when reloading Logging settings</title>
      <link>https://bportaluri.click/post/2025/11/string-index-out-of-range-error-when-reloading-logging-settings/</link>
      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/11/string-index-out-of-range-error-when-reloading-logging-settings/</guid>
      <description>&lt;p&gt;Today I clicked the Apply Settings action from Logging application and I have received the following error: BMXAA5189E - Failed to load logging settings from the database. String index out of range: 0&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image-1.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;After a long search I have discovered that it is caused by a misconfiguration of the logging appenders. click Manage Appenders action from the menu and ensure all appenders have the &amp;ldquo;.log&amp;rdquo; extension in the File Name. After fixing this you will be able to reload logging configuration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo script library</title>
      <link>https://bportaluri.click/post/2025/11/maximo-script-library/</link>
      <pubDate>Sun, 02 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/11/maximo-script-library/</guid>
      <description>&lt;p&gt;Maximo automation scripts became more and more powerful during the last years so we heavy rely on these capabilities to extend Maximo features and fulfill customer needs. When the amount of script code grows, it&amp;rsquo;s easy to end up into some sort of &lt;a href=&#34;https://en.wikipedia.org/wiki/Spaghetti_code&#34;&gt;spaghetti code&lt;/a&gt; so you need a practical way split the code into reusable pieces. &lt;a href=&#34;https://en.wikipedia.org/wiki/Modular_programming&#34;&gt;Modular programming&lt;/a&gt; and structured programming was adopted in software development since the late 1960s so we MUST definitely embed this technique in our developer&amp;rsquo;s toolset.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Implement complex workflow logic using Condition Launch Points script</title>
      <link>https://bportaluri.click/post/2025/09/complex-workflow-condition-script/</link>
      <pubDate>Sat, 20 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/09/complex-workflow-condition-script/</guid>
      <description>&lt;p&gt;The Maximo condition node allows to specify an condition in SQL format in order to drive the workflow in different ways depending on some custom logic.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image-3.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;In some cases the logic that has to be implemented can be quite complex and not easy to implement using SQL syntax. In this case we can use an Automation Script with Custom Condition Launch Point.&lt;/p&gt;&#xA;&lt;p&gt;In the example we will look into the work orders tasks for a specific description - I know it&amp;rsquo;s a silly example :-)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Avoid editing of a child table</title>
      <link>https://bportaluri.click/post/2025/09/avoid-editing-of-a-child-table/</link>
      <pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/09/avoid-editing-of-a-child-table/</guid>
      <description>&lt;p&gt;In some cases you need to prevent the editing of a child table (add/change/delete) in a Maximo application. For example, you want to prevent adding or changing records in the &amp;ldquo;Multiple Assets,Locations and CIs&amp;rdquo; table of the Work Order Tracking application when a work order is in status INPRG.&lt;/p&gt;&#xA;&lt;p&gt;The probem can be easily solved with an automation script on the Initialize event of the WORKORDER object that checks the status to the record and uses the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/mbo/MboSet.html#setFlag-long-boolean-&#34;&gt;MboSet.setFlag&lt;/a&gt;() method to mark the child MboSet as READONLY.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding Advanced Search menu to a Single Page app</title>
      <link>https://bportaluri.click/post/2025/09/adding-advanced-search-menu-to-a-single-page-app/</link>
      <pubDate>Sat, 13 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2025/09/adding-advanced-search-menu-to-a-single-page-app/</guid>
      <description>&lt;p&gt;The Maximo Single Page applications are simplified and provide a quicker way of visualizing and editing data. The Labor Reporting application is a good example of such kind of application.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image-1-1024x359.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;However, you may notice that custom Single Page applications do not provide the Advanced Search feature like the Labor Reporting app.&lt;/p&gt;&#xA;&lt;p&gt;To add the Advanced Search menu to a Single Page application to just need to perform three steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ensure that the SEARCHMORE sigoption is defined&lt;/p&gt;</description>
    </item>
    <item>
      <title>Speedup Maximo scripts development with VSCode plugins</title>
      <link>https://bportaluri.click/post/2024/11/maximo-scripts-development-vscode-plugins/</link>
      <pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/11/maximo-scripts-development-vscode-plugins/</guid>
      <description>&lt;p&gt;When developing automation scripts I always like to have a shared filesystem with all the latest automation scripts. This allows me to use code editors or to better navigate across the entire code and eventually use source code versioning tools like Git or CVS.&lt;/p&gt;&#xA;&lt;p&gt;One technique I usually use is to use Notepad++ and edit the script locally and then copy-paste the code into Maximo. Sometimes this is really annoying and time consuming so a searched for a better approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Display custom icons in application&#39;s list view</title>
      <link>https://bportaluri.click/post/2024/11/icons-in-list-view/</link>
      <pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/11/icons-in-list-view/</guid>
      <description>&lt;p&gt;Last week, a client asked if it was possible to display a warning icon on asset records based on certain business rules. Initially, this request posed a challenge, but I was able to find a solution to implement it effectively.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image-1024x509.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The technique is based on a non persistent attribute populated an automation script that evaluates the business rules. The piece of the trick is to add the non persistent attribute in an &lt;strong&gt;icon&lt;/strong&gt; control in the list view of the Assets application. Lets see all the steps.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to get application name in automation scripts</title>
      <link>https://bportaluri.click/post/2024/11/get-application-name-automation-scripts/</link>
      <pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/11/get-application-name-automation-scripts/</guid>
      <description>&lt;p&gt;IBM claims the you can use the &lt;a href=&#34;https://www.ibm.com/docs/en/mam/7.6.1.2?topic=scripts-implicit-variables&#34;&gt;implicit variable&lt;/a&gt; &amp;lsquo;app&amp;rsquo; in automation scripts if you need to know the name of the Maximo application that is currently running. Unfortunately, this technique works only on the main object on which the application is defined.&lt;/p&gt;&#xA;&lt;p&gt;As an example, try to define the following automation script on the &amp;ldquo;before save&amp;rdquo; event of the SPAREPART object&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;if app == &amp;#39;ASSET&amp;#39;:&#xA;  service.error(&amp;#34;cx&amp;#34;, appname, [])&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you open the Assets application and try to update records in the Spare Parts table, you will see that you the error message will not be triggered because the &amp;lsquo;app&amp;rsquo; variable will be empty. This is because the main object of the Assets application is ASSET and not SPAREPART.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long-running Cron Tasks and Admin Mode</title>
      <link>https://bportaluri.click/post/2024/10/long-running-cron-tasks-and-admin-mode/</link>
      <pubDate>Sat, 12 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/10/long-running-cron-tasks-and-admin-mode/</guid>
      <description>&lt;p&gt;There are many blog posts in the Maximo technical community describing how to develop an automation script and schedule execution using a cron task (&lt;a href=&#34;https://www.ibm.com/docs/en/mfci/7.6.2?topic=tasks-creating-cron-that-run-automation-scripts&#34;&gt;link1&lt;/a&gt;, &lt;a href=&#34;https://a3jgroup.com/run-an-automation-script-from-a-cron-task-in-maximo/&#34;&gt;link2&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;However, a custom cron task may run for a long period of time and this may block the system when trying to enable administrative mode. In this case you will see a long list of &lt;em&gt;&lt;strong&gt;BMXAA9680I Crontask is running&lt;/strong&gt;&lt;/em&gt; messaged in the &amp;ldquo;Turn Admin Mode ON&amp;rdquo; dialog.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup password expiration in Maximo</title>
      <link>https://bportaluri.click/post/2024/03/setup-password-expiration-in-maximo/</link>
      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/03/setup-password-expiration-in-maximo/</guid>
      <description>&lt;p&gt;I was recently struggling understanding how enable password expiration in Maximo when using native authentication.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.ibm.com/support/pages/setting-password-expiration-maximo&#34;&gt;This IBM TechNote&lt;/a&gt; explains very well how the standard Maximo expiration configuration works but there is a very tricky sentence: &lt;em&gt;In the case of a user belonging to any groups not containing a password expiration, the user&amp;rsquo;s password will never expire.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;So i decided to run this query to check the password expiration setting for all the security groups.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improved record change tracking using Audit feature</title>
      <link>https://bportaluri.click/post/2024/03/improved-record-change-tracking-using-audit-feature/</link>
      <pubDate>Sun, 10 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/03/improved-record-change-tracking-using-audit-feature/</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;https://bportaluri.com/2016/11/tracking-changes-using-audit-feature.html&#34;&gt;previous post&lt;/a&gt;, I demonstrated how the Maximo audit tracking can be used to display the updates made on a record enabling the audit and adding a &amp;ldquo;history&amp;rdquo; tab in the application. This technique is quite common but has a major drawback; it displays all the audited field in a row even if only one attribute was changed. When there are many audited fields it is very hard for the user understanding what was changed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create follow-up Work Order with script</title>
      <link>https://bportaluri.click/post/2024/03/how-to-create-follow-up-work-order-with-script/</link>
      <pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2024/03/how-to-create-follow-up-work-order-with-script/</guid>
      <description>&lt;p&gt;Maximo provides a useful action in many applications to create a follow-up work order or a linked service request from many applications.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/image.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The same result can easily be automated using the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/app/workorder/WO.html#createWorkorder--&#34;&gt;&lt;em&gt;WO.createWorkorder()&lt;/em&gt;&lt;/a&gt; or the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/app/ticket/Ticket.html#createWorkorder--&#34;&gt;&lt;em&gt;Ticket.createWorkorder()&lt;/em&gt;&lt;/a&gt; API methods.&lt;/p&gt;&#xA;&lt;p&gt;The standard WO2WO or TICKET2WO crossover domains can also be used to copy some attributes from the source object to the new one.&lt;/p&gt;&#xA;&lt;p&gt;However, sometimes you need more control to automate the initialization of the new record. In this cases you may use more powerful versions of the createWorkorder() method.&lt;/p&gt;</description>
    </item>
    <item>
      <title>System as-built documentation with MxLoader</title>
      <link>https://bportaluri.click/post/2023/10/system-as-built-documentation-with-mxloader/</link>
      <pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2023/10/system-as-built-documentation-with-mxloader/</guid>
      <description>&lt;p&gt;Many large clients require to deliver an &lt;strong&gt;as-built&lt;/strong&gt; document as part of the deliverables to be produced before the go-live. This is typically a Word document where all the Maximo configurations must be listed and described. I think this document has little real value for several reasons:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;It costs a lot of time and effort to be built&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;It is a manual activity based on a lot copy-paste operations and so it is subject to user error&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo data archiving solutions</title>
      <link>https://bportaluri.click/post/2023/02/maximo-data-archiving-solutions/</link>
      <pubDate>Thu, 09 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2023/02/maximo-data-archiving-solutions/</guid>
      <description>&lt;p&gt;If you are using IBM Maximo from many years, you may start experiencing performance degradation navigating the user interface, searching for data or performing some transactions like changing the status of a record or routing the workflow.&lt;/p&gt;&#xA;&lt;p&gt;This is often caused by the accumulation of historical records in the Maximo database. There are some system tables in Maximo that never stop growing like WFASSIGNMENT, CRONTASKHISTORY or LOGINTRACKING. Other tables store business data but may not be relevant to the business. Why do you have to keep the history of statuses of work orders that were closed 5 years ago?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling workflow from automation script</title>
      <link>https://bportaluri.click/post/2023/01/handling-workflow-from-automation-script/</link>
      <pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2023/01/handling-workflow-from-automation-script/</guid>
      <description>&lt;p&gt;If you need to handle workflows (start, stop, route, etc.) from an automation script you can use the following two Maximo API classes: &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/psdi/workflow/WorkFlowService.html&#34;&gt;WorkFlowService&lt;/a&gt; and &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/workflow/WFInstance.html&#34;&gt;WFInstance&lt;/a&gt;. Here are few examples.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/workflow/WorkFlowService.html#initiateWorkflow(java.lang.String,%20psdi.mbo.MboRemote)&#34;&gt;WorkFlowService.initiateWorkflow&lt;/a&gt; metod can be used to &lt;strong&gt;start a workflow&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from psdi.server import MXServer&#xA;# get the workflow service&#xA;wfSrv = MXServer.getMXServer().lookup(&amp;#39;WORKFLOW&amp;#39;)&#xA;# start the workflow&#xA;wfSrv.initiateWorkflow(&amp;#34;MYWF&amp;#34;, mbo)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To &lt;strong&gt;stop an active workflow&lt;/strong&gt; you can use &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/workflow/WFInstance.html#stopWorkflow-java.lang.String-&#34;&gt;WFInstance.stopWorkflow&lt;/a&gt; method:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from psdi.server import MXServer&#xA;# get the workflow service&#xA;wfSrv = MXServer.getMXServer().lookup(&amp;#39;WORKFLOW&amp;#39;)&#xA;# get active instances for the current mbo&#xA;wfSet = wfSrv.getActiveInstances(mbo)&#xA;# stop the first workflow instance&#xA;wfSet.getMbo(0).stopWorkflow(&amp;#34;Stopped&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To &lt;strong&gt;route a workflow&lt;/strong&gt; I have used the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/psdi/workflow/WorkFlowService.html#completeAssignment(psdi.workflow.WFAssignmentRemote,%20java.lang.String,%20boolean)&#34;&gt;WorkFlowService.completeAssignment&lt;/a&gt; method. Here it is a little more complex since we first have to get the right &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/workflow/WFAssignment.html&#34;&gt;WFAssignment&lt;/a&gt; record to the current Mbo and user.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The perfect MAXADMIN start center</title>
      <link>https://bportaluri.click/post/2023/01/perfect-maxadmin-start-center/</link>
      <pubDate>Mon, 23 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2023/01/perfect-maxadmin-start-center/</guid>
      <description>&lt;p&gt;Being efficient in our job should be always a top priority. As Maximo administrators and developers, we are logged many hours on the web interface and navigating around the UI. A properly configured MAXADMIN&amp;rsquo;s start center is one of the important things to set up. Here is a typical start center of one of my clients.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/maxadmin-start-center-1024x510.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;h3 id=&#34;favorite-applications&#34;&gt;Favorite applications&lt;/h3&gt;&#xA;&lt;p&gt;The left side of the start center is dedicated to a set of links to the most commonly used administrative applications. The list is quite flexible depending on what applications you are actually using a lot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accessing UI methods from automation scripts</title>
      <link>https://bportaluri.click/post/2022/12/accessing-ui-methods-from-automation-scripts/</link>
      <pubDate>Mon, 19 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/12/accessing-ui-methods-from-automation-scripts/</guid>
      <description>&lt;p&gt;In Maximo 7.6.1.1 IBM has greatly improved the &lt;em&gt;&lt;strong&gt;service&lt;/strong&gt;&lt;/em&gt; implicit variable to provide a lot of useful methods to interact with the user interface. Two good examples are:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;service.openURL(String url, boolean newWindow)service.launchDialog(String dialogId)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For a full reference of the &lt;em&gt;service&lt;/em&gt; methods refer to &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/com/ibm/tivoli/maximo/script/ScriptService.html&#34;&gt;this page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There is very important method that can be used to get a reference to the current user session:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wcs = service.webclientsession()&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will return a reference to a &lt;strong&gt;&lt;em&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs7612/psdi/webclient/system/session/WebClientSession.html&#34;&gt;WebClientSession&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; object. Explore the JavaDocs to find out what can be done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Useful queries for users monitoring</title>
      <link>https://bportaluri.click/post/2022/12/useful-queries-for-users-monitoring/</link>
      <pubDate>Mon, 19 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/12/useful-queries-for-users-monitoring/</guid>
      <description>&lt;p&gt;Today aI want to share two simple but useful queries to be created in the &lt;strong&gt;Users application&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The following where clause will list &lt;strong&gt;all active user sessions&lt;/strong&gt; excluding system:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT * from maxuser WHERE &#xA;userid in (select userid from maxsession where active=1 and issystem!=1)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I always add a result set on MAXADMIN start center with this query to see how many users are logged on the production environment or how many developers and testers are connected to a development server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scripting Best Practices for Performance</title>
      <link>https://bportaluri.click/post/2022/10/scripting-best-practices/</link>
      <pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/10/scripting-best-practices/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is a copy of a &lt;a href=&#34;https://www.ibm.com/support/pages/system/files/inline-files/Scripting_Best_Practices_For_Performance.pdf&#34;&gt;PDF file published by IBM&lt;/a&gt;. I&amp;rsquo;m republishing it here to make it more accessible.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scripting allows users to extend maximo business logic using Python/JS or for that matter any other JSR 223 compliant scripting language. All the script code gets compiled to Java bytecode and are cached as part of Maximo runtime caches. So when the script is invoked – it’s the cached bytecode that is executed by the JVM using the JSR 223 bridge. Since the scripting code executes in the same thread as other Maximo business logic (written in Java), a poorly written script code can impact the performance of the system negatively. We have listed below a few common mistakes that we have seen. In general, we need to follow the Maximo performance guidelines as scripting in the end is equivalent to Maximo custom code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Set long description from automation script</title>
      <link>https://bportaluri.click/post/2022/10/set-long-description-script/</link>
      <pubDate>Mon, 24 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/10/set-long-description-script/</guid>
      <description>&lt;p&gt;Today I have discovered a strange behavior when setting long descriptions from an automation script.&lt;/p&gt;&#xA;&lt;p&gt;You know that almost every &lt;em&gt;DESCRIPTION&lt;/em&gt; field in Maximo has a corresponding &amp;ldquo;Long Description&amp;rdquo; field that is a CLOB attribute that can hold big amounts of text. This is driven by the &amp;ldquo;Long Description Owner&amp;rdquo; checkbox in Database Configuration.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2022/10/long-description-owner.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/long-description-owner-512x394.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;When this flag is selected, a non-persistent attribute named &lt;em&gt;DESCRIPTION_LONGDESCRIPTION&lt;/em&gt; is created and can be get/set as any other attribute.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Budget Monitoring with Maximo</title>
      <link>https://bportaluri.click/post/2022/10/budget-monitoring-with-maximo/</link>
      <pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/10/budget-monitoring-with-maximo/</guid>
      <description>&lt;p&gt;The Budget Monitoring application was introduced in May 2007 as part of the IBM Maximo 7.6.0.8 feature pack but its potential was largely underestimated by the user community. The application may seem complex and may be daunting at first, but in reality it is quite simple to configure for basic use, allowing later to extend its use to implement a more mature maintenance cost management process.&lt;br&gt;&#xA;In this post we will explain how it is possible, in a few simple steps, to create a budget and start monitoring costs related to maintenance by aggregating them by expense items.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader file is untrusted</title>
      <link>https://bportaluri.click/post/2022/09/mxloader-file-untrusted/</link>
      <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/09/mxloader-file-untrusted/</guid>
      <description>&lt;p&gt;Microsoft has recently added a security feature to protect unsafe content downloaded from the web to execute malicious code. If you have recently downloaded MxLoader from my web site you may have seen the error: &lt;strong&gt;&lt;em&gt;Microsoft has blocked macros from running because the source of this file is untrusted&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/mxloader-file-untrusted-2.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;To unblock MxLoader you must right-click on the file and select Properties.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/file-properties.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Then you have to select the &lt;strong&gt;&lt;em&gt;Unblock&lt;/em&gt;&lt;/strong&gt; checkbox and click OK.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Display custom message from automation script</title>
      <link>https://bportaluri.click/post/2022/06/display-custom-message-from-automation-script/</link>
      <pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/06/display-custom-message-from-automation-script/</guid>
      <description>&lt;p&gt;There is a well known technique to display a custom error message from an automation script. It requires to create the custom message in the Messages dialog of Database Configuration application and then to trigger the display of it throwing an exception by setting &lt;em&gt;errorgroup/errorkey&lt;/em&gt; or using the &lt;em&gt;service.error&lt;/em&gt; method. This technique is well described in several blog post so I&amp;rsquo;m not going to repeat it: &lt;a href=&#34;https://www.maximoscripting.com/maximo-messages-in-jython/&#34;&gt;Maximo Scripting&lt;/a&gt;, &lt;a href=&#34;http://mygeekdaddy.net/2019/09/18/adding-context-messages-to-your-maximo-processes/&#34;&gt;My Geek Daddy&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Having defined a message &lt;em&gt;mxdev.msgid&lt;/em&gt;, it just requires one line of code to display it from an automation script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader wizard</title>
      <link>https://bportaluri.click/post/2022/01/mxloader-wizard/</link>
      <pubDate>Fri, 21 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/01/mxloader-wizard/</guid>
      <description>&lt;p&gt;Do you know there is a wizard into MxLoader? You can invoke him clicking on the MxSheet Wizard button on the toolbar.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2022/01/MxLoader-wizard.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/MxLoader-wizard-512x273.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Joking apart, the MxSheet Wizard button can help you in creating your own MxLoader sheet choosing an available Object Structure and picking up all the attributes that you want to manage. This is actually based on an idea of John Green from &lt;a href=&#34;https://peacockengineering.com/&#34;&gt;Peacock Engineering&lt;/a&gt; who shown me their own improved version MxLoader with a built-in designer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL skills</title>
      <link>https://bportaluri.click/post/2022/01/sql-tutorial/</link>
      <pubDate>Fri, 21 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2022/01/sql-tutorial/</guid>
      <description>&lt;p&gt;One of the first thing I always say to the new hires that are going to learn Maximo is how much important is to have a good knowledge of SQL language. It is really important to build application queries, Birt reports, database relationships, complex table domains, conditional expressions and many other Maximo configurations.&lt;/p&gt;&#xA;&lt;p&gt;The important thing to understand is that SQL is more declarative than procedural like C or Java so it may require a mind shift for common developers. It is hard to explain in a short post like how to develop a good SQL query but well written SQL code can solve many Maximo performances issues.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Script to check if current user is in a Security Group</title>
      <link>https://bportaluri.click/post/2021/12/script-current-user-in-security-group/</link>
      <pubDate>Sat, 04 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/12/script-current-user-in-security-group/</guid>
      <description>&lt;p&gt;A typical business case is to prevent editing of some specific fields to a set of organizational roles in Maximo. This is typically achieved by implementing attribute data restriction or conditional UI.&lt;/p&gt;&#xA;&lt;p&gt;However, if you need more control over what field should be readonly and when, you can use an automation script on the INIT event of the object and implement the business rules in the code.&lt;/p&gt;&#xA;&lt;p&gt;In the following script you will find the &lt;em&gt;userInGroup&lt;/em&gt; function that can be reused whenever needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo bulk update from List view</title>
      <link>https://bportaluri.click/post/2021/10/maximo-bulk-update-list-view/</link>
      <pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/10/maximo-bulk-update-list-view/</guid>
      <description>&lt;p&gt;In some cases Maximo allows to perform bulk updates using actions on the List View. For example, you can set the timezone of multiple assets by selecting the Associate Time Zone on the List View of the Assets application and then a dialog will appear to perform a massive update on all the selected records.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2021/10/bulk-action.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/bulk-action-512x328.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In many cases we need to provide the same feature for some other fields. In this post I will demonstrate how to implement a &lt;strong&gt;&lt;em&gt;bulk update feature to set the value of an attribute for a set of selected records&lt;/em&gt;&lt;/strong&gt; in any Maximo application. The implementation is based on the technique described in &lt;a href=&#34;https://bportaluri.com/2019/08/custom-dialog-using-automation-scripts.html&#34;&gt;this post&lt;/a&gt; and uses:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adjust field size in application</title>
      <link>https://bportaluri.click/post/2021/10/adjust-field-size-width/</link>
      <pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/10/adjust-field-size-width/</guid>
      <description>&lt;p&gt;Maximo sometimes does not display all the characters in a field, because the text box is too small. Of course, you can solve this. First you need to understand how Maximo determines the display size of the text box. Then you can change these setting and control how large the text box should be.&lt;/p&gt;&#xA;&lt;h3 id=&#34;setting-default-field-size-globally&#34;&gt;Setting default field size globally&lt;/h3&gt;&#xA;&lt;p&gt;Maximo stores the default field sizes in the file &lt;em&gt;SMPDIR/maximo/applications/maximo/properties/&lt;strong&gt;field-size-config.xml&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The default configuration for ALN fields is the following.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s now time to upgrade to MxLoader 8</title>
      <link>https://bportaluri.click/post/2021/10/mxloader-updater-timezone/</link>
      <pubDate>Sun, 10 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/10/mxloader-updater-timezone/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m happy to announce that I have just released &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;version 8.2 of MxLoader&lt;/a&gt;. It includes few small bug fixes and few important features. If you haven&amp;rsquo;t already upgraded to MxLoader it&amp;rsquo;s time to do it!&lt;/p&gt;&#xA;&lt;h3 id=&#34;time-zones&#34;&gt;Time Zones&lt;/h3&gt;&#xA;&lt;p&gt;You may not be aware that while most time zones differ from Coordinated Universal Time (UTC) by a number of full hours, there are also a few time zones with both 30-minute and 45-minute offsets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using API authentication with MxLoader</title>
      <link>https://bportaluri.click/post/2021/10/api-key-authentication-mxloader/</link>
      <pubDate>Sat, 09 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/10/api-key-authentication-mxloader/</guid>
      <description>&lt;p&gt;Here is a quick guide about how to use API authentication with MxLoader.&lt;/p&gt;&#xA;&lt;h3 id=&#34;generate-api-key&#34;&gt;Generate API Key&lt;/h3&gt;&#xA;&lt;p&gt;Follow these steps to generate an API Key for your user.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Login to Maximo with administrative account.&lt;/li&gt;&#xA;&lt;li&gt;Go to Administration &amp;gt; Work Center &amp;gt; Integration.&lt;/li&gt;&#xA;&lt;li&gt;Click on the API Keys and click on the Add API Keys button&lt;/li&gt;&#xA;&lt;li&gt;Search for user for which API Key needs to be generated and click on the Add button.&lt;/li&gt;&#xA;&lt;li&gt;This will generate API Key for the user and the key will be visible on the work center. Now this API Key can be used withMxLoader.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;More details are available &lt;a href=&#34;https://eam360.com/maximo-api-key-rest-oslc-api-authentication-with-IdP-via-saml&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to improve View Workflow History dialog</title>
      <link>https://bportaluri.click/post/2021/10/improve-workflow-history-dialog/</link>
      <pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/10/improve-workflow-history-dialog/</guid>
      <description>&lt;p&gt;One of the frequent complaints from Maximo clients is the scarce user-friendliness of the &lt;em&gt;View Workflow History&lt;/em&gt; dialog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2021/10/workflow-history-1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/workflow-history-1-512x363.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here is the same dialog after few changes. Clutter information is removed and is now clear the sequence of actions taken by the user.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2021/10/workflow-history-2.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/workflow-history-2-512x360.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Before you start you have to open the Application Designer and click on Export System XML action. Then export your LIBRARY.xml file and create a backup copy of it. Search for &lt;em&gt;id=&amp;ldquo;historywf&amp;rdquo;&lt;/em&gt; to find the definition of the View Workflow History dialog and make the following changes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader registration Q&amp;A</title>
      <link>https://bportaluri.click/post/2021/09/mxloader-registration-questions/</link>
      <pubDate>Sat, 04 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/09/mxloader-registration-questions/</guid>
      <description>&lt;p&gt;&lt;strong&gt;MxLoader 8.4 no longer requires registration. You can download the latest version or the updater tool from &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;this page&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>DBC XML Format Reference</title>
      <link>https://bportaluri.click/post/2021/08/dbc-xml-format-reference/</link>
      <pubDate>Tue, 17 Aug 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/08/dbc-xml-format-reference/</guid>
      <description>&lt;p&gt;The DBC XML Format Technical Reference document disappeared from IBM website.&lt;/p&gt;&#xA;&lt;p&gt;You can download the document from &lt;strong&gt;&lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20677&#34;&gt;this link&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/biplab-das-choudhury/&#34;&gt;Biplab Das Choudhury&lt;/a&gt; and &lt;a href=&#34;https://www.linkedin.com/in/cezar-tipa-b02762/&#34;&gt;Cezar Tipa&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader Webinar Q&amp;A</title>
      <link>https://bportaluri.click/post/2021/07/mxloader-webinar-qa/</link>
      <pubDate>Fri, 02 Jul 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/07/mxloader-webinar-qa/</guid>
      <description>&lt;p&gt;In this post I&amp;rsquo;m collecting the answer to the questions that we have received during the webinar of 18th of June 2021 about the release of MxLoader 8.1.&lt;/p&gt;&#xA;&lt;h3&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Data Validation&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Validation process is important before upload. because many clients were asked us physical validation report before process data in Maximo. Do we have any such report using MXLoader?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Unfortunately MxLoader cannot perform validation before processing the data.&lt;/p&gt;&#xA;&lt;p&gt;Both OS and REST services does not have a &amp;ldquo;preview mode&amp;rdquo;. Data validation on the server is performed only while synching objects.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting multiple fields as readonly with script</title>
      <link>https://bportaluri.click/post/2021/04/multiple-fields-readonly-script/</link>
      <pubDate>Tue, 27 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/04/multiple-fields-readonly-script/</guid>
      <description>&lt;p&gt;Sometimes you may need to allow some users to update only few fields. This may be hard to achieve using conditional UI and conditional expressions.&lt;/p&gt;&#xA;&lt;p&gt;In the following snippet I&amp;rsquo;m setting all fields as readonly except DESCRIPTION and STATUS if the current user is in MANSUP security group. Attach the script to the &lt;em&gt;Initialize&lt;/em&gt; event of the object you want to control.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from psdi.mbo import MboConstants&#xA;from psdi.server import MXServer&#xA;&#xA;# check if the current user is in MANSUP security group&#xA;currentuser = mbo.getUserInfo().getUserName()&#xA;groupuserSet= MXServer.getMXServer().getMboSet(&amp;#39;GROUPUSER&amp;#39;, mbo.getUserInfo())&#xA;groupuserSet.setWhere(&amp;#34;groupname in (&amp;#39;MANSUP&amp;#39;) and userid=&amp;#39;&amp;#34; + currentuser + &amp;#34;&amp;#39;&amp;#34;)&#xA;&#xA;if not groupuserSet.isEmpty():&#xA;    mbo.setFieldFlag([&amp;#34;DESCRIPTION&amp;#34;, &amp;#34;STATUS&amp;#34;], False, MboConstants.READONLY, True)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The powerful trick here is to use the method &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/psdi/mbo/Mbo.html#setFieldFlag(java.lang.String%5B%5D,%20boolean,%20long,%20boolean)&#34;&gt;&lt;strong&gt;&lt;em&gt;Mbo.setFieldFlag(names, inclusive, flag, state)&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Strict validation of attachment types</title>
      <link>https://bportaluri.click/post/2021/04/validate-attachment-type/</link>
      <pubDate>Mon, 26 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/04/validate-attachment-type/</guid>
      <description>&lt;p&gt;&lt;em&gt;Few days ago, &lt;a href=&#34;https://www.linkedin.com/in/vincenzo-luzzi-b15b1b201/&#34;&gt;Vincenzo Luzzi&lt;/a&gt;, a fellow Maximo senior consultant working with me in &lt;a href=&#34;https://www.omninecs.com/&#34;&gt;Omninecs&lt;/a&gt;, forwarded this secret tip to me. I haven&amp;rsquo;t tested it but think I could be useful for the community.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;You know you can control what types of attachments can be uploaded to Maximo using the system property &lt;em&gt;mxe.doclink.doctypes.allowedFileExtensions&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/allowedFileExtensions-512x242.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;However Maximo just checks the file extension and is not performing any additional check to ensure other types of files are uploaded to its repository. Starting from Maximo 7.6.0.6 you can implement a more strict file type scanning when you upload an attached document.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Highlight table rows conditionally</title>
      <link>https://bportaluri.click/post/2021/04/highlight-table-rows-conditionally/</link>
      <pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/04/highlight-table-rows-conditionally/</guid>
      <description>&lt;p&gt;You may not know but there is an easy trick to conditionally set the color of Maximo table rows based on a condition.&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial I will show you how to highlight high priority work orders in Work Order Tracking application.&lt;/p&gt;&#xA;&lt;h3 id=&#34;identify-the-field&#34;&gt;Identify the field&lt;/h3&gt;&#xA;&lt;p&gt;First of all you need to identify the field on which the rule will be based on. In our example, the rule will be based on WORKORDER.WOPRIORITY field.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom REST service with Automation Script</title>
      <link>https://bportaluri.click/post/2021/04/rest-service-automation-script/</link>
      <pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/04/rest-service-automation-script/</guid>
      <description>&lt;p&gt;The REST APIs have a tight integration with the automation scripts. Automation scripts can be used to develop custom APIs. The following example call describes how automation scripts interact with REST APIs. You can also use automation scripts for implementing custom queries and custom actions.&lt;/p&gt;&#xA;&lt;p&gt;JavaScript language is always the preferred choice for integration scripts since it provides native functions to manage JSON objects.&lt;/p&gt;&#xA;&lt;p&gt;To find the total number of work that is in progress and service requests in a given site, you need to create an API since there is no out-of-the-box API for this task. Create the following Automation Script:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Querying data with MxLoader using REST service</title>
      <link>https://bportaluri.click/post/2021/04/mxloader-rest-query-where/</link>
      <pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/04/mxloader-rest-query-where/</guid>
      <description>&lt;p&gt;MxLoader 7.1 and above supports the new Maximo JSON APIs that are available from Maximo 7.6.0.2. The REST APIs are based on the OSLC protocol so there are some changes you have to consider. The most important difference between OS and REST service is the format of the where clause that can be set in cell D1 of MxLoader sheets.&lt;/p&gt;&#xA;&lt;p&gt;While OS server accepts SQL syntax, the REST service follows the OSLC specifications. In this post I will describe the most important concept to write OSLC where clauses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaDocs for Maximo 7.6</title>
      <link>https://bportaluri.click/post/2021/03/maximo-7-6-javadocs/</link>
      <pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/03/maximo-7-6-javadocs/</guid>
      <description>&lt;p&gt;For whatever reason IBM recently decided to remove the online version of Maximo JavaDocs from their website. At the moment they are only available as zip files for &lt;a href=&#34;https://www.ibm.com/support/pages/javadocs-maximo-asset-management-76&#34;&gt;Maximo 7.6&lt;/a&gt; and &lt;a href=&#34;https://community.ibm.com/community/user/iot/viewdocument/maximo-7612-java-docs?CommunityKey=3d7261ae-48f7-481d-b675-a40eb407e0fd&amp;amp;tab=librarydocuments&#34;&gt;Maximo 7.6.1.2&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I think this is not really useful because it is really hard to search what you are looking for so I have just published the JavaDocs on my website so they can easily be searched with Google.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/&#34;&gt;Maximo 7.6 JavaDocs&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Send Communication Template from script</title>
      <link>https://bportaluri.click/post/2021/03/send-communication-template-from-script/</link>
      <pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/03/send-communication-template-from-script/</guid>
      <description>&lt;p&gt;This is a quite old topic that has been already addressed in many Maximo communities and blogs around. However, I have found none of them seems to handle it correctly.&lt;/p&gt;&#xA;&lt;p&gt;There are mainly several techniques of sending an email from an automation script. I will explain the limitations of the current solutions and propose a best practice.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;If you just want to se the final solution &lt;a href=&#34;#best-practice&#34; title=&#34;#best-practice&#34;&gt;jump here&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;using-java-apis---worst-solution&#34;&gt;Using Java APIs - worst solution&lt;/h3&gt;&#xA;&lt;p&gt;You know you can use any Java API in your Maximo automation scrips so the first solution is to use the javax.mail package to send email.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo List Archive</title>
      <link>https://bportaluri.click/post/2021/01/maximo-list-archive/</link>
      <pubDate>Sun, 31 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2021/01/maximo-list-archive/</guid>
      <description>&lt;p&gt;In the old days there was no blog on the internet and there was no IBM community to discuss Maximo technical and functional topics. All these LinkedIn communities and webinars were not available to learn and share.&lt;/p&gt;&#xA;&lt;p&gt;Few heroes were trying to learn from each other on a closed and moderated Yahoo forum. Yahoo decided to &lt;a href=&#34;https://www.yahoo.com/entertainment/yahoo-announces-shutdown-social-platform-034108123.html&#34;&gt;shutdown their Groups social platform&lt;/a&gt; in 2020 so all the content is not available anymore. Luckily enough, the community owner &lt;strong&gt;&lt;a href=&#34;https://www.linkedin.com/in/christopherwanko/&#34;&gt;Christopher Wanko&lt;/a&gt;&lt;/strong&gt; sent me a backup of the community content asking me to make it publicly available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Uploading and downloading files with MxLoader</title>
      <link>https://bportaluri.click/post/2020/12/uploading-and-downloading-files-with-mxloader/</link>
      <pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/12/uploading-and-downloading-files-with-mxloader/</guid>
      <description>&lt;p&gt;One of the new features of &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;&lt;strong&gt;MxLoader 7.2 (NextGen)&lt;/strong&gt;&lt;/a&gt; is the capability to upload and download files from Maximo.&lt;/p&gt;&#xA;&lt;p&gt;Any text field can be exported to a file by simply prepending the attribute name with &lt;strong&gt;&lt;em&gt;FileTxt:&lt;/em&gt;&lt;/strong&gt; prefix. In this example, all the long descriptions of assets will be exported to text files under the Assets subfolder.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2020/12/MxLoader-fileget.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/MxLoader-fileget-1024x116.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In a similar way, it is possible to upload large text from a file with a similar syntax. Note that in this case you don&amp;rsquo;t need the &lt;em&gt;FileTxt:&lt;/em&gt; prefix in the header.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why I hate automation script variables binding</title>
      <link>https://bportaluri.click/post/2020/09/automation-script-variable-bind/</link>
      <pubDate>Sun, 27 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/09/automation-script-variable-bind/</guid>
      <description>&lt;p&gt;There are two approaches when dealing with Maximo automation scripts input and output variables.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Using launch point variables&lt;/strong&gt; - This method is described in the &lt;a href=&#34;https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.1.2/com.ibm.mbs.doc/autoscript/c_variables.html&#34;&gt;product&amp;rsquo;s knowledge center&lt;/a&gt; and allows to get/set values from/to the database specifying how to bind the script variables to specific database fields.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Using getter/setter&lt;/strong&gt; methods - This approach uses Maximo MBO application layer (businessobjects) methods to get and set values. These methods are described in my &lt;a href=&#34;https://bportaluri.com/automation-scripts&#34;&gt;Maximo Automation Scripts Quick Reference&lt;/a&gt; document.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Launch point variables are also called &amp;lsquo;bound variables&amp;rsquo; here is how they look like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to resend failed emails</title>
      <link>https://bportaluri.click/post/2020/09/how-to-resend-failed-emails/</link>
      <pubDate>Thu, 24 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/09/how-to-resend-failed-emails/</guid>
      <description>&lt;p&gt;Some Maximo implementations massively rely on email communications to notify users about important events like new tickets or assigned tasks. Sometimes outbound emails are also used to implement integration or notify external parties about relevant events. In such environments, it is important to avoid that a planner or unplanned email server downtime results in a bunch of emails not being sent.&lt;/p&gt;&#xA;&lt;p&gt;Maximo relies on Communication Templates to send emails. There is an important field in the Communication Templates application called &lt;strong&gt;&lt;em&gt;Track Failed Messages&lt;/em&gt;&lt;/strong&gt;. This flag allows to specify if failed email messages should be logged in the &lt;em&gt;COMMLOG&lt;/em&gt; table.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically calculate Job Plan duration from Tasks</title>
      <link>https://bportaluri.click/post/2020/08/automatically-calculate-job-plan-duration-from-tasks/</link>
      <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/08/automatically-calculate-job-plan-duration-from-tasks/</guid>
      <description>&lt;p&gt;A small customization I have been recently asked for is to automatically calculate Job Plan duration from Tasks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2020/08/job-plan-dutarion.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/job-plan-dutarion-512x479.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This can be easily achieved with an automation script on the JOBTASK object.&lt;/p&gt;&#xA;&lt;p&gt;Open the Automation Scripts application and create the following Script with Object Launch Point&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Launch Point: MXDJPDURATION - Automatically calculates Job Plan Duration from Tasks&lt;/li&gt;&#xA;&lt;li&gt;Event: Save Add,Insert,Delete - Before Save&lt;/li&gt;&#xA;&lt;li&gt;Script: MXDJPDURATION - Automatically calculates Job Plan Duration from Tasks&lt;/li&gt;&#xA;&lt;li&gt;Language: Python&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Script&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader NextGen Beta available now!</title>
      <link>https://bportaluri.click/post/2020/06/mxloader-nextgen-beta/</link>
      <pubDate>Tue, 09 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/06/mxloader-nextgen-beta/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;MxLoader NextGen Beta is now over and starting from MxLoader 7.1 all the NextGen features are now available in the official version.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Refer to &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;MxLoader main web page&lt;/a&gt; for download.&lt;/p&gt;&#xA;&lt;p&gt;MxLoader NextGen &lt;strong&gt;advantages&lt;/strong&gt; are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support for &lt;a href=&#34;https://developer.ibm.com/static/site-id/155/maximodev/restguide/Maximo_Nextgen_REST_API.html&#34;&gt;Maximo NextGen REST APIs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Improved performance&lt;/li&gt;&#xA;&lt;li&gt;File download/upload capabilities&lt;/li&gt;&#xA;&lt;li&gt;Detailed results dialog&lt;/li&gt;&#xA;&lt;li&gt;Individual response codes for bulk updates&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;There are some &lt;strong&gt;important changes&lt;/strong&gt; due to the new APIs:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supports Maximo releases starting with version 7.6.0.2&lt;/li&gt;&#xA;&lt;li&gt;The connection url is no longer &lt;em&gt;http://&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;X&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;MXSERVER&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;MXSER&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;ER&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/&lt;strong&gt;meaweb/os/&lt;/strong&gt;&lt;/em&gt; but &lt;em&gt;http://&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;X&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;MXSERVER&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;MXSER&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;ER&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Available actions are now: Query, AddChange, Delete&lt;/li&gt;&#xA;&lt;li&gt;The where clause syntax for Query action is no longer SQL. Refer to &lt;a href=&#34;https://developer.ibm.com/static/site-id/155/maximodev/restguide/Maximo_Nextgen_REST_API.html#_filtering_data_using_where_clause&#34;&gt;official documentation&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;For AddChange and Delete actions, each synced object will report the result in a reserved column&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;U&lt;/mi&gt;&lt;mi&gt;L&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;RESULT&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;RES&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;UL&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&#xA;&lt;li&gt;Child objects can now be accessed through database relationship without customizing integration Object Structures&lt;/li&gt;&#xA;&lt;li&gt;MxLoader is still free but requires a &lt;a href=&#34;https://bportaluri.com/mxloader-registration&#34;&gt;registration key&lt;/a&gt; to unlock all the features&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>The importance of &#39;sameas&#39; in Database Configuration</title>
      <link>https://bportaluri.click/post/2020/04/maximo-sameas-database-configuration/</link>
      <pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/04/maximo-sameas-database-configuration/</guid>
      <description>&lt;p&gt;An often misused feature of Maximo Database Configuration is the &amp;lsquo;Same as Object&amp;rsquo; and &amp;lsquo;Same as Attribute&amp;rsquo; fields when defining custom database attributes.&lt;/p&gt;&#xA;&lt;p&gt;To understand how this works lets consider the ASSET.LOCATION attribute. As you can see from the screenshot below, the LOCATION column of the ASSET table is defined &amp;lsquo;same as&amp;rsquo; LOCATIONS.LOCATION&amp;rsquo; field.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2020/04/database-sameas.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/database-sameas-512x376.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The direct effect of this is that if you change the size of the LOCATIONS.LOCATION field it will affect all the &amp;lsquo;sameas&amp;rsquo; fields defined in other tables.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to set NULL values with MxLoader</title>
      <link>https://bportaluri.click/post/2020/04/set-null-empty-values-with-mxloader/</link>
      <pubDate>Sun, 19 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/04/set-null-empty-values-with-mxloader/</guid>
      <description>&lt;p&gt;A frequent question from people using MxLoader is how to clear the value of a field.&lt;/p&gt;&#xA;&lt;p&gt;For example, if asset 11230 has the serial number field set to a certain value and we want to blank it out, the following MxLoader sheet will not do the job.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;images/mxloader-blank-512x103.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;This is because MxLoader skips all the blank cells and does not pass the blank value to Maximo.&lt;/p&gt;&#xA;&lt;p&gt;To achieve what we want, we can enter &lt;strong&gt;&lt;del&gt;NULL&lt;/del&gt;&lt;/strong&gt; to actually clear the value of the SERIALNUM field.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Attribute validation not triggered immediately</title>
      <link>https://bportaluri.click/post/2020/04/disable-asynchronous-attribute-validation/</link>
      <pubDate>Sat, 18 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/04/disable-asynchronous-attribute-validation/</guid>
      <description>&lt;p&gt;Have you ever experienced a delay when entering data on a field and validation is triggered after several seconds?&lt;/p&gt;&#xA;&lt;p&gt;The asyncronous data validation has been &lt;a href=&#34;https://www.ibm.com/support/pages/node/1134015&#34;&gt;introduced in Maximo 7.5&lt;/a&gt; to improve responsiveness of the user interface. However there are some situations where this is really annoying. For example, if you have developed your own scripts triggered by Validation or Run Action launch points, you want your script to be executed immediately just after the user entered data.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Route Workflow error in cloned applications</title>
      <link>https://bportaluri.click/post/2020/04/route-workflow-error-in-cloned-application/</link>
      <pubDate>Mon, 13 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/04/route-workflow-error-in-cloned-application/</guid>
      <description>&lt;p&gt;Maximo Everyplace is the quick way-to-go to provide access to mobile devices for IBM Maximo. It is basically a slightly changed look and feel of the standard web interface with a dedicated start center that is automatically displayed when logging from a mobile web browser. Obviously it works only in online mode but is straightforward to configure and supports Maximo workflow.&lt;/p&gt;&#xA;&lt;p&gt;When using workflows with Maximo Everyplace you may encounter some errors like these:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reset all meter readings</title>
      <link>https://bportaluri.click/post/2020/04/reset-all-meter-readings/</link>
      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/04/reset-all-meter-readings/</guid>
      <description>&lt;p&gt;On a development/test environment today I had to reset all meter readings. Maximo is storing the last readings in a set of fields of the ASSETMETER table and the reading history in the METERREADING table.&lt;/p&gt;&#xA;&lt;p&gt;Here are the SQL statements I have used.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;delete from meterreading;&#xA;&#xA;update assetmeter&#xA;set lastreading=0, lastreadingdate=null,&#xA;sincelastrepair=0, sincelastoverhaul=0, sincelastinspect=0,&#xA;sinceinstall=0, lifetodate=0, average=0,&#xA;lastreadinginspctr=null;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Modify Asset&#39;s condition code from Work Order</title>
      <link>https://bportaluri.click/post/2020/03/modify-asset-condition-code-from-work-order/</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/03/modify-asset-condition-code-from-work-order/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.ibm.com/support/pages/understanding-condition-codes&#34;&gt;Condition codes&lt;/a&gt; are used in Maximo to define various physical states of a particular item. Once the condition code of an asset is set, it becomes readonly and can only be modified using the Move/Modify Asset menu option found in the Select Action menu of the Assets application (&lt;a href=&#34;https://www.ibm.com/support/pages/changing-condition-code-rotating-item&#34;&gt;link&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;In some cases it makes sense to allow the technician to update the asset&amp;rsquo;s condition after a repair or inspection. In this post I will demonstrate how to allow to edit the condition code of the asset from the Work Order Tracking application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Loading Item Assembly Structures (IAS) with MxLoader</title>
      <link>https://bportaluri.click/post/2020/01/load-item-assembly-structures-ias-mxloader/</link>
      <pubDate>Mon, 20 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/01/load-item-assembly-structures-ias-mxloader/</guid>
      <description>&lt;p&gt;I have just releases version 6.2 of MxLoader that contains a brand new template for loading Loading Item Assembly Structures (IAS) into Maximo. An &lt;a href=&#34;https://www.bpdzenith.com/maximo/the-item-assembly-structure-feature-in-maximo/&#34;&gt;item assembly structure&lt;/a&gt; is a list of spare parts and subassemblies required to build an Asset or to define the requirements of a location.&lt;/p&gt;&#xA;&lt;p&gt;Starting from this &lt;a href=&#34;https://www.ibm.com/support/pages/mif-object-structure-item-assembly-structures-integration&#34;&gt;IBM technote&lt;/a&gt; I have created the MXL_ITEMAS object structure including ITEM and ITEMSTRUCT tables. To create the MXL_ITEMAS object structure just click on &lt;em&gt;Create Custom Object Structures&lt;/em&gt; in MxLoader ribbon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ensure Asset&#39;s serial number uniqueness</title>
      <link>https://bportaluri.click/post/2020/01/asset-unique-serial-number/</link>
      <pubDate>Thu, 09 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/01/asset-unique-serial-number/</guid>
      <description>&lt;p&gt;Sometimes you need to ensure the uniqueness of a certain database column in the Maximo database. A common example of this scenario is to ensure that asset&amp;rsquo;s serial numbers are not duplicated. This can prevent the creation of duplicate assets.&lt;/p&gt;&#xA;&lt;p&gt;In this post I describe two techniques to achieve this using a unique database index or an automation script.&lt;/p&gt;&#xA;&lt;h3 id=&#34;unique-index&#34;&gt;Unique Index&lt;/h3&gt;&#xA;&lt;p&gt;The simplest and most reliable way of achieving this is to define a unique database index on the SERIALNUM field of the ASSET table. However, we must make some considerations first. The asset serial is not unique alone for two reasons:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Send Work Order Calendar invitations</title>
      <link>https://bportaluri.click/post/2020/01/send-calendar-invitations/</link>
      <pubDate>Fri, 03 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/01/send-calendar-invitations/</guid>
      <description>&lt;p&gt;Sometimes a full-fledged mobile solution for Maximo is needed to really mobilize your workforce. Some others a simpler solution can help without the need of additional infrastructure or costs.&lt;/p&gt;&#xA;&lt;p&gt;In this article I will show how to send calendar invitations to workers with work order details and reminders for the activities. The calendar event can have a link to Maximo in order to report progress or close the work order using the standard Everyplace or Work Centers interface.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improved Automation Scripts application</title>
      <link>https://bportaluri.click/post/2020/01/improved-automation-scripts-application/</link>
      <pubDate>Thu, 02 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2020/01/improved-automation-scripts-application/</guid>
      <description>&lt;p&gt;Maximo automation scripts are a very useful tool to implement custom business logic for your customer. After time you may have many scripts to maintain and it may become hard to understand all the logic you have implemented on a specific object. I easy and useful trick I always use is to modify the Automation Scripts application to be able to display and filter script&amp;rsquo;s launch points.&lt;/p&gt;&#xA;&lt;p&gt;You can see in this screenshot how easy it it to understand what scripts are running on each business object.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting – Library Scripts</title>
      <link>https://bportaluri.click/post/2019/12/maximo-scripting-library-scripts/</link>
      <pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/12/maximo-scripting-library-scripts/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Library scripts are good for encapsulating some re-usable logic. In Maximo 7.6, we can write library scripts as just simple scripts. We can write these scripts in any language and then call from another language. Lets make a library script for making HTTP GET calls. We can make that using a py script like below.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;from psdi.iface.router import HTTPHandler&#xA;from java.util import HashMap&#xA;from java.util import String&#xA;handler = HTTPHandler()&#xA;map = HashMap()&#xA;map.put(&amp;#34;URL&amp;#34;, url)&#xA;map.put(&amp;#34;HTTPMETHOD&amp;#34;, &amp;#34;GET&amp;#34;)&#xA;responseBytes = handler.invoke(map,None)&#xA;response = String(responseBytes, &amp;#34;utf-8&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here the script is expecting a variable called “url” to be passed into the script from the invoking script. The response is set to the “response” variable, which can be used by the calling script to get the response data as a string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Service object methods in automation scripts</title>
      <link>https://bportaluri.click/post/2019/12/service-methods-automation-scripts/</link>
      <pubDate>Thu, 26 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/12/service-methods-automation-scripts/</guid>
      <description>&lt;p&gt;The &lt;em&gt;service&lt;/em&gt; object has been added in Maximo 7.6 script and is very useful in several scenarios. Here is a list of available methods. For more details refer to &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/com/ibm/tivoli/maximo/script/ScriptService.html&#34;&gt;this page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;logging&#34;&gt;Logging&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;getLogger&lt;/strong&gt;(loggerName)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_debug&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_debug&lt;/strong&gt;(logMsg, java.lang.Throwable t)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_error&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_error&lt;/strong&gt;(logMsg, java.lang.Throwable t)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_fatal&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_fatal&lt;/strong&gt;(logMsg, java.lang.Throwable t)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_info&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_info&lt;/strong&gt;(logMsg, java.lang.Throwable t)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_warn&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log_warn&lt;/strong&gt;(logMsg, java.lang.Throwable t)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;log&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;logError&lt;/strong&gt;(logMsg)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;raise-errors-and-warnings&#34;&gt;Raise errors and warnings&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;error&lt;/strong&gt;(grp, key)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;error&lt;/strong&gt;(grp, key, params)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;setWarning&lt;/strong&gt;(warnGrpVal, warnKeyVal, warnparams)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;yesnocancel-dialog&#34;&gt;Yes/No/Cancel dialog&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;yncerror&lt;/strong&gt;(grp, java.lang.String key)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;yncerror&lt;/strong&gt;(grp, java.lang.String key, params)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;yncuserinput&lt;/strong&gt;()&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;integration&#34;&gt;Integration&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;httpget&lt;/strong&gt;(url)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;httpget&lt;/strong&gt;(url, user, pass)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;httpgetasbytes&lt;/strong&gt;(url, user, pass)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;httppost&lt;/strong&gt;(url, data)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;httppost&lt;/strong&gt;(url, user, pass, data)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;httppostasbytes&lt;/strong&gt;(url, user, pass, byte[] data)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeChannel&lt;/strong&gt;(channelName)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeEndpoint&lt;/strong&gt;(endPointName, metaData, byte[] data)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeEndpoint&lt;/strong&gt;(endPointName, metaData, data)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;wsinteraction&lt;/strong&gt;(interactionName)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;raiseSkipTransaction&lt;/strong&gt;()&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;invoke-scripts-and-workflows&#34;&gt;Invoke scripts and workflows&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeScript&lt;/strong&gt;(scriptName)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeScript&lt;/strong&gt;(scriptName, context)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;invokeWorkflow&lt;/strong&gt;(wfName)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;other-methods&#34;&gt;Other methods&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;getMbo&lt;/strong&gt;()&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;getMboName&lt;/strong&gt;()&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;getScriptName&lt;/strong&gt;()&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;getProperty&lt;/strong&gt;(propName)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Maximo 7.6 Scripting</title>
      <link>https://bportaluri.click/post/2019/11/maximo-76-scripting/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-76-scripting/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt; is a great source of information but it has been released only in PDF format so it&amp;rsquo;s poorly indexed by Google. I have split it in small articles and shared here in order to be easily searched over the internet.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/12/maximo-scripting-library-scripts.html&#34;&gt;Library Scripts&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-warnings-and-errors.html&#34;&gt;Warnings and Errors&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-yes-no-cancel-dialog.html&#34;&gt;Yes/No/Cancel dialog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-before-after-save-commit.html&#34;&gt;Before Save, After Save, After Commit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-controlling-mbo-duplicate.html&#34;&gt;Controlling Mbo duplicate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-can-delete-add-object-launch-point.html&#34;&gt;CanDelete/CanAdd Object Launch Point&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-cron-tasks.html&#34;&gt;Cron Tasks&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-validation-virtual-nonpersistent-mbos.html&#34;&gt;Validation of non-persistent MBOs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-the-mbo-add-method.html&#34;&gt;The mbo.add() method&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bportaluri.com/2019/11/maximo-scripting-mmi.html&#34;&gt;MMI - Maximo Management Interface&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Before Save, After Save, After Commit</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-before-after-save-commit/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-before-after-save-commit/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo 7.5 scripting supported only the “Before Save” events in the Object Launchpoint. Although that is the most common place where we do customizations, we often see the need to attach some customizations at the after save and after commit events - mostly when we are doing some actions that need to be done after the Mbo has been saved or committed. &lt;strong&gt;After save&lt;/strong&gt; is the phase when the Mbo’s sql statement (insert/update/delete) has been fired, but the commit has not happened. &lt;strong&gt;After commit&lt;/strong&gt; stage happens when the Mbo in the transaction has been committed i.e. the database commit has been successfully executed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - CanDelete/CanAdd Object Launch Point</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-can-delete-add-object-launch-point/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-can-delete-add-object-launch-point/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can control whether we can add or delete a Mbo using scripting Object Launchpoint “Allow Object Deletion” and “Allow Object Creation”.&lt;/p&gt;&#xA;&lt;h3 id=&#34;can-add&#34;&gt;Can Add&lt;/h3&gt;&#xA;&lt;p&gt;This is an Object Launch Point - &amp;ldquo;Allow Object Creation&amp;rdquo; where you can control whether you can add a new Mbo, given the current state of the system. This point pairs up with the canAdd callback that we have in the MboSet framework.&lt;br&gt;&#xA;Lets take a use case where we want to validate that a POLINE can be added to a PO only when the PO has the vendor information set.&lt;br&gt;&#xA;The script code to do that is shown below:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Controlling Mbo duplicate</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-controlling-mbo-duplicate/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-controlling-mbo-duplicate/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Say we want to hold the reference of work order from which we created (copied from) a new work order. We would create a custom attribute called “copiedfrom” in the WORKORDER object. We would then need to customize the duplicate process of the Workorder to store the “wonum” of the original workorder in the “copiedfrom” attribute of the newly duplicated mbo. To do this, we will create a vanilla script with the name .DUPLICATE. For example in this case we will name it &lt;em&gt;WORKORDER.DUPLICATE&lt;/em&gt; to intercept the duplicate event. The name .DUPLICATE will intercept the duplicate event for the mbo named. We will have 2 implicit variables - &lt;em&gt;mbo&lt;/em&gt; and &lt;em&gt;dupmbo&lt;/em&gt; to leverage in this script. The &lt;em&gt;mbo&lt;/em&gt; variable will point to the original mbo and the &lt;em&gt;dupmbo&lt;/em&gt; will point to the newly duplicated mbo. We can now set the “copiedfrom” attribute using the script code below.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Cron Tasks</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-cron-tasks/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-cron-tasks/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Starting 76 we can write scripts for cron tasks too. It follows the same principle as the endpoint handler. We have a cron class - com.ibm.tivoli.maximo.script.ScriptCrontask that helps achieve&lt;br&gt;&#xA;this. We need to register that class as a new crontask in the crontask application. We then will create an instance of it and set the “scriptname” property to the name of the script that we want this task to run. Next we need to set the schedule and last but not the least - need to define the&lt;br&gt;&#xA;script. We are then good to go running this newly defined script with the crontasks. It is no different than any other crontasks and you can activate/deactivate the task or change the schedule as you would do in any other cron task.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - MMI</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-mmi/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-mmi/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo Management Interface provides a set of apis (REST/JSON apis) that helps a system administrator gets some insights on the state of the maximo runtime. The root url for that api is:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;GET /maximo/oslc &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And then you can dive deeper into each server (cluster members) using the &lt;em&gt;/oslc/members&lt;/em&gt; api.&lt;br&gt;&#xA;We provide a bunch of apis that can help you introspect the servers. But of course we do not have all the apis that you will ever need. Fortunately there is a easy way to dynamically add these apis using automation scripts. Below I will provide a sample use case (a real one) that needed us to leverage that feature. Say you need to find out the servers locale as you trying to debug some locale related issue. You can quickly write up a automation script and serve it up as an MMI api using the MMI app - available from the Logging app action in Maximo - Monitor Environment Information. One of the cool aspects of MMI apis being - it gets distributed in every member server and using the MMI api framework - one can invoke these scripted apilets on each server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - The mbo.add() method</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-the-mbo-add-method/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-the-mbo-add-method/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;It’s a common thing to conditionally set some defaults when a new mbo gets added. We have so far leveraged the Object Launchpoint Init event to do that. We would need to check for onadd flag there to make sure we are adding a new mbo and then set the attribute values.&lt;/p&gt;&#xA;&lt;p&gt;Another way to do that would be to create a script named &lt;strong&gt;&lt;em&gt;.ADD&lt;/em&gt;&lt;/strong&gt;. This will automatically add the script to the “add” callback right after the mbo add method execution has happened and right before the init() method gets called. You can use this script to now set default values conditionally. A sample script - ASSET.ADD shows how to default &lt;em&gt;installdate&lt;/em&gt; attribute to current date only when the asset type is PUMP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Validation of non-persistent MBOs</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-validation-virtual-nonpersistent-mbos/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-validation-virtual-nonpersistent-mbos/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Adding validation to the virtual (aka Nonpersistent) mbos (on execute 7609 feature).&lt;/p&gt;&#xA;&lt;p&gt;In this sample we are going use the change status dialog from the Asset Application to validate if the memo is filled in when the Asset status is set to BROKEN.&lt;/p&gt;&#xA;&lt;p&gt;We will write a Object launch point script – MEMOREQD, which will validate on OK button press of the dialog that memo is required for status BROKEN. The event will be “save/add”. This will map to the “execute” call back for non-persistent MBOs. The object name would be ASCHANGESTATUS. We used Python for this sample.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Warnings and Errors</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-warnings-and-errors/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-warnings-and-errors/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the Maximo 76 Scripting Features guide.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo errors in 7.5 version used to get done by setting errorgroup, errorkey and params variables (full example &lt;a href=&#34;http://maximoscripting.stroske.de/maximo-messages-in-jython/&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;woPriority = mbo.getInt(&amp;#34;WOPRIORITY&amp;#34;)&#xA;if woPriority &amp;gt; 50:&#xA;    # Raise an error using a message&#xA;    errorgroup = &amp;#34;workorder&amp;#34;&#xA;    errorkey = &amp;#34;invalidPrio&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Setting those did not stop the execution, as the execution will continue till the end of that script and then it will check the flags and throw the error. Often this may not be the expected behavior. To fix this issue, in 7.6 the global “service” variable can be used to throw errors and warnings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Scripting - Yes/No/Cancel dialog</title>
      <link>https://bportaluri.click/post/2019/11/maximo-scripting-yes-no-cancel-dialog/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/maximo-scripting-yes-no-cancel-dialog/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is an excerpt from the &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20603&#34;&gt;Maximo 76 Scripting Features guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;YNC (Yes, No, Cancel) interactions can now be implemented using automation scripts. We need to do some prep work before writing the script. First we need to define a message that support the YNC interaction. Make sure you have the message as informational (I) and support the Yes and No buttons.&lt;/p&gt;&#xA;&lt;p&gt;The use case below launches a yes/no dialog when the priority is set to 1. It asks the user if the he/she wants to set a default vendor for this. If the user select “yes” the script will set the default vendor A0001 and will mark the vendor field as required. If the user selects “no” vendor is marked as not required.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM Maximo Roadmap - September 2019</title>
      <link>https://bportaluri.click/post/2019/11/ibm-maximo-roadmap-201909/</link>
      <pubDate>Sat, 02 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/11/ibm-maximo-roadmap-201909/</guid>
      <description>&lt;p&gt;Here is the IBM Maximo product roadmap (September 2019).&lt;/p&gt;&#xA;&lt;p&gt;Trends are: UI modernization, mobility (Anywhere and Work Centers), APM (asset Performance Management), inventory optimization, Cognos analytics&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://community.ibm.com/community/user/internetofthings/viewdocument/on-demand-evolving-with-maximo-ent?CommunityKey=3d7261ae-48f7-481d-b675-a40eb407e0fd&amp;amp;tab=librarydocuments&amp;amp;_zs=9I7MX&amp;amp;_zl=gH4t1&#34;&gt;&lt;strong&gt;View the Webcast&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/09/Webinar-Maximo-Roadmap-Webcast-Slides-9.25.19-.pdf&#34;&gt;Download the PDF&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;iframe src=&#34;//www.slideshare.net/slideshow/embed_code/key/3EwA6NGqqsA77O&#34; width=&#34;640&#34; height=&#34;400&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; scrolling=&#34;no&#34; style=&#34;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&#34; allowfullscreen&gt;&lt;/iframe&gt;</description>
    </item>
    <item>
      <title>Special automation scripts .NEW .SAVE .DUPLICATE</title>
      <link>https://bportaluri.click/post/2019/10/automation-scripts-new-save-duplicate/</link>
      <pubDate>Tue, 22 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/10/automation-scripts-new-save-duplicate/</guid>
      <description>&lt;p&gt;I want to share a small trick I have learned from &lt;a href=&#34;https://www.linkedin.com/posts/stephen-hume-8570003_4th-presentation-from-maxtech-phoenix-activity-6586968215723868160-odTp/&#34;&gt;this presentation&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It is an undocumented feature of Automation Scripts that will automatically launch a script based on a special naming convention.&lt;/p&gt;&#xA;&lt;p&gt;For example if you want to run a script each time a ASSET object is saved you just have to create an automation script (without a Launch Point) and call it &lt;em&gt;ASSET.SAVE&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There are just three events that can be used:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Search for specific workflow actions</title>
      <link>https://bportaluri.click/post/2019/10/search-workflow-actions/</link>
      <pubDate>Tue, 08 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/10/search-workflow-actions/</guid>
      <description>&lt;p&gt;Sometime you have a complex workflow with many nodes. In these situations is not always easy to troubleshoot an issue or to modify the workflow for a changing business need.&lt;/p&gt;&#xA;&lt;p&gt;For example we may have several nodes in the workflow setting the work order status to CANC. We know that we use the WO CANC action in many places in the workflow but we want to be sure to update all the references to this action.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding People, User, Labor, Craft, etc.</title>
      <link>https://bportaluri.click/post/2019/10/people-user-labor-craft/</link>
      <pubDate>Sun, 06 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/10/people-user-labor-craft/</guid>
      <description>&lt;p&gt;Maximo has several interrelated objects People, Person Group, Users, Labor, Craft, Qualifications, etc. Sometimes is difficult to understand the real differences between them. In this post I will provide a quick overview of these concepts. For more details you can refer to this excellent &lt;a href=&#34;https://maximosecrets.com/2018/09/25/maximo-application-maps-8-of-9-resources/&#34;&gt;Maximo Secrets application Map&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;people&#34;&gt;People&lt;/h4&gt;&#xA;&lt;p&gt;A &lt;strong&gt;person record contains basic information about an individual&lt;/strong&gt;: name, address, email, phone, and other generic information. Persons are tied to Calendar and can have planned absences.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Implement a Refresh List button</title>
      <link>https://bportaluri.click/post/2019/10/implement-refresh-list-button-maximo/</link>
      <pubDate>Sat, 05 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/10/implement-refresh-list-button-maximo/</guid>
      <description>&lt;p&gt;We all know IBM Maximo is not a monitoring console and has no auto-refresh feature in the start center or in the applications. However, in some situations, we may need a Refresh button to reload the content of a table in a Maximo application.&lt;/p&gt;&#xA;&lt;p&gt;In this example I have added a button to refresh the Asset History tab in the Locations application.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/refresh-table-button.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/refresh-table-button-512x240.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This little customization does not require Java or automation scripts. It is just the button definition in the application with a small trick.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Personal email signature in Communication Template</title>
      <link>https://bportaluri.click/post/2019/10/personal-email-signature-in-communication-template/</link>
      <pubDate>Tue, 01 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/10/personal-email-signature-in-communication-template/</guid>
      <description>&lt;p&gt;A very useful feature of Maximo is the ability to send emails to recipients from many applications like Work Order Tracking or Service Requests. The &lt;strong&gt;&lt;em&gt;Create Communication&lt;/em&gt;&lt;/strong&gt; action can be used to fill the email data (To, CC, BCC, Subject, Message , attachments). In this context it is very useful to have define Communication Templates that will automatically fill out the elements of the email.&lt;/p&gt;&#xA;&lt;p&gt;A common requirement is to &lt;strong&gt;automatically add a personal signature to the bottom of the mail&lt;/strong&gt; so that people receiving the email can clearly understand who is sending the email.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lookup not working in Advanced Search dialog</title>
      <link>https://bportaluri.click/post/2019/09/lookup-not-working-in-advanced-search-dialog/</link>
      <pubDate>Wed, 25 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/09/lookup-not-working-in-advanced-search-dialog/</guid>
      <description>&lt;p&gt;Today I faced an interesting problem. My customer asked to be able to search work orders with specific values in one of the custom fields I have added few weeks ago to the Work Order Tracking application. Easy I said. I know I just need to add that custom fields in the &amp;lsquo;searchmore&amp;rsquo; dialog of the WOTRACK application. However, when I added the new custom field to the Advanced Search dialog the lookup was displaying an empty list.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to correctly define a Table Domain</title>
      <link>https://bportaluri.click/post/2019/09/table-domain-list-validation-where-clause/</link>
      <pubDate>Tue, 03 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/09/table-domain-list-validation-where-clause/</guid>
      <description>&lt;p&gt;Have you ever wondered what&amp;rsquo;s the difference between &amp;lsquo;Validation Where Clause&amp;rsquo; and &amp;lsquo;List Where Clause&amp;rsquo; in the Maximo Table Domain definition dialog?&lt;/p&gt;&#xA;&lt;p&gt;I believe this is &lt;em&gt;&lt;strong&gt;one of the most common misused features in Maximo&lt;/strong&gt;&lt;/em&gt;. I have see so many times tables domains defined in the wrong way. Let me show a good example of a built-in table domain.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/09/table-domain.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/table-domain-1-512x295.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The ACTIVEUSER domain is used to allow the selection of an active user in the Cron Tasks application. Here are the domain details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Script to run report and save as attachment</title>
      <link>https://bportaluri.click/post/2019/09/script-run-report-save-as-attachment/</link>
      <pubDate>Mon, 02 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/09/script-run-report-save-as-attachment/</guid>
      <description>&lt;p&gt;One of my customers asked me to take a kind of snapshot of work orders at a specific point of the workflow to keep track of special approvals and exact situation of the approved record.&lt;/p&gt;&#xA;&lt;p&gt;I decided to implement such requirement through the implementation of an automation script to generate a BIRT report automatically and attach it the work order. I my scenario I have triggered it from the workflow but it can be also triggered from an escalation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo escalations demystified (3/3) Monitoring execution</title>
      <link>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-3-monitoring/</link>
      <pubDate>Fri, 30 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-3-monitoring/</guid>
      <description>&lt;p&gt;In the two previous posts (&lt;a href=&#34;https://bportaluri.com/2019/08/maximo-escalations-demystified-1.html&#34;&gt;first&lt;/a&gt;, &lt;a href=&#34;https://bportaluri.com/2019/08/maximo-escalations-demystified-2-3-performances-and-the-repeat-option.html&#34;&gt;second&lt;/a&gt;) about escalations we have seen what are escalations and how to tune them. In this post will give you some hints bout how to monitor escalation execution.&lt;br&gt;&#xA;We know that escalations are background tasks to execute actions on a specific set of records. Some of these actions may be crucial for maintenance operations so it is very important to monitor the execution of such background tasks and alert the Maximo system administrator in case of failures.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo escalations demystified (2/3) Performances and the &#39;repeat&#39; option</title>
      <link>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-2-3-performances-and-the-repeat-option/</link>
      <pubDate>Tue, 27 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-2-3-performances-and-the-repeat-option/</guid>
      <description>&lt;p&gt;In our first &lt;a href=&#34;https://bportaluri.com/2019/08/maximo-escalations-demystified-1.html&#34;&gt;Maximo escalations demystified&lt;/a&gt; post I have described the general functionality of Escalations. We will now dig into some details that will help you using this powerful feature at its best.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-repeat-flag&#34;&gt;The Repeat flag&lt;/h2&gt;&#xA;&lt;p&gt;When defining an escalation you always have to create an escalation point and then you can assign actions and communications to run. The &amp;lsquo;repeat flag&amp;rsquo; have a somewhat strange meaning that is described in the official documentation in this way:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling a Custom Dialog using Automation Scripts</title>
      <link>https://bportaluri.click/post/2019/08/custom-dialog-using-automation-scripts/</link>
      <pubDate>Sun, 25 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/custom-dialog-using-automation-scripts/</guid>
      <description>&lt;p&gt;Automation scripts are undoubtedly a powerful feature but we all know there are some limitations. For example automation scripts cannot be used to handle user input in a custom dialog box. This is because the scripting engine runs in the businessobjects layer which is below the maximouiweb layer that can handle DataBeans and user interface events.&lt;/p&gt;&#xA;&lt;p&gt;However, leveraging the standard Maximo event, it is possible to circumvent this limitation.&lt;/p&gt;&#xA;&lt;p&gt;In this post I will explain how to display a custom dialog in the Work Order Tracking application to ask for user input and launch a script to take an action when the user press the OK button.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo escalations demystified (1/3)</title>
      <link>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-1/</link>
      <pubDate>Sun, 25 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/maximo-escalations-demystified-1/</guid>
      <description>&lt;p&gt;Escalations are one of the most common (and easiest) way we use to automate actions in Maximo. They are well known by Maximo specialists but there are some tips to better use them and some undocumented feature you may like to use.&lt;/p&gt;&#xA;&lt;p&gt;The simplest definition of an escalation is the following. &lt;strong&gt;An escalation is a mechanism to evaluate records and take actions when a record reaches a defined condition&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/escalation-basic.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/escalation-basic-512x260.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrate Maximo configurations with MxLoader</title>
      <link>https://bportaluri.click/post/2019/08/migrate-maximo-configurations-mxloader/</link>
      <pubDate>Thu, 22 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/migrate-maximo-configurations-mxloader/</guid>
      <description>&lt;p&gt;Have you ever struggled migrating configurations from Development to Test environment and then to Production?&lt;br&gt;&#xA;If the answer is yes, you are not alone. I think this is the one of the most common issues when managing multiple environments in medium-large Maximo projects.&lt;/p&gt;&#xA;&lt;p&gt;Keeping several Maximo environments in synch while ensuring a fast release cycle required in today&amp;rsquo;s projects is challenging and typically involves two flows.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The first flow of configuration changes is the classical release flow. You have to release configurations &lt;strong&gt;from Development to Production&lt;/strong&gt; through all the intermediate environments and entails the build of some sort of &amp;lsquo;configuration package&amp;rsquo; that is deployed on each environment.&lt;/li&gt;&#xA;&lt;li&gt;However, in the real world, all those environment will loose sync after some time so we need to realign back through the chain using a &lt;strong&gt;database cloning&lt;/strong&gt; procedure (backup and restore). This is a well known practice to rebuild a development environment ensuring all&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.click/wp-content/uploads/2019/08/Migrating-2BConfigurations-1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/Migrating-2BConfigurations-1-300x168.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>The hidden features of Work Logs</title>
      <link>https://bportaluri.click/post/2019/08/the-hidden-features-of-work-logs/</link>
      <pubDate>Fri, 09 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/the-hidden-features-of-work-logs/</guid>
      <description>&lt;p&gt;Work Logs are a very useful feature in Maximo and Control Desk products to allow users to keep notes of the progress of work.&lt;/p&gt;&#xA;&lt;p&gt;A very nice feature of work logs is that Maximo displays all work logs for the current record an related ones. Lets make an example. If there is a work log on a work order originated from a Service Request, Maximo will display both SR logs and Work Order logs in the Work Order Tracking application.&lt;br&gt;&#xA;In the example below we are in the Work Order Tracking application displaying work logs on work order 1019. The first work log has been added to the work order but the second one is attached to the originating service request 1214.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracking elapsed time in work order status history</title>
      <link>https://bportaluri.click/post/2019/08/tracking-elapsed-time-in-work-order/</link>
      <pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/tracking-elapsed-time-in-work-order/</guid>
      <description>&lt;p&gt;A common requirement from my clients is to track how much time work orders have been in each status. IBM Maximo already has the Work Order History dialog that displays the date and time of each status change. Unfortunately it may be not straightforward for a user to calculate the time spent in each step of the process or to develop a KPI to set processing time goals in your work management flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disable default attachment folder</title>
      <link>https://bportaluri.click/post/2019/08/disable-default-attachment-folder/</link>
      <pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/08/disable-default-attachment-folder/</guid>
      <description>&lt;p&gt;One of the fist lessons I have learned through all these years as Maximo consultant is that &lt;strong&gt;&lt;em&gt;every time there is a default value for a field the user will not change it&lt;/em&gt;&lt;/strong&gt;. A very common example of this is the Folder field of the Add Attachment dialog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/doclinks-1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/doclinks-1-512x241.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The value of this field will always default to the first folder available in alphabetical order. If we want to force the user to select the most appropriate folder for the attachment, then we have to remove that default value.&lt;br&gt;&#xA;The attribute we want to change is DOCLINKS.DOCTYPE. Unfortunately, setting a default value for this field in Database Configuration will not work (believe me I have tried) so we have use a more powerful feature to control the behavior of this attribute. The solution I have found is to use a very simple automation script. Here it is.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where was an asset located at a certain time in the past?</title>
      <link>https://bportaluri.click/post/2019/04/query-asset-location-history/</link>
      <pubDate>Fri, 26 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/04/query-asset-location-history/</guid>
      <description>&lt;p&gt;Maximo has a well known feature to display the history of where an asset was located. It is accessible from View Asset Move History from the Asset application.&lt;br&gt;&#xA;In the following example the asset DS01-A-002 was created in location DS01-S-SA-01 and then moved to other two locations.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/04/asset-move-history-new-1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/asset-move-history-new-1-512x245.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The data displayed in this dialog is stored in the ASSETTRANS database table.&lt;br&gt;&#xA;By querying this table we can answer questions like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Logging in automation scripts</title>
      <link>https://bportaluri.click/post/2019/04/logging-in-automation-scripts/</link>
      <pubDate>Wed, 03 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/04/logging-in-automation-scripts/</guid>
      <description>&lt;p&gt;I have to admit, I&amp;rsquo;m a big fan of automation scripts.&lt;br&gt;&#xA;Recent updates released with Maximo 7.6.0.9 have almost covered all the possible customization needs including library scripts, REST APIs, MIF processing, before/after save event. All the new features are well documented in &lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/02db2a84-fc66-4667-b760-54e495526ec1/page/03ad118c-6040-43dd-bc6d-d7a03510d135/attachment/1004fd2b-1b51-411e-8df0-a8b02ca86272/media/Scritping76Features%20%285%29.pdf&#34;&gt;this somewhat secret document&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;However whatever nice feature will be added in the next feature pack, we will never have a debugger like we have with Java and Eclipse. This could be a serious problem when you have to develop and maintain a complex set of scripts in your environment.&lt;br&gt;&#xA;The best way to mitigate such problem is to correctly use &lt;strong&gt;Maximo logging APIs&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Avoiding FetchResultStopLimit errors in Java or scripts</title>
      <link>https://bportaluri.click/post/2019/03/avoiding-fetchresultstoplimit-errors-in/</link>
      <pubDate>Mon, 18 Mar 2019 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2019/03/avoiding-fetchresultstoplimit-errors-in/</guid>
      <description>&lt;p&gt;Today I had to face an issue deleting a large set of records from a Maximo table using an automation script. My script was something like this.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mboSet = MXServer.getMXServer().getMboSet(&amp;#34;MYTABLE&amp;#34;, mbo.getUserInfo())mboSet.deleteAll()mboSet.save()&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unfortunately the table I had to purge (MYTABLE in the example) was having more than 5000 rows so when I launched the script I got the following error.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;BMXAA7387E - While attempting to retrieve 5001 of MYTABLE, the operation was terminated because the preset limit 5000 was exceeded for retrieving MYTABLE into a single set. Reduce the number of selected objects for the operation.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automation Script to reset user&#39;s Start Centers</title>
      <link>https://bportaluri.click/post/2018/11/automation-script-reset-users-start-center/</link>
      <pubDate>Wed, 28 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/11/automation-script-reset-users-start-center/</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;http://bportaluri.com/2012/11/how-to-reset-users-start-centers.html&#34;&gt;previous post&lt;/a&gt; I have explained how to force the reload of a the start center for a specific group of users.&lt;br&gt;&#xA;I have now developed a useful automation script that can be invoked from the Security Group application to automatically perform this task with just one click.&lt;br&gt;&#xA;Register the script as a Script with an Action Launch Point and link it to a sigoption and to a menuaction, toolbar icon or application button as described in &lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/adding_a_toolbar_button_in_an_application_for_an_automation_script?lang=zh_cn&#34;&gt;this post&lt;/a&gt; or &lt;a href=&#34;http://bportaluri.com/2014/06/invoke-action-when-button-is-pressed.html&#34;&gt;this one&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MTTx Terminology</title>
      <link>https://bportaluri.click/post/2018/09/mttx-terminology/</link>
      <pubDate>Fri, 28 Sep 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/09/mttx-terminology/</guid>
      <description>&lt;p&gt;When it comes to asset reliability measurement all the different MTTx acronyms start to appear but sometimes is not clear to everybody the exact meanings of these terms.&lt;br&gt;&#xA;In this post I want to give a very simple explanation of these reliability KPIs.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;MTTD&lt;/strong&gt; - Mean Time To Detect - How long it takes to discover a problem.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MTTK&lt;/strong&gt; - Mean Time to Know - How long it takes to understand the problem.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MTTR&lt;/strong&gt; - Mean Time To Repair - How long it takes to fix the problem.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MTTF&lt;/strong&gt; - Mean Time To Failure - Amount of time the system is available and operating. Also known as &amp;ldquo;uptime&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MTBF&lt;/strong&gt; - Mean Time Between Failures - Amount of time that elapses between one failure and the next.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;MTBF is the sum of MTTF and MTTR, the total time required for a device to fail and that failure to be repaired.&lt;br&gt;&#xA;MTBF = MTTR + MTTF&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to correctly handle synonym domains in automation script</title>
      <link>https://bportaluri.click/post/2018/09/synonym-domain-automation-script/</link>
      <pubDate>Thu, 27 Sep 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/09/synonym-domain-automation-script/</guid>
      <description>&lt;p&gt;We all know that Maximo allows the definition of new internal values for synonym domains. A common example is the LOCTYPE domain that defines the allowed values for the LOCATIONS.TYPE field.&lt;br&gt;&#xA;If we want to implement a special business logic for the OPERATING type of locations we can write something like this in our automation script.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;loctype = mbo.getString(&amp;#34;TYPE&amp;#34;)&#xA;if loctype==&amp;#34;OPERATING&amp;#34;:&#xA;  # do something....&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;However, if we define a new alias for the OPERATING type this script will not work as expected because it will not manage automatically the different internal values of the LOCTYPE domain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sending SMS from Maximo calling an external Web service</title>
      <link>https://bportaluri.click/post/2018/08/maximo-call-external-rest-api-sms/</link>
      <pubDate>Thu, 30 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/08/maximo-call-external-rest-api-sms/</guid>
      <description>&lt;p&gt;In my last project I had to implement a customization to send SMS messages using &lt;a href=&#34;http://developers.skebby.it/&#34;&gt;Skebby&lt;/a&gt;. The service APIs are obviously based on REST and JSON so I ended up writing an automation script to integrate Maximo with the Skebby service.&lt;br&gt;&#xA;In the process of writing the code I have faced (and solved) some interesting issues so the developed script is quite complex and is an interesting demonstration of several useful techniques:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disable automatic asset/location population in Work Order and Ticket applications</title>
      <link>https://bportaluri.click/post/2018/08/disable-automatic-asset-location/</link>
      <pubDate>Thu, 23 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/08/disable-automatic-asset-location/</guid>
      <description>&lt;p&gt;Maximo has a feature that automatically populates the asset when a user enters a location and viceversa. This is a feature may be useful for most clients but some other clients don’t like this behavior. Unfortunately Maximo does not have a built in switch to disable this.&lt;/p&gt;&#xA;&lt;p&gt;The best solution to solve the problem is to use an automation script with an attribute launch point.&lt;br&gt;&#xA;This is documented in &lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/turning_off_a_maximo_business_rule_an_example_from_work_order_tracking3?lang=en&#34;&gt;this post&lt;/a&gt; but i made few improvements to it.&lt;br&gt;&#xA;My script resets the asset only when the location has been changed and ASSETNUM is changing from null to a new value. This is because there is already a warning dialog when the asset is changed from another value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to restrict allowed status changes for workorders</title>
      <link>https://bportaluri.click/post/2018/08/restrict-allowed-status-changes/</link>
      <pubDate>Wed, 22 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2018/08/restrict-allowed-status-changes/</guid>
      <description>&lt;p&gt;Maximo has a predefined set of statuses for work orders that are defined in the WOSTATUS synonym domain. The values and their meaning are well documented in the &lt;a href=&#34;https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.0.9/com.ibm.mbs.doc/mbs_common/c_wo_status.html&#34;&gt;official documentation&lt;/a&gt;. Unfortunately the allowed state transitions are hardcoded in the &lt;em&gt;psdi.app.workorder.WOStatusHandler&lt;/em&gt; class and cannot be easily changed since they are defined as private arrays. Here is a brief summary of the allowed status changes.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;WAPPR&lt;/th&gt;&#xA;          &lt;th&gt;APPR&lt;/th&gt;&#xA;          &lt;th&gt;WSCH&lt;/th&gt;&#xA;          &lt;th&gt;WMATL&lt;/th&gt;&#xA;          &lt;th&gt;INPRG&lt;/th&gt;&#xA;          &lt;th&gt;COMP&lt;/th&gt;&#xA;          &lt;th&gt;CAN&lt;/th&gt;&#xA;          &lt;th&gt;CLOSE&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;WAPPR&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;APPR&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;WSCH&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;WMATL&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;INPRG&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;COMP&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Y&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;CAN&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;CLOSE&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;From status APPR you can set any target status.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to extract emails to notify users</title>
      <link>https://bportaluri.click/post/2017/10/extract-emails-notify-users/</link>
      <pubDate>Wed, 25 Oct 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/10/extract-emails-notify-users/</guid>
      <description>&lt;p&gt;There are several situation where you need to quickly notify a set of users sending them an email. These are few examples of such situations.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;There is a urgent maintenance activity to perform on Maximo that requires to enable the admin mode and logoff all the users.&lt;/li&gt;&#xA;&lt;li&gt;You are going to rollout an additional validation into an application that will affect the way technicians must enter data when closing work orders.&lt;/li&gt;&#xA;&lt;li&gt;An important event has appended (incident or critical problem) and you must alert people as soon as possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The built-in &lt;strong&gt;Bulletin Board application&lt;/strong&gt; often solves these problem that allows to broadcast information throughout your organization. You can specify an audience for a message, based on organization, site or person group. Messages will appear on the start centers and a notification icon will be displayed at the top of the window.&lt;br&gt;&#xA;Furthermore, the &amp;lsquo;Create Communication&amp;rsquo; action allows to send an email to the selected audience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security groups and application authorizations</title>
      <link>https://bportaluri.click/post/2017/08/security-groups-application-authorizations/</link>
      <pubDate>Fri, 04 Aug 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/08/security-groups-application-authorizations/</guid>
      <description>&lt;p&gt;We all know how flexible Security Groups are when dealing with user roles and granting application authorizations. However, flexibility often brings complexity.&lt;br&gt;&#xA;You have carefully designed user&amp;rsquo;s roles defining what applications and actions they are allowed to access in Maximo and implemented all using Security Groups application. The system goes live and after one or two years everything is messed up. Is too hard to check who has access to what and you no longer sure if the young electrician that was just hired 2 months ago has access to Database Configuration or Application Designer  :-)&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader now supports attachments</title>
      <link>https://bportaluri.click/post/2017/06/mxloader-attachments-doclinks/</link>
      <pubDate>Tue, 13 Jun 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/06/mxloader-attachments-doclinks/</guid>
      <description>&lt;p&gt;I have just implemented the capability to upload attachments straight from &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;MxLoader&lt;/a&gt;. This is in response to some requests on my blog and MxLoader support forum.&lt;/p&gt;&#xA;&lt;p&gt;Starting from Maximo 7.1.1.6 it is possible to import attachments to an object through MIF using Base64 encoding.&lt;br&gt;&#xA;MxLoader has the capability to read files from the filesystem, encode them in Base64 and upload them on Maximo. This can be done on any Maximo object that supports attachments but the integration object structure has to be modified to include the DOCLINK object.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is your Maximo database in good health?</title>
      <link>https://bportaluri.click/post/2017/06/maximo-performance-health-check/</link>
      <pubDate>Fri, 02 Jun 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/06/maximo-performance-health-check/</guid>
      <description>&lt;p&gt;We all know Maximo is a complex product. It has plenty of features and is very flexible but sometimes complex to manage especially when system performances are poor.&lt;br&gt;&#xA;A lot of things may affect the perceived performances of Maximo and it may be hard to have an overview of the entire system configuration.&lt;/p&gt;&#xA;&lt;p&gt;What are the largest tables in the database that may need archiving?&lt;br&gt;&#xA;Are database statistics updated to optimize database queries?&lt;br&gt;&#xA;How much data is stored for each site?&lt;br&gt;&#xA;Has the workload of system increased over the last years?&lt;br&gt;&#xA;What are the most heavy reports users execute?&lt;br&gt;&#xA;What are the most resources-consuming crontasks and escalations?&lt;br&gt;&#xA;How is the reports/crontasks/escalations workload spread across the day?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo REST APIs examples</title>
      <link>https://bportaluri.click/post/2017/04/maximo-rest-apis-examples/</link>
      <pubDate>Tue, 04 Apr 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/04/maximo-rest-apis-examples/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update April 2021 - This post describes the old REST APIs. A tutorial on the new APIs can be found &lt;a href=&#34;https://developer.ibm.com/technologies/iot/tutorials/develop-a-web-app-to-access-maximo-asset-data/&#34;&gt;here&lt;/a&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial I will show how easy it is to query and update data in Maximo using the Integration Framework (MIF) REST interface.&lt;/p&gt;&#xA;&lt;p&gt;To send REST calls you first need to setup an &lt;strong&gt;HTTP/REST client&lt;/strong&gt;. In this tutorial I will use a Google Chrome add-on called &lt;a href=&#34;https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo&#34;&gt;Advanced REST Client&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Load failure codes in Maximo with MxLoader</title>
      <link>https://bportaluri.click/post/2017/03/load-failure-codes-in-maximo/</link>
      <pubDate>Thu, 16 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/03/load-failure-codes-in-maximo/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;This is an old post that uses a legacy version of &lt;a href=&#34;https://bportaluri.com/?smd_process_download=1&amp;amp;download_id=20599&#34;&gt;MxLoader&lt;/a&gt; that only supports only OS service. For MAS Manage please refer to &lt;a href=&#34;https://bportaluri.com/2026/04/load-failure-codes-in-maximo-with-mxloader.html&#34;&gt;this post&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Creating and maintaining the hierarchy of failure codes in Maximo can be quite long and boring task using the standard Failure Codes application. The easiest and fastest way of importing Failure codes and the corresponding hierarchy is using &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;MxLoader&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The example described in this post is available in this tailored in &lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2017/03/MxLoader-5.6-FC.xlsm.zip&#34;&gt;this sample MxLoader file&lt;/a&gt;. Please download it before proceeding.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo keyboard shortcuts</title>
      <link>https://bportaluri.click/post/2017/02/maximo-keyboard-shortcuts/</link>
      <pubDate>Mon, 06 Feb 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/02/maximo-keyboard-shortcuts/</guid>
      <description>&lt;p&gt;You know IBM Maximo has a lot of fields and sometimes can be boring entering data. Here are some keyboard shortcuts that can ease the pain. I have highlighted in &lt;strong&gt;bold&lt;/strong&gt; the most common and useful ones.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tab&lt;/strong&gt; &amp;gt; The most important keyboard shortcut is the TAB key. It allows you to move across fields without using the mouse and also performs data validation and auto-completion.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Space&lt;/strong&gt; &amp;gt; Select or clear a check box.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Alt + F1&lt;/strong&gt; &amp;gt; Display field help for field in focus.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;There are few other useful shortcuts to move across applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo search operators</title>
      <link>https://bportaluri.click/post/2017/01/maximo-search-operators/</link>
      <pubDate>Sun, 29 Jan 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/01/maximo-search-operators/</guid>
      <description>&lt;p&gt;Maximo search features are quite advanced but often neglected. By using the advanced search techniques described in this post it is possible to find relevant records easier and faster.&lt;/p&gt;&#xA;&lt;h3 id=&#34;equal&#34;&gt;Equal&lt;/h3&gt;&#xA;&lt;p&gt;The equal &amp;lsquo;=&amp;rsquo; operator can be used to find only records that match that a word or number exactly. In other words &amp;lsquo;=&amp;rsquo; means &amp;ldquo;exact match&amp;rdquo;.&lt;br&gt;&#xA;Example: Enter =123 to find any records with the exact characters 123 in the field. (Search results would not include numbers such as 0123 or 1234AB. If you enter just 123, without the =, search results would include 0123 and 1234AB.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find inactive users in Maximo</title>
      <link>https://bportaluri.click/post/2017/01/find-inactive-users-in-maximo/</link>
      <pubDate>Wed, 18 Jan 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/01/find-inactive-users-in-maximo/</guid>
      <description>&lt;p&gt;Here is a quick SQL query you can use to find inactive users that haven&amp;rsquo;t logged into Maximo in the last 2 months.&lt;/p&gt;&#xA;&lt;p&gt;DB2&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from maxuserwhere status=&amp;#39;ACTIVE&amp;#39;and sysuser=0and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult=&amp;#39;LOGIN&amp;#39; and attemptdate&amp;gt;(current date-60 DAYS))order by userid;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Oracle&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from maxuserwhere status=&amp;#39;ACTIVE&amp;#39;and sysuser=0and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult=&amp;#39;LOGIN&amp;#39; and attemptdate&amp;gt;sysdate-60)order by userid;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;SQL Server&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select * from maxuserwhere status=&amp;#39;ACTIVE&amp;#39;and sysuser=0and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult=&amp;#39;LOGIN&amp;#39; and attemptdate&amp;gt;getdate()-60)order by userid;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Obviously, the above query works only if you have enabled the login tracking feature in Security Groups - Security Controls.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long Descriptions in Maximo</title>
      <link>https://bportaluri.click/post/2017/01/long-descriptions-in-maximo/</link>
      <pubDate>Tue, 17 Jan 2017 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2017/01/long-descriptions-in-maximo/</guid>
      <description>&lt;p&gt;Long descriptions in Maximo are a special fields meant to store long text. Unlike all the other fields they are stored in a dedicated table called LONGDESCRIPTION. Tables link to the LONGDESCRIPTION table through their unique ID and the long description attribute is stored in a CLOB field.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s change the long description of the work order &amp;lsquo;1000&amp;rsquo; with few lines of text.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/ld1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/ld1-512x198.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If we run the following SQL we can retrieve the internal ID of the work order.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving Assets and Locations drilldown dialog</title>
      <link>https://bportaluri.click/post/2016/12/improving-assets-locations-drilldown/</link>
      <pubDate>Wed, 28 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/12/improving-assets-locations-drilldown/</guid>
      <description>&lt;p&gt;The Assets/Locations drilldown dialog is one of the most longstanding and criticized features of Maximo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/asset-drilldown.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/asset-drilldown-512x262.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This dialog is almost unchanged from release 6.1 and definitely lacks some important capabilities to provide a unified view of assets and location hierarchy. However, we can make few minor improvements to the standard dialog to make it slightly better.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Increase size of the dialog&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I think the most usability improvement is to increase the size of the dialog allowing to see more elements in the drilldown. The default size is definitely too small for the typical modern screen resolutions.&lt;br&gt;&#xA;Unfortunately there is no system setting for this and we have to tweak the dialog definition in the library.&lt;br&gt;&#xA;Open the Application Designer and select the Export System XML action from the menu. Click on the small arrow for the LIBRARY row to export the file. Open the XML file with a good text editor and search for &lt;em&gt;psdi.webclient.beans.common.DrilldownTreeBean&lt;/em&gt;.&lt;br&gt;&#xA;There are two occurrences of this string in the file inside the &amp;lsquo;&lt;em&gt;drilldown&lt;/em&gt;&amp;rsquo; dialog definition. One is for the Locations tab and one is for Assets tab.&lt;br&gt;&#xA;Change the &lt;em&gt;height&lt;/em&gt; attribute increasing it from the default 150 to 350 or 400.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracking changes using Audit feature</title>
      <link>https://bportaluri.click/post/2016/11/tracking-changes-using-audit-feature/</link>
      <pubDate>Tue, 29 Nov 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/11/tracking-changes-using-audit-feature/</guid>
      <description>&lt;p&gt;A common requirement in Maximo is to track changes made by users on a specific object (database table). In Maximo terms this is called &amp;lsquo;Audit Tracking&amp;rsquo;.&lt;br&gt;&#xA;In this post I will describe how to enable audit tracking for a specific set of attributes of an object and how to display the updates in a separate tab of the corresponding application.&lt;br&gt;&#xA;I will use the Assets application for this tutorial and here is the final outcome I have achieved.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Watson IoT MQTT APIs walkthrough</title>
      <link>https://bportaluri.click/post/2016/06/watson-iot-mqtt-apis-walkthrough-tutorial/</link>
      <pubDate>Fri, 03 Jun 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/06/watson-iot-mqtt-apis-walkthrough-tutorial/</guid>
      <description>&lt;p&gt;After several experiments with IBM Watson IoT Platform I have decided to take a step back and play MQTT manually to really understand how it works. In this post I will walk through my experiments with of the Watson IoT Platform MQTT messaging API for devices, applications and gateways.&lt;/p&gt;&#xA;&lt;h4 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h4&gt;&#xA;&lt;p&gt;First of all you need an account on &lt;a href=&#34;http://www.ibm.com/internet-of-things/&#34;&gt;IBM Watson IoT Platform&lt;/a&gt; on &lt;a href=&#34;https://bluemix.net/&#34;&gt;Bluemix&lt;/a&gt;. In all cases you need to create your own &lt;a href=&#34;https://new-console.ng.bluemix.net/catalog/services/internet-of-things-platform/&#34;&gt;Internet of Things Platform service&lt;/a&gt; and create your own device type and device. I suggest you to follow the &lt;a href=&#34;http://m2m.demos.ibm.com/iotstarter.html&#34;&gt;IoT Starter&lt;/a&gt; tutorial if you are on familiar with Watson IoT.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install Kura on Raspberry PI</title>
      <link>https://bportaluri.click/post/2016/05/install-kura-on-raspberry-pi/</link>
      <pubDate>Sat, 07 May 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/05/install-kura-on-raspberry-pi/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://4.bp.blogspot.com/-jqE1nO1QkBE/Vy0D3w55mtI/AAAAAAAAU7M/XFJgtntBK1csmHgbZO2KkVaKIJWhYqehwCLcB/s1600/kura.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/kura.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Eclipse Kura is an Open Source project that provides a platform for building IoT gateways. It is a smart application container that enables remote management of such gateways and provides a wide range of APIs for allowing you to write and deploy your own IoT application. Kura runs on top of the Java Virtual Machine (JVM) and leverages OSGi, a dynamic component system for Java, to simplify the process of writing reusable software building blocks. Kura APIs offer easy access to the underlying hardware including serial ports, GPS, watchdog, USB, GPIOs, I2C, etc. It also offer OSGI bundle to simplify the management of network configurations, the communication with IoT servers, and the remote management of the gateway.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raspberry PI installation and first setup</title>
      <link>https://bportaluri.click/post/2016/05/raspberry-pi-installation-and-first-setup/</link>
      <pubDate>Fri, 06 May 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/05/raspberry-pi-installation-and-first-setup/</guid>
      <description>&lt;p&gt;In this post I will describe how to install the Raspbian operating system on a Raspberry PI 2 or 3 and some basic configuration settings to start your IoT projects.&lt;br&gt;&#xA;The described procedure will not require a display and keyyboard and can be performed just connecting the PI to your router using a LAN cable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://1.bp.blogspot.com/-bkVf8bIvRpw/VyxPy51ZQsI/AAAAAAAAU64/Dym6pso0LKAi84oiDvwVIGbabXfLy1YlACLcB/s1600/raspberry-pi-3.JPG&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/raspberry-pi-3.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Raspbian OS installation&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;First of all you need to download the latest Raspbian OS image from &lt;a href=&#34;https://www.raspberrypi.org/downloads/raspbian/&#34;&gt;here&lt;/a&gt;. This procedure is tested with Raspbian Jessie with Pixel (version January 2017).&lt;br&gt;&#xA;If you are running on &lt;strong&gt;Windows&lt;/strong&gt;, download the Win32DiskImager utility from &lt;a href=&#34;http://sourceforge.net/projects/win32diskimager/&#34;&gt;here&lt;/a&gt; and use it to flash the ISO image to the SD card. Refer to &lt;a href=&#34;https://www.raspberrypi.org/documentation/installation/installing-images/windows.md&#34;&gt;this guide&lt;/a&gt; for more details. If you are running on &lt;strong&gt;Linux&lt;/strong&gt; or &lt;strong&gt;MaxOS&lt;/strong&gt; look &lt;a href=&#34;https://www.raspberrypi.org/documentation/installation/installing-images/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IoT and IIoT</title>
      <link>https://bportaluri.click/post/2016/05/industrial-internet-of-things-iot-iiot/</link>
      <pubDate>Wed, 04 May 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/05/industrial-internet-of-things-iot-iiot/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://1.bp.blogspot.com/-js5LEgv4vg4/Vyps81VVdPI/AAAAAAAAU50/oNqRmg0odAEteTsIy117BGxwFxa0coIbQCLcB/s1600/2026097721.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/2026097721.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Internet of Things&lt;/strong&gt; (IoT) is one of the most significant trends in technology today. A melding of innovations in the fields of computing and communication, IoT and its “smart” devices are poised to revolutionize not only user-machine interaction but also the way in which machines engage with one another.&lt;/p&gt;&#xA;&lt;p&gt;IoT is now permeating in every industry energy, healthcare, automotive, and other industries are beginning to grapple with the &lt;strong&gt;Industrial of Internet of Things&lt;/strong&gt; (IIoT), where devices such as sensors, robots, mixing tanks, and insulin pumps are becoming increasingly more connected.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader now supports Web Services</title>
      <link>https://bportaluri.click/post/2016/05/mxloader-now-supports-web-services/</link>
      <pubDate>Tue, 03 May 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/05/mxloader-now-supports-web-services/</guid>
      <description>&lt;p&gt;By default &lt;a href=&#34;https://bportaluri.com/mxloader&#34;&gt;MxLoader&lt;/a&gt; uses plain Object Services through HTTP calls. These services are automatically exposed when an Object Structure is created in Maximo. Using Web Services is possible to have more control over data defining processing classes, user exit classes, XSL maps, and processing rules.&lt;/p&gt;&#xA;&lt;p&gt;MxLoader 5.1 now allows to use Web Services as well. To enable MxLoader to work with Web Services you need two settings in the Config sheet:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Display bullettin board messages opened by default</title>
      <link>https://bportaluri.click/post/2016/04/display-bullettin-board-messages-opened/</link>
      <pubDate>Tue, 19 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/04/display-bullettin-board-messages-opened/</guid>
      <description>&lt;p&gt;A common requirement is to display the bulletin board messages in a more visible way.&lt;br&gt;&#xA;A simple solution is to display the formatted message opened by default.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/bb.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/bb-512x127.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To achieve this you can edit the following JSP file: &lt;/p&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMP&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;\applications\maximo\maximouiweb\webmodule\webclient\components\bulletinboard.jsp&lt;/p&gt;&#xA;&lt;p&gt;On my Maximo 7.5.0.6 i have this line of code at row 335:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;style=&amp;#34;display:none;overflow:visible&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you change the display attribute to &amp;lsquo;inline&amp;rsquo; it will show the full message without clicking.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;style=&amp;#34;display:inline;overflow:visible&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Rebuild and redeploy maximo.ear file and you are done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Restricting status changes in Maximo Anywhere</title>
      <link>https://bportaluri.click/post/2016/04/restricting-status-changes-in-maximo/</link>
      <pubDate>Tue, 05 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/04/restricting-status-changes-in-maximo/</guid>
      <description>&lt;p&gt;A common requirement in Maximo projects is to restrict work order status changes based on some internal business rules. This can be achieved on Maximo with the technique described in &lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/maximo_7_5_restricting_the_list_of_available_statuses_based_on_current_record_status?lang=en&#34;&gt;this article&lt;/a&gt;.&lt;br&gt;&#xA;Unfortunately the rules set in the WOSTATUS domain on the server are not applied automatically to the Anywhere mobile applications so we need to customize the mobile apps to follow the same rules.&lt;/p&gt;&#xA;&lt;p&gt;Lets first analyze how the status changes are managed in the Work Execution app.&lt;br&gt;&#xA;The &lt;em&gt;&lt;strong&gt;application.business.WorkOrderStatusHandler&lt;/strong&gt;&lt;/em&gt; script implements a state machine where the matrix of allowed status changes are defined (state machine).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Remove the 200 record limit in Anywhere simulator</title>
      <link>https://bportaluri.click/post/2016/03/remove-200-record-limit-in-anywhere/</link>
      <pubDate>Fri, 25 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/03/remove-200-record-limit-in-anywhere/</guid>
      <description>&lt;p&gt;The mobile app simulator is a great tool when developing mobile applications with Maximo Anywhere. Obviously it does not replace a good test on the real device but it is essential during development especially when the browser development tools are used to inspect and debug the app.&lt;br&gt;&#xA;One limitation of the simulator is the 200 records limit when downloading lookup data so the following message is displayed: &lt;em&gt;When running in a browser, a maximum of 200 records are downloaded per lookup.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Anywhere Simulator issues with Google Chrome</title>
      <link>https://bportaluri.click/post/2016/03/maximo-anywhere-simulator-issues-with/</link>
      <pubDate>Thu, 24 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2016/03/maximo-anywhere-simulator-issues-with/</guid>
      <description>&lt;p&gt;You know that Google Chrome is the preferred browser for previewing mobile apps when developing with Maximo Anywhere. However, it seems that Google Chrome automatic updates are a big pain because sometime the simulator stops working correctly.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2016/03/MaximoAnywheresimulator1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/MaximoAnywheresimulator1-512x414.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I know there were at least 3 problems caused by a Chrome update:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Menu is not displayed correctly&lt;/li&gt;&#xA;&lt;li&gt;Mobile app is not responding to clicks&lt;/li&gt;&#xA;&lt;li&gt;Javascript error: win.doc.getCSSCanvasContext is not a function&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I these situations you can always open a PMR to get a fix from IBM but I believe there is a better strategy. &lt;strong&gt;Use Chromium !&lt;/strong&gt; It is the OpenSource version of Chrome sharing the same code base but with no automatic update. You can download it from here: &lt;a href=&#34;https://sourceforge.net/projects/crportable/files/?source=navbar&#34;&gt;https://sourceforge.net/projects/crportable/files/?source=navbar&lt;/a&gt; I&amp;rsquo;m currently using Cromium 44.0.2383.0 and I no longer have to worry for a bad update.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overview of Maximo Industry Solutions and Extensions</title>
      <link>https://bportaluri.click/post/2015/11/overview-maximo-industry-solutions-extensions/</link>
      <pubDate>Fri, 20 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/11/overview-maximo-industry-solutions-extensions/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;This page has been published in 2015 and contains obsolete info.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;After 2 years of blogging on MaximoDev and more than 100 posts to explain how to configure and customize Maximo I want to spend few minutes to explain how to NOT customize Maximo. Customizing Maximo may be challenging and fun but should always taken carefully because it can inject problems and generate additional costs and risks when upgrading.&lt;/p&gt;&#xA;&lt;p&gt;One of the most interesting features of Maximo is its ecosystem of extensions, add-ons, integration modules and industry solutions. This ecosystem is populated by many IBM and non-IBM products and solutions that allows to extend the product&amp;rsquo;s core features. The following picture describes the IBM portfolio of Maximo extensions and industry solutions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Avoiding Java classes conflicts using a_customer.xml file</title>
      <link>https://bportaluri.click/post/2015/11/java-classes-conflict-customer-xml/</link>
      <pubDate>Fri, 13 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/11/java-classes-conflict-customer-xml/</guid>
      <description>&lt;p&gt;Consider this scenario (which I came across). You have extended &lt;em&gt;psdi.app.workorder.WO&lt;/em&gt; out of the box MBO class with your own &lt;em&gt;cust.app.workorder.WO&lt;/em&gt; class to implement you own business logic for work orders. After a while you install the Maximo Scheduler extension and you soon discover that all your custom logic has gone because the WORKORDER object handler in Database Configuration is now &lt;em&gt;psdi.skd.app.workorder.SKDWOSet&lt;/em&gt; instead of your custom &lt;em&gt;cust.app.workorder.WOSet&lt;/em&gt; class. This is because the Maximo Scheduler installation has overwritten your custom handler.&lt;br&gt;&#xA;&lt;strong&gt;Lesson learned: If you have custom classes and extend the same classes which other products also are extending, then those classes will get overwritten when other products are installed and your customizations will be lost.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create attachments through MIF</title>
      <link>https://bportaluri.click/post/2015/10/create-attachments-through-mif/</link>
      <pubDate>Thu, 22 Oct 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/10/create-attachments-through-mif/</guid>
      <description>&lt;p&gt;Starting from &lt;a href=&#34;http://www.ibm.com/support/docview.wss?uid=swg21413789&#34;&gt;Maximo 7.1.1.6&lt;/a&gt; it is possible to import an attachment (aka doclink) to an objects through MIF. In this example I will show how to add a short text file to an asset record.&lt;/p&gt;&#xA;&lt;p&gt;First of all you have to create an Object Structure with DOCLINKS as a child object of ASSET.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2015/10/myasset1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/myasset1-512x213.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now you can use HTTP or REST calls to add an attachment to an asset. If you are not familiar with this things I suggest you to take a look at &lt;a href=&#34;http://bportaluri.com/2012/08/maximo-integration-framework-object-structure-service-http-tutorial.html&#34;&gt;this post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Differentiate Maximo production, test, development environments</title>
      <link>https://bportaluri.click/post/2015/05/differentiate-maximo-production-test-development-environment/</link>
      <pubDate>Wed, 20 May 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/05/differentiate-maximo-production-test-development-environment/</guid>
      <description>&lt;p&gt;A common need is to differentiate Maximo production, test, development environments.&lt;br&gt;&#xA;The easiest technique I know is to customize the login and header messages.&lt;br&gt;&#xA;Open Database Administration application and select the Messages action. Search for &amp;lsquo;welcome&amp;rsquo; and change the messages in the &amp;rsquo;login&amp;rsquo; group as you wish.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2015/05/welcome_message1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/welcome_message1-512x213.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;welcome&lt;/em&gt; message is displayed on the login page, the &lt;em&gt;welcomeusername&lt;/em&gt; message is displayed in the upper left corner of the start center main page, the &lt;em&gt;welcomemaximomessage&lt;/em&gt; &amp;hellip; I don&amp;rsquo;t know :-)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extract attachments (DOCLINKS)</title>
      <link>https://bportaluri.click/post/2015/02/extract-attachments-doclinks/</link>
      <pubDate>Tue, 17 Feb 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/02/extract-attachments-doclinks/</guid>
      <description>&lt;p&gt;This post explains how to extract a set of attachments from the server. First of all you have to find the root folder where the attachments are stored. This can be found in &lt;em&gt;mxe.doclink.doctypes.defpath&lt;/em&gt; system property (System Configuration - Platform Configuration - System Properties).&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, from the file names you cannot understand to which records each file is linked to. In order to do this you have to run an SQL query. In this example I&amp;rsquo;m showing how to extract all the file names of work orders attachments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Evolutionary Design explained</title>
      <link>https://bportaluri.click/post/2015/01/evolutionary-design-explained/</link>
      <pubDate>Tue, 27 Jan 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/01/evolutionary-design-explained/</guid>
      <description>&lt;p&gt;As I have already discussed in a &lt;a href=&#34;http://bportaluri.com/2013/07/best-practices-for-maximo-projects.html&#34;&gt;previous post&lt;/a&gt; I always tend to adopt an &lt;a href=&#34;http://agilemanifesto.org/&#34;&gt;Agile Development approach&lt;/a&gt; in my projects. My own motto is: &lt;strong&gt;Start Small, Grow Fast&lt;/strong&gt;. I always use this as a very simple guiding principle when working on customer projects.&lt;/p&gt;&#xA;&lt;p&gt;Some months ago I came across this nice picture that perfectly explains the Evolutionary Design principle.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/evolutionary-design.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/evolutionary-design.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We have to admit that the &lt;strong&gt;evolutionary approach can introduce some form of waste&lt;/strong&gt; because sometimes we cannot reuse the components built in the previous iterations (you can&amp;rsquo;t use bicycle wheels on a car). However, it definitely allows to minimize a large upfront design investment and allows to deeply understand the real customer needs and expectations during the project. &lt;strong&gt;A better understanding of customer needs is most valuable return of the iterative approach&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo 7.6 installation</title>
      <link>https://bportaluri.click/post/2015/01/maximo-76-installation/</link>
      <pubDate>Wed, 07 Jan 2015 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2015/01/maximo-76-installation/</guid>
      <description>&lt;p&gt;Maximo 7.6 has a lot of interesting features. One of these is the new installation technology.&lt;br&gt;&#xA;Richard Lesses has published a useful set of articles with a step-by-step guide of how to install Maximo 7.6.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/installing_maximo_7_6_a_first_look?lang=en&#34;&gt;Installing Maximo 7.6: A first look, part 1&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/installing_maximo_7_6_a_first_look_part_2?lang=en&#34;&gt;Installing Maximo 7.6: A first look, part 2&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/installing_maximo_7_6_a_first_look_part_3?lang=en&#34;&gt;Installing Maximo 7.6: A first look, part 3&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/installing_maximo_7_6_a_first_look_part_4?lang=en&#34;&gt;Installing Maximo 7.6: A first look, part 4&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Learn how to query data with SQL</title>
      <link>https://bportaluri.click/post/2014/11/learn-how-to-query-data-with-sql/</link>
      <pubDate>Thu, 27 Nov 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/11/learn-how-to-query-data-with-sql/</guid>
      <description>&lt;p&gt;Many times Maximo users and administrator lacks database skills. These are important in several situations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write &amp;lsquo;where clause&amp;rsquo; statements to filter data in Maximo UI.&lt;/li&gt;&#xA;&lt;li&gt;Develop complex SELECT statements to extract data from multiple tables when developing report.&lt;/li&gt;&#xA;&lt;li&gt;Optimize existing queries to solve performance issues.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If you need to improve your SQL skills I suggest you to read few chapters of the &lt;a href=&#34;https://docs.google.com/file/d/0B6PxDhwK5tSJZW0yYmZsQnVoeUU/edit&#34;&gt;SQL Getting Started guide&lt;/a&gt; of IBM DB2. This is not just for DB2, SQL syntax is quite similar across different database types.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Tranining presentations</title>
      <link>https://bportaluri.click/post/2014/11/maximo-tranining-presentations/</link>
      <pubDate>Wed, 12 Nov 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/11/maximo-tranining-presentations/</guid>
      <description>&lt;p&gt;Here are some nice presentations that I use during basic education sessions for new Maximo users.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Introduction - &lt;a href=&#34;https://docs.google.com/uc?export=download&amp;amp;id=0B6PxDhwK5tSJUUFSSWxtdnd5dUk&#34;&gt;PowerPoint&lt;/a&gt; - &lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-training-introduction&#34;&gt;SlideShare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Getting Started - &lt;a href=&#34;https://docs.google.com/uc?export=download&amp;amp;id=0B6PxDhwK5tSJM3QwbzhZbWNPY2s&#34;&gt;PowerPoint&lt;/a&gt; - &lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-training-getting-started&#34;&gt;SlideShare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Asset Management - &lt;a href=&#34;https://docs.google.com/uc?export=download&amp;amp;id=0B6PxDhwK5tSJdE91VHhiNThrMmc&#34;&gt;PowerPoint&lt;/a&gt; - &lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-training-asset-management&#34;&gt;SlideShare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Work Management - &lt;a href=&#34;https://docs.google.com/uc?export=download&amp;amp;id=0B6PxDhwK5tSJV2c3aDFmTE93LWc&#34;&gt;PowerPoint&lt;/a&gt; - &lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-training-work-management&#34;&gt;SlideShare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Inventory Management - &lt;a href=&#34;https://docs.google.com/uc?export=download&amp;amp;id=0B6PxDhwK5tSJUkFkalRDX3lGNGc&#34;&gt;PowerPoint&lt;/a&gt; - &lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-training-inventory-management&#34;&gt;SlideShare&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I tried to use a pretty template and a common style across all of them.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/maximo-training.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-training.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Feedback is welcome!&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo is the leader Enterprise Asset Management Software</title>
      <link>https://bportaluri.click/post/2014/11/maximo-leader-enterprise-asset-management/</link>
      <pubDate>Thu, 06 Nov 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/11/maximo-leader-enterprise-asset-management/</guid>
      <description>&lt;p&gt;Gartner has recently published its &lt;em&gt;Magic Quadrant for Energy and Utilities Enterprise Asset Management Software&lt;/em&gt; and guess what?&lt;br&gt;&#xA;IBM Maximo Asset Management is positioned it the &amp;lsquo;Magic&amp;rsquo; corner!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/10/maximo-gartner.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-gartner-512x512.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Read the full report &lt;a href=&#34;http://www.gartner.com/technology/reprints.do?id=1-22DOTKA&amp;amp;ct=140929&amp;amp;st=sb&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Preventive Maintenance (PM) automatic work order generation</title>
      <link>https://bportaluri.click/post/2014/10/preventive-maintenance-pm-automatic-generation/</link>
      <pubDate>Thu, 30 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/10/preventive-maintenance-pm-automatic-generation/</guid>
      <description>&lt;p&gt;You probably know that Preventive Maintenance module in Maximo allows to schedule periodical maintenance activities in order to keep your assets running efficiently.&lt;br&gt;&#xA;In other words you can use the  Preventive Maintenance to schedule the automatic generation of work orders.&lt;/p&gt;&#xA;&lt;p&gt;Work orders can be generated manually using the &amp;lsquo;Generate Work Orders&amp;rsquo; action in the Preventive Maintenance application. A dialog will be displayed allowing to set the number of days in the future for which the work orders must be created.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to display a domain description in an application</title>
      <link>https://bportaluri.click/post/2014/10/display-domain-description/</link>
      <pubDate>Wed, 29 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/10/display-domain-description/</guid>
      <description>&lt;p&gt;Some fields in Maximo are linked to a domain that allows to set its value from a predefined set of values. In some cases however, when the value does not provide enough information, you may wish to also display the description of the domain value that you have chosen.&lt;/p&gt;&#xA;&lt;p&gt;For example lets consider the STATUS field of the WORKORDER object.&lt;br&gt;&#xA;By default Maximo will not show the description associated to the work order status.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use Long Description in a Communication Template</title>
      <link>https://bportaluri.click/post/2014/10/long-description-communication-template-email/</link>
      <pubDate>Fri, 24 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/10/long-description-communication-template-email/</guid>
      <description>&lt;p&gt;To add the long description to the message of an email sent through a communication template you have to perform a few configuration steps.&lt;/p&gt;&#xA;&lt;p&gt;The example below is related to WORKORDER object but can be applied to any main object.&lt;/p&gt;&#xA;&lt;p&gt;First of all you have to create a relationship in Database Configuration between the WORKORDER object and the LONGDESCRIPTION object.&lt;br&gt;&#xA;Launch Database Configuration and select the WORKORDER object. Open the Relationship tab and create a relationship with the following properties.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Inbound Web Service processing using XSL transformation</title>
      <link>https://bportaluri.click/post/2014/10/inbound-web-service-processing-using-xsl-xslt/</link>
      <pubDate>Mon, 06 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/10/inbound-web-service-processing-using-xsl-xslt/</guid>
      <description>&lt;p&gt;The title of this article is quite scaring right? Let&amp;rsquo;s describe the scenario&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;You have an external application that needs to query or update data in Maximo using a Web Service call. In the real world the outbound XML schema of the caller is different from the Maximo inbound interface. How can you transform the incoming request to the standard Maximo Web Service interface? This article describes how to use XSLT (EXtensible Stylesheet Language Transformation) to transform the inbound XML structure to a MIF-compliant one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo inbound Web Services tutorial</title>
      <link>https://bportaluri.click/post/2014/10/maximo-inbound-web-services-tutorial/</link>
      <pubDate>Fri, 03 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/10/maximo-inbound-web-services-tutorial/</guid>
      <description>&lt;p&gt;Web Services are the most flexible and powerful technology to integrate Maximo with other systems.&lt;/p&gt;&#xA;&lt;p&gt;In this article I will describe the steps required to configure an &lt;strong&gt;inbound Web Service&lt;/strong&gt; to create or update assets.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Setup test tool (SoapUI)&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To test the Web Service you need an application to simulate inbound HTTP calls. I strongly suggest to use SoapUI. It may seems complex at the beginning but is a very powerful and easy tool in the real world. You can download SoapUI client from &lt;a href=&#34;http://www.soapui.org/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Remove legacy (Actuate) reports from Maximo</title>
      <link>https://bportaluri.click/post/2014/09/remove-legacy-actuate-reports-from-maximo/</link>
      <pubDate>Sun, 07 Sep 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/09/remove-legacy-actuate-reports-from-maximo/</guid>
      <description>&lt;p&gt;If you are upgrading from Maximo 5 or 6, to Maximo 7.1 or 7.5, you may want to remove legacy (Actuate) Maximo 5 or 6 reports.&lt;br&gt;&#xA;The following SQL script deletes those obsolete report entries from the database.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;delete from reportlookupwhere reportlookup.reportnum in(select reportnum from reportwhere runtype in (&amp;#39;ESPREADSHEET&amp;#39;, &amp;#39;QUERY&amp;#39;, &amp;#39;REPORT&amp;#39;))or reportlookup.reportnum is nullor reportlookup.reportname is null;delete from reportlabelwhere reportname like &amp;#39;%.rox&amp;#39;or reportname like &amp;#39;%.dox&amp;#39;or reportname like &amp;#39;%.vts&amp;#39;or reportname like &amp;#39;%.vtf&amp;#39;;delete from reportwhere reportname like &amp;#39;%.rox&amp;#39;or reportname like &amp;#39;%.dox&amp;#39;or reportname like &amp;#39;%.vts&amp;#39;or reportname like &amp;#39;%.vtf&amp;#39;;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reference: &lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Maximo%20Asset%20Management/page/Deleting%20Reports&#34;&gt;Maximo Wiki - Deleting reports&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader 4.1 has been released !</title>
      <link>https://bportaluri.click/post/2014/09/mxloader-41-has-been-released/</link>
      <pubDate>Thu, 04 Sep 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/09/mxloader-41-has-been-released/</guid>
      <description>&lt;p&gt;Hi all,&lt;br&gt;&#xA;I have just released MxLoader version 4.1 on &lt;a href=&#34;https://www.ibm.com/developerworks/community/groups/community/MxLoader&#34;&gt;developerWorks&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;These are the new features:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Rewritten XML/TABLE conversion algorithm to support unlimited levels of nested objects&lt;/li&gt;&#xA;&lt;li&gt;Many MxSheet templates added with object&amp;rsquo;s primary key fields underlined in header row&lt;/li&gt;&#xA;&lt;li&gt;Object count limit now works also for sync action&lt;/li&gt;&#xA;&lt;li&gt;For sync operation it is possible to specify the action (Add, Delete, Update, Change, Replace, AddChange)&lt;/li&gt;&#xA;&lt;li&gt;New button to quickly create custom MxLoader Object Structures&lt;/li&gt;&#xA;&lt;li&gt;MxLoader.xlsm file size reduced from 4 MB to 0.5 MB&lt;/li&gt;&#xA;&lt;li&gt;Comments support in MxSheet templates&lt;/li&gt;&#xA;&lt;li&gt;Removed text formatting for text fields because it was messing Excel formula automatic calculation&lt;/li&gt;&#xA;&lt;li&gt;Performance optimization in attribute lookup algorithm (GetAttrType)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Feel free to &lt;a href=&#34;https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=220c5757-ac28-4f25-bd08-457c5a3364c3#fullpageWidgetId=W9cbbfec147e6_4341_9578_7671e722619f&amp;amp;file=31d8347f-219f-45b2-a1d2-18f777e38810&#34;&gt;download&lt;/a&gt; it and it everyday.&lt;br&gt;&#xA;For questions and support please use &lt;a href=&#34;https://www.ibm.com/developerworks/community/forums/html/forum?id=0811f8d9-ccf4-400c-989b-43b1e254f112&#34;&gt;this forum&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Invoke an Action when a button is pressed</title>
      <link>https://bportaluri.click/post/2014/06/invoke-action-when-button-is-pressed/</link>
      <pubDate>Fri, 20 Jun 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/06/invoke-action-when-button-is-pressed/</guid>
      <description>&lt;p&gt;In this article I explain how to attach/associate an action to a push button in an application.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create the &lt;strong&gt;Action&lt;/strong&gt; you have to call if not already done (Go To - System Configuration - Platform Configuration - Actions).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open your application with the Application Designer and create a &lt;strong&gt;Signature Option&lt;/strong&gt; with the same name of the Action you want to call (Actions - Add/Modify Signature Options - New Row).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Expand the &amp;lsquo;Advanced Signature Options&amp;rsquo; section and set &amp;lsquo;This is an action that must be invoked by user in the UI&amp;rsquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Attachments (DOCLINKS) Configuration</title>
      <link>https://bportaluri.click/post/2014/06/attachments-doclinks-configuration/</link>
      <pubDate>Tue, 10 Jun 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/06/attachments-doclinks-configuration/</guid>
      <description>&lt;p&gt;This procedure describes how to set up attached documents in Maximo 7.1 and above with IBM WebSphere Application Server.&lt;/p&gt;&#xA;&lt;p&gt;In this procedure I will use &lt;/p&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;H&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;IHSDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.08125em;&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt; and &lt;/p&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;L&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;K&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;DOCLINKSDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;OC&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;K&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt; tags to identify IBM HTTP Server and attachments home directory respectively. Replace those tags according to your environment. Here are the default values.&lt;/p&gt;&#xA;&lt;p&gt;Windows&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;H&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;IHSDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.08125em;&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;- C:\Program Files\IBM\HTTPServer&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;L&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;K&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;DOCLINKSDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;OC&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;K&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;S&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;- C:\doclinks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;UNIX&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo applets and Java security</title>
      <link>https://bportaluri.click/post/2014/06/maximo-applets-and-java-security/</link>
      <pubDate>Mon, 09 Jun 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/06/maximo-applets-and-java-security/</guid>
      <description>&lt;p&gt;Java 6 and 7 have introduced new security features that may create some problems in Maximo/SCCD/TPAE applications that make use of Java applets. Some examples of such applications are Configuration Items, Workflow Designer and Scheduler.&lt;/p&gt;&#xA;&lt;p&gt;First of all Start Menu &amp;gt; Java&amp;gt; Configure Java &amp;gt; Security &amp;gt; Add the server host to the trusted sites&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/maximo-java-security.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-java-security.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This should be enough to fix Java related issues.&lt;/p&gt;&#xA;&lt;p&gt;Maximo Scheduler may require an additional configuration to solve the &lt;em&gt;ilogViewerApplet.initProjectDataModel&lt;/em&gt; error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically rotate and clean HTTP Server log files</title>
      <link>https://bportaluri.click/post/2014/05/rotate-clean-http-server-log-files/</link>
      <pubDate>Sat, 31 May 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/05/rotate-clean-http-server-log-files/</guid>
      <description>&lt;p&gt;By default IBM HTTP Server log files always grow. This may be a problem especially on production servers where there is a large amount of HTTP requests that can quickly generate a very big access.log file. This file cannot be deleted without stopping the HTTP Server and can be practically impossible to open with a text editor.&lt;/p&gt;&#xA;&lt;p&gt;A quick solution for this is to use the &lt;em&gt;rotatelogs&lt;/em&gt; utility located in &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;H&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;H&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;HTTPHOME&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.08125em;&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;TTP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.08125em;&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;OME&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/bin&lt;/em&gt; directory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mount shared DOCLINKS folder on Windows</title>
      <link>https://bportaluri.click/post/2014/05/mount-shared-doclinks-folder-on-windows/</link>
      <pubDate>Fri, 23 May 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/05/mount-shared-doclinks-folder-on-windows/</guid>
      <description>&lt;p&gt;A typical configuration step when building a Maximo cluster on Windows systems is to mount a shared filesystem on all the physical systems that belongs to the cluster. This allows to store attachments in a single place in order to be able to access them from all the servers that builds up the cluster.&lt;br&gt;&#xA;It is also important to adopt an approach that automatically remounts the network share in case of system restarts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing Maximo with SSL/HTTPS</title>
      <link>https://bportaluri.click/post/2014/05/securing-maximo-ssl-https/</link>
      <pubDate>Thu, 22 May 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/05/securing-maximo-ssl-https/</guid>
      <description>&lt;p&gt;Maximo installation configures by default HTTP unencrypted communication. This basic configuration may represent a security exposure especially when the server is reachable from the public internet.&lt;/p&gt;&#xA;&lt;p&gt;This article describes all the steps needed to enable HTTPS (SSL) communications for Maximo. It comprises the following main steps.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Creation of a self-signed certificate&lt;/li&gt;&#xA;&lt;li&gt;IBM HTTP Server configuration&lt;/li&gt;&#xA;&lt;li&gt;WebSphere configuration&lt;/li&gt;&#xA;&lt;li&gt;Adjust DocLinks settings&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Create a self-signed certificate&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Run IBM Key Management utility - Start &amp;gt; Programs &amp;gt; IBM HTTP Server &amp;gt; Start Key Management Utility. Click Create a new key database file button.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MxLoader has been released!</title>
      <link>https://bportaluri.click/post/2014/05/mxloader-released/</link>
      <pubDate>Fri, 16 May 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/05/mxloader-released/</guid>
      <description>&lt;p&gt;I am proud to announce the release of MxLoader on developerWorks. This is a great tool I have developed to help me in my day-to-day job as a Maximo specialist.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;MxLoader&lt;/strong&gt; is a &lt;strong&gt;Microsoft Excel&lt;/strong&gt; spreadsheet that allows to quickly and easily &lt;strong&gt;query and load data&lt;/strong&gt; into &lt;strong&gt;IBM Maximo&lt;/strong&gt;, IBM SmartCloud Control Desk (SCCD) and other TPAE based applications. It brings together the power of the Maximo Integration Framework and the flexibility of Excel allowing to quickly manipulate and import data into any Maximo database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Educational videos</title>
      <link>https://bportaluri.click/post/2014/05/educational-videos/</link>
      <pubDate>Thu, 15 May 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/05/educational-videos/</guid>
      <description>&lt;p&gt;Yes these are very busy days for me and probably for you all. But don&amp;rsquo;t worry I will start publishing new articles soon.&lt;br&gt;&#xA;In the meanwhile you can enjoy watching those two videos from my fellow colleague Andreas.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=wcJADqQTzes&#34;&gt;Jobplan demo&lt;/a&gt; (3:03 min)&lt;br&gt;&#xA;&lt;a href=&#34;https://www.youtube.com/watch?v=v5xlAYHl6so&#34;&gt;Offerings/pricebook demo&lt;/a&gt; (2:32 min)&lt;/p&gt;</description>
    </item>
    <item>
      <title>ClassCast exception when launching BIRT reports</title>
      <link>https://bportaluri.click/post/2014/04/classcast-exception-when-launching-birt-reports/</link>
      <pubDate>Tue, 08 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/04/classcast-exception-when-launching-birt-reports/</guid>
      <description>&lt;p&gt;Recently I went through a problem running BIRT reports from Maximo. Every time I launch a BIRT report I got a java.lang.ClassCastException exception like this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration incompatible with org.apache.xerces.xni.parser.XMLParserConfiguration&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;My colleague Daniel Hlawatsch found the solution based on two similar IBM TechNotes:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg1IZ66767&#34;&gt;New Xerces library was introduced in CCMDB 7.1.1.5&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21502258&#34;&gt;Error connecting to WebServices&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;To solve the problem you just have to delete &lt;em&gt;org.apache.xerces_2.9.0.v200805270400.jar&lt;/em&gt; file (backup this first) from the application server deployed application tree: &lt;em&gt;maximouiweb.war\WEB-INF\birt\platform\plugins&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change Maximo base web address</title>
      <link>https://bportaluri.click/post/2014/04/change-maximo-base-web-address/</link>
      <pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/04/change-maximo-base-web-address/</guid>
      <description>&lt;p&gt;In some cases you need to be able to web address of Maximo to identify between different environments or systems. For example for the test system you want to change the base URL from the default address:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;http://mxhost/&lt;strong&gt;maximo&lt;/strong&gt;/&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;http://mxhost/&lt;strong&gt;maximotest&lt;/strong&gt;/&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In WebSphere application server this part of the web address is called &amp;lsquo;context root&amp;rsquo;. It can be changed using WebSphere admin console under Applications &amp;gt; Enterprise Applications &amp;gt; MAXIMO &amp;gt; Context Root For Web Modules.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Read system property in a Java class</title>
      <link>https://bportaluri.click/post/2014/03/read-system-property-in-java-class/</link>
      <pubDate>Wed, 12 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/03/read-system-property-in-java-class/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here is a small piece of Java code that can be used to retrieve a Maximo system property in Java using &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/psdi/server/MXServer.html#getConfig()&#34;&gt;MxServer.getConfig()&lt;/a&gt; method.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Properties configData = MXServer.getMXServer().getConfig();String prop = configData.getProperty(&amp;#34;mxe.adminEmail&amp;#34;);&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Replace &lt;em&gt;mxe.adminEmail&lt;/em&gt; with your property.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multiple Maximo 7.1 installations on the same administrative workstation</title>
      <link>https://bportaluri.click/post/2014/02/multiple-maximo-71-installations-admin-workstation/</link>
      <pubDate>Wed, 26 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/02/multiple-maximo-71-installations-admin-workstation/</guid>
      <description>&lt;p&gt;As you may already know IBM Maximo 7.1 does not fully support the installation of multiple environments on a single Administrative Workstation. This is partially true since IBM has developed a procedure based on the use of non-administrative system users (see &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21421640&#34;&gt;TechNote 21421640&lt;/a&gt;). However, I find this as an overly complex technique so I have developed my own personal approach to this problem.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This is an unsupported procedure. Use at your own risk. It is a quite complex procedure but is very effective in the real world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Server firewall rules for Maximo/SCCD installation</title>
      <link>https://bportaluri.click/post/2014/02/windows-server-firewall-rules-for-maximo/</link>
      <pubDate>Thu, 13 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/02/windows-server-firewall-rules-for-maximo/</guid>
      <description>&lt;p&gt;Windows 2008 Server default firewall rules are very restrictive. When installing Maximo or SmartCloud Control Desk on a remote WebSphere installed on a Windows 2008/20012 Server system you may hit some connectivity errors between the Maximo Administrative Workstation and the application server.&lt;/p&gt;&#xA;&lt;p&gt;I have found out you have to open the following ports/protocols:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ping&lt;/strong&gt;: this is used by the Deplyment Engine to check hostnames and availability or remote systems&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;WebSphere SOAP (8879)&lt;/strong&gt;: Used to administer WAS remotely.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HTTP/HTTPS (80/443)&lt;/strong&gt;: The HTTP Server&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;WebSphere Administrative Console (9043)&lt;/strong&gt;: Needed to deploy MAXIMO.ear file&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;These are the commands that I have used to set the firewall rules.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Screen recorder</title>
      <link>https://bportaluri.click/post/2014/01/screen-recorder/</link>
      <pubDate>Fri, 17 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/01/screen-recorder/</guid>
      <description>&lt;p&gt;Today my fellow colleague Andreas Dietrich has discovered a nice little utility that is shipped with Windows 7 which I think can help you guys in several ways.&lt;br&gt;&#xA;The Windows 7 &amp;ldquo;Problem Step Recorder&amp;rdquo; can be used for example to document installations or to provide as best practise for ticket documentation.&lt;br&gt;&#xA;This little utility (psr.exe) should be available on every Windows 7 installation and can be launched by typing &amp;ldquo;psr&amp;rdquo; on the Windows search&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating a Maximo server</title>
      <link>https://bportaluri.click/post/2014/01/migrating-maximo-server/</link>
      <pubDate>Mon, 13 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/01/migrating-maximo-server/</guid>
      <description>&lt;p&gt;Checkout this great series of articles by Richard Lesses describing a step by step guide of the migration of his Maximo development environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/what_i_do_when_i_m_not_doing_anything_else_migrating_a_maximo_server?lang=en&#34;&gt;Part 1&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/what_i_do_when_i_m_not_doing_anything_else_migrating_a_maximo_server_part_two?lang=en&#34;&gt;Part 2&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/what_i_do_when_i_m_not_doing_anything_else_migrating_a_maximo_server_part_two1?lang=en&#34;&gt;Part 3&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/october_30_2013_4_12_pm?lang=en&#34;&gt;Part 4&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to launch Workflow</title>
      <link>https://bportaluri.click/post/2014/01/how-to-launch-workflow/</link>
      <pubDate>Fri, 10 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2014/01/how-to-launch-workflow/</guid>
      <description>&lt;p&gt;Today I want to show you all the possible ways (as far as I know) of starting a workflow in Maximo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Interactive initiate&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is the most basic way of automatically start a workflow when an object is created through the user interface. This technique will not work for objects created by MIF, workflows or escalations.&lt;br&gt;&#xA;To enable workflow auto-initiate open your workflow in Workflow Designer and select the &lt;em&gt;Interactive Initiate&lt;/em&gt; checkbox.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically stop workflow on closed work orders</title>
      <link>https://bportaluri.click/post/2013/11/automatically-stop-workflow/</link>
      <pubDate>Tue, 12 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/11/automatically-stop-workflow/</guid>
      <description>&lt;p&gt;When using a workflow to drive the status changes of an object in Maximo you shouldn&amp;rsquo;t allow the users to change the status directly through the &amp;lsquo;Change Status&amp;rsquo; action. This could be easily done removing the &amp;lsquo;Change Status&amp;rsquo; sigoption from relevant users groups.&lt;br&gt;&#xA;When users have both options enabled, it may happen that a closed work order has an active workflow on it.&lt;/p&gt;&#xA;&lt;p&gt;In such cases you can create an escalation to automatically stop workflow on closed work orders.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM Maximo Anywhere 7.5 leaked</title>
      <link>https://bportaluri.click/post/2013/11/ibm-maximo-anywhere-75-leaked/</link>
      <pubDate>Fri, 08 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/11/ibm-maximo-anywhere-75-leaked/</guid>
      <description>&lt;p&gt;Most of you already knows that IBM is going to release the long awaited next-gen mobile solution for Maximo. It will be called IBM Maximo Anywhere.&lt;br&gt;&#xA;An &lt;a href=&#34;http://www.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=TIS14153USEN&#34;&gt;IBM whitepaper&lt;/a&gt; has just been published and the announcement letter will follow soon.&lt;br&gt;&#xA;While waiting for the announcement letter here are some leaked screenshots.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://2.bp.blogspot.com/-i5UBnZ477Zk/UnyeYevkM9I/AAAAAAAAIW4/0yFDKm0uux0/s1600/ibm-maximo-anywhere-1.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/ibm-maximo-anywhere-1.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://4.bp.blogspot.com/-j7RlYdtrT3Q/UnyeYuThTiI/AAAAAAAAIW8/S1YJRuXMPVM/s1600/ibm-maximo-anywhere-2.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/ibm-maximo-anywhere-2.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The most promising features are:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Online/Offline mode&lt;/li&gt;&#xA;&lt;li&gt;Integrated barcode scanning capabilities&lt;/li&gt;&#xA;&lt;li&gt;Maps integration&lt;/li&gt;&#xA;&lt;li&gt;Android support (iOS and WP will follow)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Looks promising right?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Analyze groups to users association</title>
      <link>https://bportaluri.click/post/2013/10/analyze-groups-to-users-association/</link>
      <pubDate>Wed, 30 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/analyze-groups-to-users-association/</guid>
      <description>&lt;p&gt;The following SQL query lists all the security groups and the associated users.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT maxgroup.groupname, maxgroup.description, maxuser.userid, maxuser.loginid, maxuser.defsiteFROM maxgroupJOIN groupuser ON groupuser.groupname=maxgroup.groupnameJOIN maxuser ON maxuser.userid=groupuser.useridORDER BY maxgroup.groupname, maxuser.userid;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The best approach to analyze the results is to load them into Excel and create a pivot table.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically refresh Maximo Start Center</title>
      <link>https://bportaluri.click/post/2013/10/automatically-refresh-maximo-start-center/</link>
      <pubDate>Mon, 21 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/automatically-refresh-maximo-start-center/</guid>
      <description>&lt;p&gt;Users that heavily rely on StartCenters to check for incoming tickets or work orders sometimes ask if the StartCenter can automatically refresh itself.&lt;/p&gt;&#xA;&lt;p&gt;To accomplish this you can inject a small JavaScript into the StartCenter JSP code.&lt;br&gt;&#xA;Backup the following file and open it with a text editor:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMPDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\maximo\applications\maximo\&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;maximouiweb\webmodule\webclient\components\startcenter-options.jsp&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Search for a row like this&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;table ...&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add the following code just before that row.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Object Quick Summary</title>
      <link>https://bportaluri.click/post/2013/10/object-quick-summary/</link>
      <pubDate>Fri, 18 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/object-quick-summary/</guid>
      <description>&lt;p&gt;One of the customer that I&amp;rsquo;m working with is heavily relying on work logs. Unfortunately, the work logs are displayed in a standard table so there is no way of quickly displaying all the logs entered by the users.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://1.bp.blogspot.com/-tI9eFLJ3cvg/Ul5CJTlHumI/AAAAAAAAHy4/G_962fiwzR4/s1600/workorder-work-log.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/workorder-work-log-1.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The solution I have designed is a &lt;em&gt;QuickSummary&lt;/em&gt; tab in the Work Order Tracking application that displays the main attributes of the selected work order together with the historical work logs in one single text box.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Implementing a Smart Search feature</title>
      <link>https://bportaluri.click/post/2013/10/maximo-smart-search/</link>
      <pubDate>Thu, 17 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/maximo-smart-search/</guid>
      <description>&lt;p&gt;Using Maximo search functionality can be sometimes complex or even frustrating. Several customers have asked me if there is a simple Google-like functionality to search for all the objects that contains a specific set of words. This article describes how to implement such feature in the Work Order Tracking application.&lt;/p&gt;&#xA;&lt;p&gt;The solution described in this tutorial allows to display a simple search dialog when the user clicks on a specific button on the toolbar. When the user presses the &amp;lsquo;Search&amp;rsquo; button the application will list the work orders containing all the keywords in any of the following fields: description, long description, location, asset, work logs. Note that this is not achievable using the Advanced Search dialog since this will search with an AND logic instead of an OR logic implemented here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Display a summary of an object</title>
      <link>https://bportaluri.click/post/2013/10/display-summary-of-object/</link>
      <pubDate>Wed, 16 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/display-summary-of-object/</guid>
      <description>&lt;p&gt;&lt;em&gt;NOTE: This techniques requires Java programming. A &lt;a href=&#34;http://bportaluri.com/2013/10/object-quick-summary.html&#34;&gt;similar article&lt;/a&gt; describes how to achieve the same results with scripting.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the customer that I&amp;rsquo;m working with is heavily relying on work logs. Unfortunately, the work logs are displayed in a standard table so there is no way of quickly displaying all the logs entered by the users.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://1.bp.blogspot.com/-tI9eFLJ3cvg/Ul5CJTlHumI/AAAAAAAAHy4/G_962fiwzR4/s1600/workorder-work-log.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/workorder-work-log.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The solution I have designed is a &lt;em&gt;Summary&lt;/em&gt; tab in the Work Order Tracking application that displays the main attributes of the selected work order together with the historical work logs in one single text box.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to implement stateful MBOs</title>
      <link>https://bportaluri.click/post/2013/10/stateful-status-mbos/</link>
      <pubDate>Tue, 15 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/stateful-status-mbos/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Many objects in Maximo has a STATUS attribute that can be changed using the status icon or the change status menu option. The STATUS attribute is always associated with a synonym domain that has the valid statuses for the object. Examples of these domains are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;POSTATUS for the PO (Purchase Order) object&lt;/li&gt;&#xA;&lt;li&gt;WOSTATUS for the WORKORDER object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The objects with changes of status must inherit from the &lt;a href=&#34;https://bportaluri.com/wp-content/MaximoJavaDocs76/psdi/mbo/StatefulMbo.html&#34;&gt;&lt;em&gt;&lt;strong&gt;StatefulMbo&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; class which provides the basic functionality to change the status. For example the WORKORDER object has the following class hierarchy:&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBOs attribute current, previous, initial values</title>
      <link>https://bportaluri.click/post/2013/10/mbo-attribute-current-previous-initial-values/</link>
      <pubDate>Sun, 13 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/mbo-attribute-current-previous-initial-values/</guid>
      <description>&lt;p&gt;When implementing business logic in Java code it may be useful to compare the value of an attribute to it&amp;rsquo;s previous or initial value.&lt;br&gt;&#xA;This is particularly useful when overriding MboValueAdapter.action() method to validate the new value of an attribute as soon as it changes.&lt;/p&gt;&#xA;&lt;p&gt;Look at how the three values are retrieved in the following example.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;@Overridepublic void action() throws MXException, RemoteException{  super.action();  String currVal = getMboValue().getString();  String oldVal = getMboValue().getPreviousValue().asString();  String initialVal = getMboValue().getInitialValue().asString();  if (!currVal.equals(oldVal))  {    ...  }}&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>MaximoDev Facts and Stats (September 2013)</title>
      <link>https://bportaluri.click/post/2013/10/maximodev-facts-and-stats-september-2013/</link>
      <pubDate>Mon, 07 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/maximodev-facts-and-stats-september-2013/</guid>
      <description>&lt;p&gt;Checkout the updated MaximoDev stats.&lt;/p&gt;&#xA;&lt;iframe allowfullscreen frameborder=&#34;0&#34; height=&#34;486&#34; marginheight=&#34;0&#34; marginwidth=&#34;0&#34; mozallowfullscreen=&#34;&#34; scrolling=&#34;no&#34; src=&#34;http://www.slideshare.net/slideshow/embed_code/26936499&#34; style=&#34;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&#34; webkitallowfullscreen=&#34;&#34; width=&#34;597&#34;&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-dev-facts-and-stats-20131007&#34; title=&#34;MaximoDev Facts and Stats (September 2013)&#34;&gt;MaximoDev Facts and Stats (September 2013)&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri&#34;&gt;Bruno Portaluri&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>System requirements for IBM Maximo and SmartCloud Control Desk</title>
      <link>https://bportaluri.click/post/2013/10/system-requirements-ibm-maximo-sccd-smartcloud-control-desk/</link>
      <pubDate>Sun, 06 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/10/system-requirements-ibm-maximo-sccd-smartcloud-control-desk/</guid>
      <description>&lt;p&gt;Sometimes is a bit hard to find an exact list of system requirements and prerequisites for IBM Maximo and SmartCloud Control Desk (SCCD) products.&lt;/p&gt;&#xA;&lt;p&gt;If you want to know what are the supported operating systems and middleware versions here are the most important sources of information:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20SmartCloud%20Control%20Desk/page/System%20Requirements&#34;&gt;IBM SmartCloud Control Desk system requirements&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Maximo%20Asset%20Management/page/System%20requirements&#34;&gt;IBM Maximo system requirements&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg27014419&#34;&gt;Product Configuration Matrix&lt;/a&gt; for Maximo Asset Management, Maximo Asset Management for IT, Tivoli Service Request Manager, Tivoli Change and Configuration Management Database and SmartCloud Control Desk products&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Translate workflow messages and labels</title>
      <link>https://bportaluri.click/post/2013/09/translate-workflow-messages-and-labels/</link>
      <pubDate>Mon, 30 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/09/translate-workflow-messages-and-labels/</guid>
      <description>&lt;p&gt;Translated messages and labels are not enabled by default on Maximo workflows. This means that if you have a multilanguage environment all the users will see the same task descriptions interaction messages when using workflows.&lt;br&gt;&#xA;To be able to insert translated labels and messages for workflows you have to enable the multi-language option for the following attributes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;WFACTION.INSTRUCTION&lt;/li&gt;&#xA;&lt;li&gt;WFASSIGNMENT.DESCRIPTION&lt;/li&gt;&#xA;&lt;li&gt;WFINTERACTION.DIRECTIONS&lt;/li&gt;&#xA;&lt;li&gt;WFINTERACTION.DIRECTIONS_LONGDESCRIPTION&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;To set multi-language option go to System Configuration &amp;gt; Platform Configuration &amp;gt; Database Configuration find each attribute and set the &amp;lsquo;Multilanguage in use?&amp;rsquo; flag. Enable the admin-mode and apply database changes.&lt;br&gt;&#xA;After having done this you should be able to login as MAXADMIN with a different language and set different labels for actions and tasks using the standard &amp;lsquo;Workflow Designer&amp;rsquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to disable the 7.5 Rich Text editor</title>
      <link>https://bportaluri.click/post/2013/09/how-to-disable-75-rich-text-editor/</link>
      <pubDate>Sat, 21 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/09/how-to-disable-75-rich-text-editor/</guid>
      <description>&lt;p&gt;TPAE 7.5 has introduced a nice Rich Text editor control for editing and formatting long descriptions. This applies to both Maximo and SmartCloud Control Desk starting from version 7.5.&#xA;This feature is very cool in some cases but may cause &lt;a href=&#34;https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014628781&#34;&gt;some troubles&lt;/a&gt;. I personally do not like the effects of pasting text into such RTF text boxes.&lt;/p&gt;&#xA;&lt;p&gt;To disable the formatting features of these controls you can just add the following attributes to the &lt;strong&gt;&lt;em&gt;richtexteditor&lt;/em&gt;&lt;/strong&gt; element in the application XML definition: &lt;em&gt;&lt;strong&gt;plugins=&amp;quot;[]&amp;quot; extra_plugins=&amp;quot;[]&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically start Maximo or SCCD server</title>
      <link>https://bportaluri.click/post/2013/09/automatically-start-maximo-or-sccd/</link>
      <pubDate>Wed, 11 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/09/automatically-start-maximo-or-sccd/</guid>
      <description>&lt;p&gt;To automatically start Maximo or SmartCloud Control Desk (SCCD) when the hosting server starts you need to configure the WebSphere Node Agent to start automatically start at server boot.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Automatically start WebSphere Node Agent&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This can be achieved on Windows setting up the WebSphere Node Agent as a Windows service using the &lt;em&gt;WASService&lt;/em&gt; command located in the &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;APPSRVDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;PPSR&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\bin&lt;/em&gt; directory.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;WASService -add &amp;ldquo;Node Agent&amp;rdquo;&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;-servername nodeagent -profilePath &amp;ldquo;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;APPSRVDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;PPSR&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\profiles\[PROFILENAME]&amp;rdquo;&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;-wasHome &amp;ldquo;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;APPSRVDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;PPSR&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;rdquo;&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;-logRoot &amp;ldquo;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;APPSRVDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;PPSR&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\profiles\[PROFILENAME]\logs\nodeagent&amp;rdquo;&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;-logFile &amp;ldquo;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;mi&gt;V&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;APPSRVDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;PPSR&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.22222em;&#34;&gt;V&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\profiles\[PROFILENAME]\logs\nodeagent\startNode.log&amp;rdquo;&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;-restart true -startType automatic&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is an MBO change originated by user?</title>
      <link>https://bportaluri.click/post/2013/08/mbo-change-originated-by-user-mif/</link>
      <pubDate>Mon, 05 Aug 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/08/mbo-change-originated-by-user-mif/</guid>
      <description>&lt;p&gt;In some cases you are in the middle of an MBO Java code and you need to know if the current method has been triggered by an interactive UI session or by background process like MIF or escalation.&lt;br&gt;&#xA;This is what you need.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;boolean isGUI = getUserInfo().isInteractive();&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;em&gt;getUserInfo()&lt;/em&gt; method is available on both &lt;em&gt;Mbo&lt;/em&gt; and &lt;em&gt;MboSet&lt;/em&gt; classes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom Java Action Class Example</title>
      <link>https://bportaluri.click/post/2013/07/custom-java-action-class-example/</link>
      <pubDate>Fri, 19 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/07/custom-java-action-class-example/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In a previous post I have described &lt;a href=&#34;http://bportaluri.com/2012/06/sample-action-class-java-maximo.html&#34;&gt;how create a custom action class using Java&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is a full example that can help to understand how to navigate objects and set values.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;package cust.psdi.app.workorder;import java.rmi.RemoteException;import psdi.common.action.ActionCustomClass;import psdi.mbo.MboConstants;import psdi.mbo.MboRemote;import psdi.mbo.MboSetRemote;import psdi.util.MXException;/** * Sets the Workorder description with a new one obtained concatenating the * following related descriptions: * - :JOBPLAN.DESCRIPTION * - :PM.LOCATIONS.DESCRIPTION * - :PM.ASSET.DESCRIPTION *  * @author Bruno Portaluri */public class ActionSetDescriptionFromPm implements ActionCustomClass{  public ActionSetDescriptionFromPm()  {    super();  }  public void applyCustomAction(MboRemote mbo, Object[] params) throws MXException, RemoteException  {    String desc = &amp;#34;&amp;#34;;        // Get the description of the Job Plan    MboSetRemote jp = mbo.getMboSet(&amp;#34;WO_JOBPLAN&amp;#34;);    if (jp.getMbo(0)!=null)    {      desc = desc + jp.getMbo(0).getString(&amp;#34;DESCRIPTION&amp;#34;);    }        // Get the description of the Job Plan    MboSetRemote pm = mbo.getMboSet(&amp;#34;WO_PM&amp;#34;);        if (pm.getMbo(0)!=null)    {      // Get the description of the PM&amp;#39;s Location      MboSetRemote locations = pm.getMbo(0).getMboSet(&amp;#34;LOCATIONS&amp;#34;);      if (locations.getMbo(0)!=null)      {        desc = desc + &amp;#34; - &amp;#34; + locations.getMbo(0).getString(&amp;#34;DESCRIPTION&amp;#34;);      }            // Get the description of the PM&amp;#39;s Asset      MboSetRemote asset = pm.getMbo(0).getMboSet(&amp;#34;ASSET&amp;#34;);      if (asset.getMbo(0)!=null)      {        desc = desc + &amp;#34; - &amp;#34; + asset.getMbo(0).getString(&amp;#34;DESCRIPTION&amp;#34;);      }    }    // Truncates to fit the field length    desc = desc.substring (0, 100);        System.out.println(&amp;#34;Setting WO&amp;#39;s &amp;#34; + mbo.getString(&amp;#34;WONUM&amp;#34;) + &amp;#34; description:&amp;#34; + desc);        mbo.setValue(&amp;#34;DESCRIPTION&amp;#34;, desc, MboConstants.NOACCESSCHECK|MboConstants.NOVALIDATION_AND_NOACTION);  }}&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>How to make record readonly based on an attribute&#39;s value</title>
      <link>https://bportaluri.click/post/2013/07/make-record-readonly-condition/</link>
      <pubDate>Sat, 13 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/07/make-record-readonly-condition/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A very typical customization task is to make readonly some records of a specific table based on the value of an attribute.&lt;br&gt;&#xA;For example you may wish prevent the editing of purchase orders that have a total costs higher than 1000$ for a specific group. Here is a small tutorial about how you can achieve this.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application and create the following conditional expression:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Best practices for Maximo projects</title>
      <link>https://bportaluri.click/post/2013/07/best-practices-for-maximo-projects/</link>
      <pubDate>Tue, 09 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/07/best-practices-for-maximo-projects/</guid>
      <description>&lt;p&gt;Today I have received the following questions from one of our customers.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Are there any best practices or recommendations on how to develop and maintain different versions of a Maximo based solution?&lt;/li&gt;&#xA;&lt;li&gt;How can we do source control?&lt;/li&gt;&#xA;&lt;li&gt;Are there any compare tool/utility to find differences in various version of application (available in different environments)?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Expanding a little, in this article I will present my own recipes to cook successful Maximo projects.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Commodity Codes in Maximo</title>
      <link>https://bportaluri.click/post/2013/07/commodity-codes-in-maximo/</link>
      <pubDate>Sun, 07 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/07/commodity-codes-in-maximo/</guid>
      <description>&lt;p&gt;Commodity codes are standard classification codes for products and services used to detail where money is spent within a company.&lt;/p&gt;&#xA;&lt;p&gt;In Maximo &lt;em&gt;&lt;strong&gt;commodity codes&lt;/strong&gt; are used to define similar types of items, tools, or services&lt;/em&gt;. Commodity codes are also grouped together in commodity groups. A &lt;em&gt;&lt;strong&gt;commodity group&lt;/strong&gt; contains a grouping of individual commodity codes&lt;/em&gt;.&lt;br&gt;&#xA;Commodity groups and codes can be created and managed selecting the Add/Modify Commodity Codes action in the one of following applications: Companies, Item Master, Purchase Orders, Service Items, Tools. This &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21427175&#34;&gt;IBM TechNote&lt;/a&gt; describes how to manually enter commodity codes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to import Failure Codes from Excel into Maximo</title>
      <link>https://bportaluri.click/post/2013/07/how-to-import-failure-list-from-excel/</link>
      <pubDate>Fri, 05 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/07/how-to-import-failure-list-from-excel/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;This article is outdated! Please go to &lt;a href=&#34;http://bportaluri.com/2017/03/load-failure-codes-in-maximo.html&#34;&gt;Load failure codes with MxLoade&lt;/a&gt;&lt;/strong&gt;&lt;em&gt;r&lt;/em&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Creating and maintaining the hierarchy of failure codes can be quite complex using the standard Failure Codes application. Unfortunately there is no common solution to import Maximo failure codes. This evening I have worked on creating an Excel spreadsheet that can help in such cases.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;This is an experimental tool. Use with care on development environments.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically set Everyplace start center for mobile users</title>
      <link>https://bportaluri.click/post/2013/06/set-maximo-everyplace-start-center-mobile/</link>
      <pubDate>Wed, 26 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/set-maximo-everyplace-start-center-mobile/</guid>
      <description>&lt;p&gt;Maximo Everyplace is the easiest solution to go mobile with Maximo however there is one little thing that always annoys me (and mobile users).&lt;/p&gt;&#xA;&lt;p&gt;After having created mobile versions of the Maximo apps, the administrator has to define a &lt;a href=&#34;http://pic.dhe.ibm.com/infocenter/tivihelp/v49r1/topic/com.ibm.evr.doc/evr/t_setup_favorites.html&#34;&gt;mobile start center&lt;/a&gt; with a Favorite Applications portlet to access them. Unfortunately, there is no way to set this as a &amp;lsquo;mobile&amp;rsquo; Start Center so each user have to click on the Display Settings link and &lt;a href=&#34;http://pic.dhe.ibm.com/infocenter/tivihelp/v49r1/topic/com.ibm.evr.doc/evr/t_setup_startcenter.html&#34;&gt;select the Is Mobile check box&lt;/a&gt; for the specific start center.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Opening of Maximo Summer Series!</title>
      <link>https://bportaluri.click/post/2013/06/maximo-summer-series/</link>
      <pubDate>Mon, 24 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/maximo-summer-series/</guid>
      <description>&lt;p&gt;Italy may not be the strongest economy in the EU but certainly offers some benefits.&lt;br&gt;&#xA;I will stay for the next three weeks in a wonderful place in the south of Italy where I can enjoy some sun and sandy beaches like this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://3.bp.blogspot.com/-VqO8JWLa9B0/UchZCkk3PmI/AAAAAAAAGDo/3JxEr1qmWIg/s1600/Salento_torreorso.jpg&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/Salento_torreorso.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo and EAM are both my job and my hobby so I will continue to post new articles and tips from my beach chair.&lt;/p&gt;&#xA;&lt;p&gt;Stay tuned!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Embed Maximo user interface in a web page</title>
      <link>https://bportaluri.click/post/2013/06/embed-maximo-user-interface-in-web-page/</link>
      <pubDate>Thu, 20 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/embed-maximo-user-interface-in-web-page/</guid>
      <description>&lt;p&gt;This was a tough week but I have learned many things. I have been two days in Florence and other two days in Montebelluna near Venice. Now I am in the train going back home for a well deserved vacation at the beach.&lt;/p&gt;&#xA;&lt;p&gt;Today I have discovered a nice way to embed Maximo UI in a custom web portal. The customer wants to provide a very simple self service center in its own intranet web site.&lt;br&gt;&#xA;The trick to achieve this is to use an undocumented parameter called &lt;strong&gt;&lt;em&gt;portalmode&lt;/em&gt;&lt;/strong&gt;. Let&amp;rsquo;s see how to do it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Integration Framework features</title>
      <link>https://bportaluri.click/post/2013/06/maximo-integration-framework-features/</link>
      <pubDate>Tue, 18 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/maximo-integration-framework-features/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;How many times you have asked yourself: &lt;strong&gt;Should I upgrade?&lt;/strong&gt;&lt;br&gt;&#xA;Maximo Integration Framework has been improved a lot in the recent versions and fixpacks. Look at this list of features and you may find a good reason to upgrade.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;7.5.0.3&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;OSLC&lt;/strong&gt; - Link and share data by using OSLC integration (Open Services for Lifecycle Collaboration)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;EMail interaction&lt;/strong&gt; - Enabling email updates for objects and workflow assignments&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;7.5.0.1&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Syncing data with an external system using a Publish Channel</title>
      <link>https://bportaluri.click/post/2013/06/sync-export-data-publish-channel/</link>
      <pubDate>Mon, 17 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/sync-export-data-publish-channel/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Publish Channels in MIF allows to send daya to external systems using a variety of protocols. In this article I will demonstrate how to automatically export new or updated assets into CSV/XML files. Those files can then be processed by an external application to perform additional logic or to replicate the assets.&lt;/p&gt;&#xA;&lt;p&gt;Create an Integration Object Structure &lt;em&gt;MYASSET&lt;/em&gt; and add the &lt;em&gt;ASSET&lt;/em&gt; object as source.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SCCD 7.5 and Maximo 7.6 user interface System Properties</title>
      <link>https://bportaluri.click/post/2013/06/sccd-75-user-interface-system-properties/</link>
      <pubDate>Tue, 11 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/sccd-75-user-interface-system-properties/</guid>
      <description>&lt;p&gt;SmartCloud Control Desk 7.5 and Maximo 7.6 have introduced new UI skins and navigation behavior.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://1.bp.blogspot.com/-fa2ANVzTplE/UbeNPZ2kQnI/AAAAAAAAF4g/pBeFqXsONdc/s1600/sccd-751-ui.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/sccd-751-ui.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are four new System Properties which control the left navigation pane and other related visual attributes.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;mxe.webclient.homeButtonHeaders&lt;/strong&gt; - Moves Goto menu to left of the screen and adds Start Center button to the header&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mxe.webclient.systemNavBar&lt;/strong&gt; - Enables the lefthand navigation&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mxe.webclient.tabBreadCrumbs&lt;/strong&gt; - Removes tabs from list view&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mxe.webclient.verticalLabels&lt;/strong&gt; - Sets label above each input field&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The skin can be selected setting the &lt;strong&gt;mxe.webclient.skin&lt;/strong&gt; property: &lt;em&gt;tivoli09&lt;/em&gt; is the default 7.5 skin, &lt;em&gt;tivoli13&lt;/em&gt; is new skin.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Set a field as required after save</title>
      <link>https://bportaluri.click/post/2013/06/set-field-required-after-save/</link>
      <pubDate>Mon, 10 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/set-field-required-after-save/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;You may have noticed that there are some fields that cannot be modified once an object is saved. An example of this behavior is the ASSET.ASSETNUM field. When you create a new asset you can set it&amp;rsquo;s ID but once you have saved it it cannot be modified.&lt;br&gt;&#xA;In this little post I&amp;rsquo;ll show you how to implement this behavior for other fields.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to set the date format in Maximo</title>
      <link>https://bportaluri.click/post/2013/06/date-format-maximo/</link>
      <pubDate>Sun, 09 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/date-format-maximo/</guid>
      <description>&lt;p&gt;To set the date format in Maximo, you use the &lt;strong&gt;&lt;em&gt;setting.DISPLAYDATE&lt;/em&gt; system property&lt;/strong&gt; from the System Properties application.&lt;br&gt;&#xA;When you enter a date format for this property, it overrides any system settings for displaying date formats in Maximo&lt;/p&gt;&#xA;&lt;p&gt;If you do not set the system property with DISPLAYDATE, then the display format is based on the &lt;strong&gt;profile information&lt;/strong&gt; (under Profile - Default Information). This setting determines the display date format for this specific user.&lt;br&gt;&#xA;This setting is used only if the system property setting.DISPLAYDATE is not set.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo add-ons, plugins and extensions on ISM Library</title>
      <link>https://bportaluri.click/post/2013/06/maximo-eam-addon-plugin-extension/</link>
      <pubDate>Fri, 07 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/maximo-eam-addon-plugin-extension/</guid>
      <description>&lt;p&gt;ISM Library is an IBM website where you can find addons, plugins and extensions available for all IBM products including Maximo.&lt;/p&gt;&#xA;&lt;p&gt;I really think it is worth spending 5 minutes of your time to look at what extensions are available. Here is the link that will take you directly to the list of solutions available for Enterprise Asset management (EAM): &lt;a href=&#34;https://www-304.ibm.com/software/brandcatalog/ismlibrary/search#rc=AssetManagement:Asset%20Management&#34;&gt;https://www-304.ibm.com/software/brandcatalog/ismlibrary/search#rc=AssetManagement:Asset%20Management&lt;/a&gt;&lt;br&gt;&#xA;I also suggest you to sort results by &amp;lsquo;most viewed&amp;rsquo; to find the most popular solutions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Return vs. Move Asset - When to use which</title>
      <link>https://bportaluri.click/post/2013/06/return-vs-move-asset-when-to-use-which/</link>
      <pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/return-vs-move-asset-when-to-use-which/</guid>
      <description>&lt;p&gt;There is a common misconception in Maximo on when to use the return item transaction or a move asset transaction.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;strong&gt;return item&lt;/strong&gt; transaction should be used when an item has been consumed by a GL entity, but for one reason or another, the item was not necessary and therefore needs to be returned to the storeroom at its full issued value. Again, a return is to negate an issue transaction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MaximoDev Blog  Facts and Stats (May 2013)</title>
      <link>https://bportaluri.click/post/2013/06/maximodev-blog-facts-and-stats-may-2013/</link>
      <pubDate>Wed, 05 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/06/maximodev-blog-facts-and-stats-may-2013/</guid>
      <description>&lt;p&gt;After more than 3 years of blogging I think it&amp;rsquo;s worth sharing some statistics about my blog.&lt;/p&gt;&#xA;&lt;iframe allowfullscreen frameborder=&#34;0&#34; height=&#34;486&#34; marginheight=&#34;0&#34; marginwidth=&#34;0&#34; mozallowfullscreen=&#34;&#34; scrolling=&#34;no&#34; src=&#34;http://www.slideshare.net/slideshow/embed_code/22507642?rel=0&#34; style=&#34;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&#34; webkitallowfullscreen=&#34;&#34; width=&#34;597&#34;&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri/maximo-dev-facts-and-stats-20130605&#34; title=&#34;MaximoDev Blog  Facts and Stats (May 2013)&#34;&gt;MaximoDev Blog Facts and Stats (May 2013)&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/BrunoPortaluri&#34;&gt;Bruno Portaluri&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to rename objects</title>
      <link>https://bportaluri.click/post/2013/05/how-to-rename-objects/</link>
      <pubDate>Sun, 26 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/how-to-rename-objects/</guid>
      <description>&lt;p&gt;You have probably noticed that once you have saved an object you are not allowed to change it&amp;rsquo;s ID. This is basically because each object stored on the database needs an immutable unique identifier that can be used to reference that object from other tables. Maximo prevents updating such identifiers to avoid loosing links between records referencing each other.&lt;/p&gt;&#xA;&lt;p&gt;However there is a little trick you can apply to update the ID of an object in the main table and all the related records. The technique consists in using the Data Dictionary stored in MAXATTRIBUTE table to find all the possible tables and fields where references to the renamed object could be stored.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find Roles with assignments in a Workflow</title>
      <link>https://bportaluri.click/post/2013/05/find-roles-with-assignments-in-workflow/</link>
      <pubDate>Fri, 24 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/find-roles-with-assignments-in-workflow/</guid>
      <description>&lt;p&gt;Roles in Maximo are used to represent a specific person or a group of people that can be used in workflows, communication templates and escalations.&lt;/p&gt;&#xA;&lt;p&gt;If you need to find which roles are used in a specific workflow you can use an SQL query like this.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT wfnode.title, wfnode.description, wfa.roleid, r.descriptionFROM wfnodeJOIN wfassignment wfa ON wfa.nodeid=wfnode.nodeid AND wfa.processrev=wfnode.processrev AND wfa.assigncode IS NULLJOIN maxrole r ON r.maxrole=wfa.roleidWHERE wfnode.processname=&amp;#39;[PNAME]&amp;#39; AND wfnode.processrev=[PREV] AND wfnode.nodetype=&amp;#39;WFTASK&amp;#39;ORDER BY wfnode.title;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Just replace the &lt;/p&gt;</description>
    </item>
    <item>
      <title>Link Parent-Child records in Maximo</title>
      <link>https://bportaluri.click/post/2013/05/link-parent-child-records-in-maximo/</link>
      <pubDate>Sun, 19 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/link-parent-child-records-in-maximo/</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;http://bportaluri.com/2013/05/child-table-in-application-designer.html&#34;&gt;previous post&lt;/a&gt; I have described how to correctly manage a child table in an application using the Application Designer. However, there are better ways of achieving the same goals so I will analyze all the available options to correctly link records in a parent-child relationship.&lt;/p&gt;&#xA;&lt;p&gt;If you are a creating custom objects and applications in TPAE you may need at some point to create a child table like the Subassemblies in the Assets application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Logging and Tracing in Maximo</title>
      <link>https://bportaluri.click/post/2013/05/java-logging-and-tracing-in-maximo/</link>
      <pubDate>Mon, 13 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/java-logging-and-tracing-in-maximo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A good logging (tracing) is always a lifesaver when you have problems in a production environment. I will never stop telling to my fellow programmers how much is important to fill code with meaningful log calls.&lt;/p&gt;&#xA;&lt;p&gt;Maximo has a good and flexible logging subsystem. This &lt;a href=&#34;http://www.ibm.com/support/docview.wss?uid=swg21264064&#34;&gt;IBM TechNote&lt;/a&gt; describes in detail how logging works in Maximo. Let&amp;rsquo;s now see hot to use Maximo logging in your custom Java code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TPAE Java coding standard</title>
      <link>https://bportaluri.click/post/2013/05/maximo-tpae-mbo-java-coding-standard/</link>
      <pubDate>Wed, 08 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/maximo-tpae-mbo-java-coding-standard/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;What is a coding standard and why it is important?&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;A &lt;strong&gt;coding standard&lt;/strong&gt; is a set of guidelines, rules and regulations on how to write code which will help developers quickly read and understand source code conforming to the style as well as helping to avoid introducing faults and misunderstanding.&lt;/em&gt;&lt;br&gt;&#xA;&lt;em&gt;Coding standards are important because they provide greater consistency and uniformity in writing code between programmers. This ultimately leads to the code that is easier to understand and maintain which reduces the overall cost of the project.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sync data between Maximo and Excel</title>
      <link>https://bportaluri.click/post/2013/05/sync-data-between-maximo-and-excel/</link>
      <pubDate>Mon, 06 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/sync-data-between-maximo-and-excel/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;This article is outdated! Checkout &lt;a href=&#34;https://www.ibm.com/developerworks/community/groups/community/MxLoader&#34;&gt;MxLoader tool&lt;/a&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is the last step toward a complete integration between Maximo and Excel. In &lt;a href=&#34;http://bportaluri.com/2013/04/maximo-excel-integration.html&#34;&gt;the previous article&lt;/a&gt; we have learned how to use Integration Object Service and HTTP calls from Excel to populate a spreadsheet with data retrieved from a Maximo server.&lt;br&gt;&#xA;In this new article I will show how to synchronize (create and update) data between a Maximo and Excel. First of all you have to complete all the configuration steps described in the &lt;a href=&#34;http://bportaluri.com/2013/04/maximo-excel-integration.html&#34;&gt;previous article&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Child table in Application Designer</title>
      <link>https://bportaluri.click/post/2013/05/child-table-in-application-designer/</link>
      <pubDate>Thu, 02 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/child-table-in-application-designer/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;This article is obsolete. Please refer to &lt;a href=&#34;http://bportaluri.com/2013/05/link-parent-child-records-in-maximo.html&#34;&gt;this one&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you are a creating custom objects and applications in TPAE you may need at some point to create a child table like the Subassemblies in the Assets application.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://2.bp.blogspot.com/-nhrVE0_NfOU/UYGNLgAphNI/AAAAAAAAFyI/pKV5-mOzSaE/s1600/assets-child-table.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/assets-child-table-1.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s pretend we have a parent table called TB1 and a child table called TB2.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;TB1: Parent table&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;TB1ID: Identifier of records in TB1&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;TB2: Child table&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;TB2ID: Identifier of records in TB2&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add a language pack to Maximo</title>
      <link>https://bportaluri.click/post/2013/05/add-language-pack-to-maximo/</link>
      <pubDate>Wed, 01 May 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/05/add-language-pack-to-maximo/</guid>
      <description>&lt;p&gt;Adding a language pack to Maximo after having installed it can be done by running the installer again. After few dialogs and some checks you will be prompted with a list of languages that can be added to the base language.&lt;br&gt;&#xA;Alternatively you can follow the manual procedure described hereafter.&lt;/p&gt;&#xA;&lt;p&gt;First of all you have to install the language pack using the Process Solution Installer.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;On the administrative workstation, launch the Process Solution Installer (PSI): Click Start &amp;gt; Programs &amp;gt; IBM Tivoli base services &amp;gt; Process Solution Installer.&lt;/li&gt;&#xA;&lt;li&gt;On the Choose PSI Package panel pick the desired language pack in &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMPDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\pmp&lt;/em&gt; directory. For example, to install italian language pack I have selected &lt;em&gt;D:\IBM\SMP\pmp\PAE_Lang_Pkg_7.5.0.2_It.zip&lt;/em&gt; file.&lt;/li&gt;&#xA;&lt;li&gt;Provide the required middleware credentials and start the installation.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Now you can add the language for use with the product using the TDToolkit. Open a command line and move to &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMPDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\maximo\tools\maximo&lt;/em&gt; directory. Launch the following command specifying the correct locale you want to install.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo and Excel Integration</title>
      <link>https://bportaluri.click/post/2013/04/maximo-excel-integration/</link>
      <pubDate>Mon, 29 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/04/maximo-excel-integration/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;This article is outdated! Checkout &lt;a href=&#34;https://www.ibm.com/developerworks/community/groups/community/MxLoader&#34;&gt;MxLoader tool&lt;/a&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;After having written the two articles on &lt;a href=&#34;http://bportaluri.com/2013/04/import-data-from-csv-flat-file-mif.html&#34;&gt;importing&lt;/a&gt; and &lt;a href=&#34;http://bportaluri.com/2013/04/flat-csv-file-export-maximo-integration-framework.html&#34;&gt;exporting&lt;/a&gt; data in Maximo, this morning I woke up with an insane idea.&lt;br&gt;&#xA;Is it Excel capable of parsing an XML structures and issue an HTTP calls to Maximo Integration Framework?&lt;br&gt;&#xA;Did you already got my idea? I switched on my tablet and did few searches. Yeeesss! I have all the pieces of the puzzle!&lt;/p&gt;&#xA;&lt;p&gt;The idea is to integrate Maximo and Excel using HTTP calls to a MIF Object Service. This allows to avoid passing through the generation and conversion of CSV files to exchange data between Maximo and Excel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Importing data from a CSV file into Maximo</title>
      <link>https://bportaluri.click/post/2013/04/import-data-from-csv-flat-file-mif/</link>
      <pubDate>Mon, 08 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/04/import-data-from-csv-flat-file-mif/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial I will show how to configure the Maximo Integration Framework (MIF) in order to import data in Maximo from a Comma Separated Values (CSV) text file.&lt;/p&gt;&#xA;&lt;p&gt;The best thing is to start with an export. Please follow &lt;a href=&#34;http://bportaluri.com/2013/04/flat-csv-file-export-maximo-integration-framework.html&#34;&gt;this article&lt;/a&gt; before proceeding.&lt;/p&gt;&#xA;&lt;p&gt;To be able to export data using the MIF we must configure the following chain:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Object Structure&lt;/li&gt;&#xA;&lt;li&gt;Enterprise Service&lt;/li&gt;&#xA;&lt;li&gt;External System&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Object Service&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flat CSV file export with Maximo Integration Framework</title>
      <link>https://bportaluri.click/post/2013/04/flat-csv-file-export-maximo-integration-framework/</link>
      <pubDate>Sat, 06 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/04/flat-csv-file-export-maximo-integration-framework/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial I will show how to configure the Maximo Integration Framework in order to export data from Maximo into a Comma Separated Values (CSV) text file.&lt;/p&gt;&#xA;&lt;p&gt;To achieve such goal we must configure the following chain:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Object Structure&lt;/li&gt;&#xA;&lt;li&gt;Publish Service&lt;/li&gt;&#xA;&lt;li&gt;External System&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;For more details about how the MIF works look at the &lt;a href=&#34;http://bportaluri.com/2012/11/introduction-to-maximo-integration-framework-mif.html&#34;&gt;Maximo Integration Framework overview&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If this is the first time you are using the Maximo Integration Framework, you should check that your &lt;a href=&#34;http://bportaluri.com/2012/08/maximo-integration-framework-first-setup.html&#34;&gt;MIF is properly set up&lt;/a&gt; before going ahead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>List Maximo customizations</title>
      <link>https://bportaluri.click/post/2013/04/list-maximo-customizations/</link>
      <pubDate>Wed, 03 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/04/list-maximo-customizations/</guid>
      <description>&lt;p&gt;In this little post I will share few database queries to list the customizations made to your Maximo environment. It also applies to other TPAE based products.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Security restrictions&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT * FROM securityrestrictORDER BY objectname, attributename;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Custom objects and attributes&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT * FROM maxobjectWHERE userdefined=1ORDER by objectname;SELECT * FROM maxattributeWHERE userdefined=1ORDER by objectname, attributename;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Custom code&lt;/strong&gt;&lt;br&gt;&#xA; &lt;br&gt;&#xA;For an accurate analysis of customized Java classes you can use the &lt;a href=&#34;https://www-304.ibm.com/software/brandcatalog/ismlibrary/details?catalog.label=1TW10MA4S&#34;&gt;IBM Maximo Customization Detection Tool&lt;/a&gt;. When the customization detection tool is executed, it generates a report that will list all of the services, object, and attribute classes that have been extended for Maximo or Maximo industry solutions and add-on products.&lt;br&gt;&#xA;You may also try another technique to compare two different Maximo instances as described in &lt;a href=&#34;http://bportaluri.com/2012/01/listing-existing-maximotpae.html&#34;&gt;this post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo performances and network latency</title>
      <link>https://bportaluri.click/post/2013/04/maximo-performance-network-latency-ping/</link>
      <pubDate>Tue, 02 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/04/maximo-performance-network-latency-ping/</guid>
      <description>&lt;p&gt;Maximo and other IBM service management products based on TPAE (like SmartCloud Control Desk) can be seen as sitting at the apex of a pyramid that consists of network, hardware, and software services.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://2.bp.blogspot.com/-8VyKhy3l7Ag/UVrsfyc8o1I/AAAAAAAAFZY/PxtlIU9vVGw/s1600/tpae-performance-pyramid.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/tpae-performance-pyramid.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As you can see, network performance are the foundation of the pyramid.&lt;br&gt;&#xA;The simplest way of measuring network performances and speed is the ping command. I understand that this is not a professional measuring tool but it is almost always enough accurate for a first troubleshooting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to improve DocLinks performances in Maximo/TPAE applications</title>
      <link>https://bportaluri.click/post/2013/03/improve-doclinks-performances-maximo-tpae/</link>
      <pubDate>Fri, 22 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/improve-doclinks-performances-maximo-tpae/</guid>
      <description>&lt;p&gt;During a performance assessment of a production customer environment I have set the &lt;em&gt;mxe.db.logSQLTimeLimit&lt;/em&gt; system property to 2000 to log all long-running SQL statements (see &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21291250&#34;&gt;this TechNote&lt;/a&gt; for details). Looking at the system logs I have noticed many entries like this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;select * from doclinks where (ownertable=&amp;lsquo;WORKORDER&amp;rsquo; and ownerid=1065680) or (ownertable=&amp;lsquo;WORKORDER&amp;rsquo; and ownerid in (select workorderid from workorder where &amp;hellip;) &lt;strong&gt;execution took 4653 milliseconds&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Five seconds each time you view a work order in Work Order Tracking application just to check if the there are any attached document is reeeaaally baaad!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is an Object in a workflow?</title>
      <link>https://bportaluri.click/post/2013/03/conditional-expression-object-in-workflow/</link>
      <pubDate>Thu, 21 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/conditional-expression-object-in-workflow/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you need to make a field or an object readonly if it has an active and running workflow you are in right place!&lt;br&gt;&#xA;All you need is a conditional expression that can be used in conditional UI or data restriction.&lt;br&gt;&#xA;The following conditional expression evaluate to true if a Work Order is in a workflow.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: WOINWF&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt;: True if WO is in WF&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expression&lt;/strong&gt;: exists (select 1 from wfassignment where assignstatus=&amp;lsquo;ACTIVE&amp;rsquo; and ownertable=&amp;lsquo;WORKORDER&amp;rsquo; and ownerid=:workorderid )&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If you need the opposite behaviour use this other conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understand and Audit your Maximo Licenses</title>
      <link>https://bportaluri.click/post/2013/03/understand-audit-maximo-license/</link>
      <pubDate>Fri, 15 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/understand-audit-maximo-license/</guid>
      <description>&lt;p&gt;Maximo licensing model is not simple. In this article I will try to present it the most simple way and to provide some useful tips to perform a licensing audit in your environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;NOTE: The simplification does not consider all the possible versions of Maximo, add-ons, industry solutions, etc.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Maximo licensing model&lt;/strong&gt;&lt;br&gt;&#xA;IBM Maximo products are typically licensed by users. Currently, the IBM Maximo Asset Management suite offers several levels of licensing options:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to enable Axis (Web Services) logging</title>
      <link>https://bportaluri.click/post/2013/03/how-to-enable-web-services-logging/</link>
      <pubDate>Wed, 13 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/how-to-enable-web-services-logging/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo uses the &lt;a href=&#34;http://axis.apache.org/&#34;&gt;Apache Axis library&lt;/a&gt; to call external Web Services. Sometimes could be useful enable the logging for this library instead of sniffing connections and protocols to figure out what is going on.&lt;br&gt;&#xA;Axis uses Apache commons logging for logging which in turn provides a generic interface to different logging tools (simple log, JDK logging, log4J,&amp;hellip;). So the first configuration to set is which logging tool AXIS must use.&lt;br&gt;&#xA;Such configuration must be done in the &lt;em&gt;commons-logging.properties&lt;/em&gt; file which must be placed somewhere in the application server&amp;rsquo;s CLASSPATH. This file is not delivered by Maximo so if not found the simple log is used by default. Otherwise the properties.jar file could be the right place. In the commons-logging.properties the property &lt;em&gt;org.apache.commons.logging.Log&lt;/em&gt; must be set to the class implementation which can be:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checkpoints for fixpack and addon installation</title>
      <link>https://bportaluri.click/post/2013/03/checkpoints-fixpack-addon-installation/</link>
      <pubDate>Tue, 12 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/checkpoints-fixpack-addon-installation/</guid>
      <description>&lt;p&gt;Many customers I work with use a procedure like &lt;a href=&#34;http://bportaluri.com/2012/03/cloning-maximo-environment.html&#34;&gt;this one&lt;/a&gt; to clone Maximo environments between production, test and development environments. When you use such techniques, you may quickly screw up some settings used during installation of Maximo fixpacks and upgrades.&lt;br&gt;&#xA;Here are some important things to check before installing any release, fixpack or add-on.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Maximo properties&lt;/strong&gt;&lt;br&gt;&#xA;First of all check the famous &lt;strong&gt;&lt;em&gt;maximo.properties&lt;/em&gt;&lt;/strong&gt; file under &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMPDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\maximo\applications\maximo\properties&lt;/em&gt; folder.&lt;br&gt;&#xA;The installation shouldn&amp;rsquo;t use the settings stored in this file but it&amp;rsquo;s worth checking.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Maximo assessment</title>
      <link>https://bportaluri.click/post/2013/03/quick-maximo-assessment/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/quick-maximo-assessment/</guid>
      <description>&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&#xD;&#xA;  &lt;img src=&#34;images/Medico_stetoscopio-300x246-1.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/th&gt;&#xA;          &lt;th&gt;My job brings me across Europe to meet many different customers and work with a vast variety of Maximo environments. One of the most important tasks is to be able to quickly assess a Maximo environment that I have never seen before.&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;How much data?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the tools I use is a set of SQL queries that simply counts the rows of the most important Maximo tables. With the result of these script I can quickly spot unused features, large tables, and other useful insights.&lt;br&gt;&#xA;Here is the SQL script. Feel free to use it and to suggest improvements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Show current logged users in MAXADMIN&#39;s Start Center</title>
      <link>https://bportaluri.click/post/2013/03/show-current-logged-users-start-center/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/03/show-current-logged-users-start-center/</guid>
      <description>&lt;p&gt;A useful portlet (result set) that I typically configure on MAXADMIN&amp;rsquo;s Start Center is the list of users logged to Maximo server. I use this to perform unplanned system maintenance that requires setting admin mode or restarting the server.&lt;/p&gt;&#xA;&lt;p&gt;To configure this portlet you first have to create the related query. Open &lt;em&gt;Users&lt;/em&gt; application, input the following where clause (under Advanced Search menu) and press OK button.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;userid in (select userid from maxsession where active=1 and issystem!=1)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save the query with the following properties:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find all custom triggers on Maximo tables</title>
      <link>https://bportaluri.click/post/2013/02/find-custom-triggers-maximo-tables/</link>
      <pubDate>Wed, 20 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/02/find-custom-triggers-maximo-tables/</guid>
      <description>&lt;p&gt;Before Maximo 6 it was a common practice to implement customizations using database triggers. Although Conditional Expressions, SigOptions, Java coding and scripting are now available in Maximo 7, I still see many Maximo environments with a lot of database triggers.&lt;br&gt;&#xA;In a recent project I have found a Maximo system with more than 30 triggers and many of these were used to send emails to specific users. Since those emails were sent synchronously during inserts and updates, they were causing lots of performance issues.&lt;br&gt;&#xA;For consultants like me it may be useful to have a set of SQL statements to run against a Maximo database to have a quick grasp of the level of customizations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to fix Office 2007 attachments downloaded as zip files</title>
      <link>https://bportaluri.click/post/2013/02/office-word-excel-docx-xlsx-2007-attachments-zip/</link>
      <pubDate>Wed, 13 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/02/office-word-excel-docx-xlsx-2007-attachments-zip/</guid>
      <description>&lt;p&gt;Few times I have found a small but annoying issue on Maximo when attaching Office 2007 files. Do you know those Excel, Word, PowerPoint files with xlsx, docx, pptx extensions? Yes, those!&lt;/p&gt;&#xA;&lt;p&gt;If you are using Microsoft Internet Explorer it may happen that these files can be uploaded successfully into your DOCLINKS folder but when you try to retrieve them they are downloaded as zip files.&lt;br&gt;&#xA;If you have this problem here is the solution for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multiple browser sessions</title>
      <link>https://bportaluri.click/post/2013/02/maximo-multiple-concurrent-browser-session/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/02/maximo-multiple-concurrent-browser-session/</guid>
      <description>&lt;p&gt;Did you ever need to open multiple Maximo UI sessions?&lt;br&gt;&#xA;If you want to perform work in parallel to become more productive, you can launch multiple browser tabs or windows as the same user.&lt;br&gt;&#xA;You only need to use a URL like this to connect to your Maximo server:&lt;br&gt;&#xA;     http://&lt;/p&gt;&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;X&lt;/mi&gt;&lt;mi&gt;H&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;MXHOST&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;MX&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.08125em;&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;OST&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;/maximo/ui/login&lt;/p&gt;&#xA;&lt;p&gt;When this procedure is followed correctly, each browser tab will receive its own unique uisessionid allowing to work concurrently with multiple browser&amp;rsquo;s tabs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A new working week begins...</title>
      <link>https://bportaluri.click/post/2013/01/a-new-working-week-begins/</link>
      <pubDate>Sun, 27 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/a-new-working-week-begins/</guid>
      <description>&lt;p&gt;A little comic to start this brand new week.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/geek.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/geek.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>A new interesting Android tablet for Maximo</title>
      <link>https://bportaluri.click/post/2013/01/a-new-interesting-android-tablet-for/</link>
      <pubDate>Fri, 18 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/a-new-interesting-android-tablet-for/</guid>
      <description>&lt;p&gt;After &lt;a href=&#34;http://bportaluri.com/2012/06/best-device-tablet-everyplace-motorola.html&#34;&gt;Motorola ET1 tablet&lt;/a&gt; and &lt;a href=&#34;http://bportaluri.com/2012/12/panasonic-tablet-ibm-maximo-mobile-everyplace.html&#34;&gt;Toughpad FZ-A1&lt;/a&gt; a new option is now available to mobilize your Maximo users.&lt;br&gt;&#xA;Few days ago Panasonic has announced the availability of the &lt;a href=&#34;http://www.panasonic.com/business/toughpad/us/rugged-b1-android-tablet-overview.asp&#34;&gt;Toughpad JT-B1&lt;/a&gt; 7-inch Android tablet.&lt;br&gt;&#xA;I will never stop saying that I think Android is the best strategic choice for the Mobile workforce. IBM is focusing on this platform and will soon announce some news in this field covering some gaps in the mobile space. Stay tuned&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install a SmartCloud Control Desk demo system on Linux RedHat</title>
      <link>https://bportaluri.click/post/2013/01/install-maximo-demo-system-on-linux/</link>
      <pubDate>Thu, 17 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/install-maximo-demo-system-on-linux/</guid>
      <description>&lt;p&gt;In this post I will describe all the main steps required to install an IBM SCCD demo system on a Linux RedHat 5.7 x64 machine. All the Maximo components will be installed on the same OS for simplicity.&lt;br&gt;&#xA;NOTE: Please check supported versions of Linux for server and admin workstation in &lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=a9ba1efe-b731-4317-9724-a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98&amp;amp;file=97d773e7-2177-4c0a-8b6b-170374718f9e&#34;&gt;TPAE Product Configuration Matrix&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Operating System installation&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;First of all I have created a new VM on my VMware ESX server. I have allocated 5 GB of RAM and 50 GB of disk space. The I have mounted the ISO image of the RHEL DVD and selected &amp;lsquo;Connect at power on&amp;rsquo;. Here is how the VM properties should look like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enable pinch-to-zoom on Maximo Everyplace 7.1</title>
      <link>https://bportaluri.click/post/2013/01/enable-pinch-to-zoom-maximo-everyplace/</link>
      <pubDate>Wed, 16 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/enable-pinch-to-zoom-maximo-everyplace/</guid>
      <description>&lt;p&gt;Everyplace 7.5 and above provides &lt;a href=&#34;http://pic.dhe.ibm.com/infocenter/tivihelp/v50r1/index.jsp?topic=%2Fcom.ibm.evr.doc%2Fevr%2Fc_whats_new_evr.html&#34;&gt;pinch-to-zoom functionality&lt;/a&gt;. If you need nice feature on lower versions and you cannot upgrade there is a small trick to fix this problem.&lt;br&gt;&#xA;You only need to manually edit &lt;em&gt;maximouiweb.war\webclient\components\page.jsp&lt;/em&gt; file and remove the following piece of code rebuild the EAR file and redeploy it.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;maximum-scale=1.000; minimum-scale=1.000&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Be aware that changes to jsp files are not preserved during upgrades or fixpack/hotfix installation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Thanks to my colleagues &lt;a href=&#34;http://www.linkedin.com/pub/david-havican/33/67a/463&#34;&gt;David Havican&lt;/a&gt; and &lt;a href=&#34;http://www.linkedin.com/pub/kevin-ferguson/a/714/a03&#34;&gt;Kevin Ferguson&lt;/a&gt; for this little tip.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting to Problems Before They Get to You</title>
      <link>https://bportaluri.click/post/2013/01/maximo-preventive-maintenance-video/</link>
      <pubDate>Tue, 15 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/maximo-preventive-maintenance-video/</guid>
      <description>&lt;p&gt;Ever since the dawn of modern industry, regardless of how old your plant or assets are or what type of product is made at your plant, it&amp;rsquo;s all about getting to problems before they get to you.&lt;/p&gt;&#xA;&lt;p&gt;There are four key elements to optimizing the up time of your assets.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Leverage data available from the Dynamic Infrastructure and Smart Devices.&lt;/li&gt;&#xA;&lt;li&gt;Be able to recognize potential issues before they become real problems.&lt;/li&gt;&#xA;&lt;li&gt;Respond with an approach that you know is going to work.&lt;/li&gt;&#xA;&lt;li&gt;Have the experience and information that you gather contribute to continued improvement.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;See how Maximo can help in &lt;a href=&#34;http://ibmtvdemo.edgesuite.net/software/tivoli/demos/Maximo_GettingToProblems/demo.html&#34;&gt;this IBM video&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to extract failure codes, problems, causes and remedies</title>
      <link>https://bportaluri.click/post/2013/01/extract-failure-code-problem-cause-remedy/</link>
      <pubDate>Fri, 11 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2013/01/extract-failure-code-problem-cause-remedy/</guid>
      <description>&lt;p&gt;Today a customer asked me to extract the full listing of failure codes, problems, causes and remedies. He wants to be able to create an Excel spreadsheet to analyze the failure codes tree in order to improve and reorganize such structure.&lt;br&gt;&#xA;Here is the SQL query that can extract this information from Maximo database.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;select f.failurecode failureclass, p.failurecode problem, c.failurecode cause, r.failurecode remedyfrom failurelist fleft outer join failurelist p on p.parent=f.failurelist and p.type=&amp;#39;PROBLEM&amp;#39;left outer join failurelist c on c.parent=p.failurelist and c.type=&amp;#39;CAUSE&amp;#39;left outer join failurelist r on r.parent=c.failurelist and r.type=&amp;#39;REMEDY&amp;#39;where f.parent is nullorder by f.failurecode, p.failurecode, c.failurecode, r.failurecode;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you need to import failure codes hierarchy you may take a look at &lt;a href=&#34;http://bportaluri.com/2013/07/how-to-import-failure-list-from-excel.html&#34;&gt;this article&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo command line reference</title>
      <link>https://bportaluri.click/post/2012/12/maximo-command-line-reference/</link>
      <pubDate>Fri, 14 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/12/maximo-command-line-reference/</guid>
      <description>&lt;p&gt;I think that one of the things that are missing in the Maximo documentation is a command line reference. That&amp;rsquo;s why I decided to go through the Maximo directories and search for commands that can be run the system prompt.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;The following list should be intended as a work in progress. Many commands are not documented at all and I was not able to find any useful resource over the internet. If you have any additional information please leave a comment to this post and I will update this page.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>I&#39;m Winston Wolf I solve problems</title>
      <link>https://bportaluri.click/post/2012/12/maximo-consultant-job/</link>
      <pubDate>Fri, 07 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/12/maximo-consultant-job/</guid>
      <description>&lt;p&gt;As Maximo consultant I often feel like Winston Wolf in the famous Pulp Fiction movie.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another interesting tablet for Maximo</title>
      <link>https://bportaluri.click/post/2012/12/panasonic-tablet-ibm-maximo-mobile-everyplace/</link>
      <pubDate>Wed, 05 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/12/panasonic-tablet-ibm-maximo-mobile-everyplace/</guid>
      <description>&lt;p&gt;Few days ago Panasonic announced the commercialization of the long waited &lt;a href=&#34;http://www.panasonic.com/business/toughpad/us/best-android-rugged-tablet-overview.asp&#34;&gt;Toughpad FZ-A1&lt;/a&gt;.&lt;br&gt;&#xA;I think that Android is the best strategic option for mobile workforce enablement and the new Toughpad seems a very interesting rugged device to run Maximo Everyplace.&lt;br&gt;&#xA;Another interesting news is that IBM has planned to deliver Maximo Mobile Suite on Android platform in the middle of 2013 so this is another good reason to go with Google&amp;rsquo;s mobile platform.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Do you use Maximo Everyplace on Android?</title>
      <link>https://bportaluri.click/post/2012/12/maximo-everyplace-android-mobile-app/</link>
      <pubDate>Tue, 04 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/12/maximo-everyplace-android-mobile-app/</guid>
      <description>&lt;p&gt;If you use Maximo Everyplace on Android you may wish to look at &lt;a href=&#34;https://www-304.ibm.com/software/brandcatalog/ismlibrary/details?catalog.label=1TW10MA4R&#34;&gt;this small native app&lt;/a&gt; that I have developed to overcome some minor limitations of the product.&lt;/p&gt;&#xA;&lt;p&gt;This are the enhancement provided by this native mobile app:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Free up screen space hiding browser&amp;rsquo;s address bar and notification bar&lt;/li&gt;&#xA;&lt;li&gt;Enable barcode scanning through the built-in camera&lt;/li&gt;&#xA;&lt;li&gt;Disable back button to avoid browser mess up&lt;/li&gt;&#xA;&lt;li&gt;Force user logout on exit&lt;/li&gt;&#xA;&lt;li&gt;Lock the display zoom&lt;/li&gt;&#xA;&lt;li&gt;Disable automatic screen orientation (auto, portrait, landscape)&lt;/li&gt;&#xA;&lt;li&gt;Enforce the correct browser&amp;rsquo;s settings needed to run Maximo Everyplace&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Leave a comment here on ISM Library for feedback and suggestions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to reset user&#39;s Start Centers</title>
      <link>https://bportaluri.click/post/2012/11/how-to-reset-users-start-centers/</link>
      <pubDate>Mon, 26 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/how-to-reset-users-start-centers/</guid>
      <description>&lt;p&gt;Today I have discovered a nice script called &lt;em&gt;cleanstartcenters.bat&lt;/em&gt; that can be used to force the reload of the Start Center for a specific set of users. The usage of this script is documented in this &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21584731&#34;&gt;IBM TechNote&lt;/a&gt;.&lt;br&gt;&#xA;Unfortunately, the script seems have some problems or I&amp;rsquo;m am too silly to use it :-) so I decided to develop my own set of SQL commands.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Based on the technique described here I have developed a &lt;a href=&#34;https://bportaluri.com/2018/11/automation-script-reset-users-start-center.html&#34;&gt;useful Automation Script&lt;/a&gt; to automate this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom Java Class for Roles</title>
      <link>https://bportaluri.click/post/2012/11/custom-java-class-role/</link>
      <pubDate>Thu, 22 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/custom-java-class-role/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is just an example of a Maximo role defined with a custom Java class. In this example I have defined a role that can be used to send emails (Communication Template) to the workorder&amp;rsquo;s supervisor or to the owner group if the supervisor is not set.&lt;/p&gt;&#xA;&lt;p&gt;This is the definition of the role.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://3.bp.blogspot.com/-N1tUZ18Wxdo/UK5YwSazp6I/AAAAAAAAEp8/76Xlsb5dP-k/s1600/custom-class-role.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/custom-class-role.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;And this is the Java code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reading and updating Mbo&#39;s attributes</title>
      <link>https://bportaluri.click/post/2012/11/reading-and-updating-mbos-attributes/</link>
      <pubDate>Sun, 18 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/reading-and-updating-mbos-attributes/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;http://bportaluri.com/2012/11/query-fetch-mbo-mboset.html&#34;&gt;this post&lt;/a&gt; I have explained how to query and fetch MBOs from the database. In this small article I will show how to get and set the attributes of an Mbo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;How to read attributes&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To read the attributes of an Mbo you can use teh following &lt;em&gt;getXxxx&lt;/em&gt; methods:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;getBoolean&lt;/li&gt;&#xA;&lt;li&gt;getByte&lt;/li&gt;&#xA;&lt;li&gt;getBytes&lt;/li&gt;&#xA;&lt;li&gt;getDate&lt;/li&gt;&#xA;&lt;li&gt;getDouble&lt;/li&gt;&#xA;&lt;li&gt;getFloat&lt;/li&gt;&#xA;&lt;li&gt;getInt&lt;/li&gt;&#xA;&lt;li&gt;getLong&lt;/li&gt;&#xA;&lt;li&gt;getString&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;All these methods accept only one argument which is the name of the attribute to be retrieved from the Mbo.&lt;br&gt;&#xA;Here is a a small example showing how to retrieve the ASSETNUM and ASSETID of an asset.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quering and fetching MBOs</title>
      <link>https://bportaluri.click/post/2012/11/query-fetch-mbo-mboset/</link>
      <pubDate>Sat, 17 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/query-fetch-mbo-mboset/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;To query a Maximo table using Java you need to perform the following steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get a reference to the MboSet.&lt;/li&gt;&#xA;&lt;li&gt;Specify a where clause.&lt;/li&gt;&#xA;&lt;li&gt;Loop through the MboSet and fetch Mbos.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The following example shows how to retrieve all the assets located in BEDFORD site.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MboSetRemote assetSet = getMboSet(&amp;#34;ASSET&amp;#34;);assetSet.setWhere(&amp;#34;LOCATION=&amp;#39;BEDFORD&amp;#39;&amp;#34;);MboRemote asset=null;for(int i=0; (asset=assetSet.getMbo(i))!=null; i++){    ...}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;em&gt;getMboSet&lt;/em&gt; method gets a reference the ASSET table.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;em&gt;setWhere&lt;/em&gt; method specifies the SQL where clause that must be applied to filter data. If the setWhere is not invoked, the entire table will be fetched.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;em&gt;getMbo&lt;/em&gt; method returns a specific element of the MboSet collection. The first invocation of &lt;em&gt;getMbo&lt;/em&gt; method automatically fetches data and initialize the MboSet.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>How to test workflows notifications and emails</title>
      <link>https://bportaluri.click/post/2012/11/test-workflow-notifications-email-communication-template/</link>
      <pubDate>Fri, 16 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/test-workflow-notifications-email-communication-template/</guid>
      <description>&lt;p&gt;Today I want to share with you all a very efficient technique that I use to test email notifications and communication templates in workflows.&lt;/p&gt;&#xA;&lt;p&gt;The technique is based on a very lightweight dummy SMTP server called &lt;em&gt;&lt;strong&gt;smtp4dev&lt;/strong&gt;&lt;/em&gt; that can run on any Windows system. This small application sits in the system tray and does not deliver the received messages. The received messages can be quickly viewed, saved and the source/structure inspected.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo 7.5 education sessions</title>
      <link>https://bportaluri.click/post/2012/11/maximo-75-education-sessions/</link>
      <pubDate>Tue, 13 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/maximo-75-education-sessions/</guid>
      <description>&lt;p&gt;During the second half of 2012 IBM held some great education sessions to assist customers in planning their upgrade to Maximo Asset Management 7.5 and SmartCloud Control Desk 7.5. This series was devoted to the Maximo product suite, add-on&amp;rsquo;s and industry solutions. In each session, a member of the business architecture team delivers a presentation chronicling the incremental enhancements made in the product as well as point out functional changes to existing features.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo application labels explained</title>
      <link>https://bportaluri.click/post/2012/11/maximo-application-labels-explained/</link>
      <pubDate>Sun, 11 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/maximo-application-labels-explained/</guid>
      <description>&lt;p&gt;Maximo stores labels in multiple places. When you add a label to a field, tab or section in Application Designer, Maximo stores this in the application XML in the MAXPRESENTATION table and in the MAXLABELS table. For fields, labels are stored in Database Configuration, in the &lt;em&gt;Title&lt;/em&gt; field of the attribute (MAXATTRIBUTE table).&lt;/p&gt;&#xA;&lt;p&gt;For example, if you open the properties of a texbox using the Application Designer you will see two fields: Label and Default Label.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to Maximo Integration Framework (MIF)</title>
      <link>https://bportaluri.click/post/2012/11/introduction-to-maximo-integration-framework-mif/</link>
      <pubDate>Sat, 10 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/11/introduction-to-maximo-integration-framework-mif/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;What is Maximo Integration Framework?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Maximo Integration Framework (MIF) is an integral part of the Tivoli Process Automation Engine (TPAE) that allows the &lt;strong&gt;synchronization and integration of data&lt;/strong&gt; and of applications between TPAE and external systems in &lt;strong&gt;real time or batch mode&lt;/strong&gt; by using a &lt;strong&gt;variety of communication protocols&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Main Concepts&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The three main concepts of MIF are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Object Structures&lt;/strong&gt; are collection of Business Objects and relationships that define the content of messages for Channels and Services.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Services&lt;/strong&gt; receive data into the system&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Channels&lt;/strong&gt; send data out of the system&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This picture gives an overview of the MIF architecture and of the available services (depicted in green) and channels (depicted in yellow).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reset the value of a field when another field is modified</title>
      <link>https://bportaluri.click/post/2012/10/reset-value-field-when-another-changed-java/</link>
      <pubDate>Fri, 26 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/reset-value-field-when-another-changed-java/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Today I want to share with you some Java sample code to reset the value of a field when another field is modified.&lt;br&gt;&#xA;In the example below I have implemented a little piece of logic to reset the WORKORDER.SUPEVISOR field when the WORKORDER.OWNERGROUP is modified.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://2.bp.blogspot.com/-unRBANKIkZU/UIpxHAjhxZI/AAAAAAAAEjk/WH4YJWtF_js/s1600/maximo-wo-owner-supervisor.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-wo-owner-supervisor.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here is the Java code.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;package cust.psdi.app.workorder;import psdi.mbo.*;import psdi.util.*;import java.rmi.*;/** * Custom field class to reset the supervisor when the Owner Group is changed */public class FldWOOwnerGroup extends psdi.app.workorder.FldWOOwnerGroup{  public FldWOOwnerGroup(MboValue mbv) throws MXException  {    super(mbv);    }  public void action() throws MXException, RemoteException  {    if (!getMboValue().isNull() &amp;amp;&amp;amp;        !getMboValue().equals(getMboValue().getPreviousValue()))    {      getMboValue(&amp;#34;SUPERVISOR&amp;#34;).setValueNull(NOACCESSCHECK|NOVALIDATION_AND_NOACTION);    }    super.action();  }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Deploy the &lt;em&gt;FldWOOwnerGroup.class&lt;/em&gt; file in your Maximo source tree and attach it on WORKORDER.OWNERGROUP field using the Database Configuration application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create Maximo demo database (MAXDEMO)</title>
      <link>https://bportaluri.click/post/2012/10/create-maximo-demo-maxdemo-database-sample-data/</link>
      <pubDate>Fri, 19 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/create-maximo-demo-maxdemo-database-sample-data/</guid>
      <description>&lt;p&gt;The Maximo contains an extremely useful command to create a demo database filled with a sample data. This can be really helpful when learning haw Maximo works.&lt;/p&gt;&#xA;&lt;p&gt;Tho create the demo database perform these steps.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stop the application server (MXServer)&lt;/li&gt;&#xA;&lt;li&gt;Open a command prompt&lt;/li&gt;&#xA;&lt;li&gt;Move to:&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi mathvariant=&#34;normal&#34;&gt;_&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMP\_DIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.9933em;vertical-align:-0.31em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord&#34; style=&#34;margin-right:0.02778em;&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\maximo\tools\maximo&lt;/li&gt;&#xA;&lt;li&gt;Issue the following command:&lt;br&gt;&#xA;&lt;em&gt;&lt;strong&gt;maxinst -s&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;X&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mi&gt;L&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;INDEXTABLESPACE&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;EXT&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05017em;&#34;&gt;B&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;ESP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;CE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; -t&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mi&gt;L&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;DATATABLESPACE&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05017em;&#34;&gt;B&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;ESP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05764em;&#34;&gt;CE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;By default both tablespaces are equals to MAXDATA so the following command should work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM&#39;s mobile solutions for Maximo</title>
      <link>https://bportaluri.click/post/2012/10/ibm-maximo-solutions-mobile-everyplace/</link>
      <pubDate>Fri, 19 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/ibm-maximo-solutions-mobile-everyplace/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;This article is outdated!&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&#xA;&lt;strong&gt;&lt;em&gt;IBM Anywhere is now available.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;In several forums and groups I have recently seen, there is some confusion around the current IBM&amp;rsquo;s mobile solutions for Maximo so I will try to give my personal view on this hot topic.&lt;br&gt;&#xA;Before going on keep in mind that this analysis is updated to the current situation as of October 2012 and may become outdated in few months.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom condition Java class</title>
      <link>https://bportaluri.click/post/2012/10/custom-condition-java-class-expression/</link>
      <pubDate>Thu, 18 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/custom-condition-java-class-expression/</guid>
      <description>&lt;p&gt;Sometimes standard Conditional Expressions are not enough. Sometimes the logic to implement is too complex to be implemented using an SQL expression. In such cases Maximo allows to implement the condition logic in a custom condition class using Java.&lt;/p&gt;&#xA;&lt;p&gt;To implement a condition class you must extend &lt;em&gt;psdi.common.condition.CustomCondition&lt;/em&gt; and override &lt;em&gt;evaluateCondition&lt;/em&gt; and &lt;em&gt;toWhereClause&lt;/em&gt; methods. Here is a sample class.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;public class IsIssueProblem implements CustomCondition{  public boolean evaluateCondition(MboRemote mbo, Object obj)         throws MXException, RemoteException  {    if (mbo.getString(&amp;#34;ISSUETYPE&amp;#34;).equalsIgnoreCase(&amp;#34;PROBLEM&amp;#34;))    {      return false;    }    else    {      return false;    }  }  public String toWhereClause(Object obj, MboSetRemote mbs)         throws MXException, RemoteException  {    // ensure this method is not called by throwing an Exception    throw new MXApplicationException(&amp;#34;&amp;#34;, &amp;#34;&amp;#34;);  }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The provided snippet works for all Conditional Expression usages except for QUALIFIED security restrictions. In this cases you have to implement the &lt;em&gt;toWhereClause&lt;/em&gt; method to return a valid SQL clause.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find large Maximo tables on DB2</title>
      <link>https://bportaluri.click/post/2012/10/find-large-maximo-tables-on-db2/</link>
      <pubDate>Wed, 17 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/find-large-maximo-tables-on-db2/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;http://bportaluri.com/2012/09/find-large-maximo-tables-indexes-oracle.html&#34;&gt;this article&lt;/a&gt; I have explained how to list the larger database tables and indexes on Oracle.&lt;br&gt;&#xA;On DB2 you can use the following one.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT name, card, npages, fpages, stats_timeFROM sysibm.systablesWHERE creator = &amp;#39;MAXIMO&amp;#39; AND type=&amp;#39;T&amp;#39;ORDER BY card DESC;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The returned columns are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;NAME: Name of the table&lt;/li&gt;&#xA;&lt;li&gt;CARD: Number of rows&lt;/li&gt;&#xA;&lt;li&gt;NPAGES: Total number of pages on which the rows of the table exist&lt;/li&gt;&#xA;&lt;li&gt;FPAGES: Total number of pages&lt;/li&gt;&#xA;&lt;li&gt;STATS_TIME: Date when the statistics of the table were collected&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The STATS_TIME is important both to understand if statistics are updated in your database (which is important for performances) and for check if the data retrieved is updatad. If timestamps here are too old you should regenerate database statistics. You can do this selecting &lt;em&gt;Update Statistics&lt;/em&gt; action from the &lt;em&gt;Database Configuration&lt;/em&gt; application menu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to change Maximo skin</title>
      <link>https://bportaluri.click/post/2012/10/how-to-change-maximo-skin/</link>
      <pubDate>Sun, 14 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/how-to-change-maximo-skin/</guid>
      <description>&lt;p&gt;As you probably know, in recent versions of Maximo IBM has introduced a new look of the user interface.&lt;br&gt;&#xA;The two available skins are called &lt;em&gt;classic&lt;/em&gt; and &lt;em&gt;tivoli09&lt;/em&gt;. The following screenshots show the two looks.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;http://1.bp.blogspot.com/-uyZ296HBLMg/UHsod_rxHiI/AAAAAAAAEiE/fYmN7o6Ly24/s1600/maximo-skin-classic.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-skin-classic.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Skin: classic&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;http://3.bp.blogspot.com/-QR-N6mX4SzA/UHsohwxebeI/AAAAAAAAEiM/e1buU15quVs/s1600/maximo-skin-tivoli09.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximo-skin-tivoli09.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Skin: tivoli09&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;The new skin is available starting from Maximo 7.1.1.5 although it may not be set as the default one.&lt;br&gt;&#xA;You can easily switch between the different skins in several ways described hereafter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to display a YES/NO dialog and get user input</title>
      <link>https://bportaluri.click/post/2012/10/how-to-display-yes-no-ok-cancel-dialog-box-user-input/</link>
      <pubDate>Thu, 11 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/10/how-to-display-yes-no-ok-cancel-dialog-box-user-input/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this little article I&amp;rsquo;m going to show how to display a dialog box with Yes/No or OK/Cancel buttons and how to capture the user&amp;rsquo;s input to execute some custom logic. For example, you have a Java method attached to a button on the toolbar or to an action menu entry as described in &lt;a href=&#34;http://bportaluri.com/2011/08/call-java-method-on-action-menu-or.html&#34;&gt;this article&lt;/a&gt; and you want to display a warning message asking for confirmation before executing some processing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let&#39;s celebrate the 100th post!!!</title>
      <link>https://bportaluri.click/post/2012/09/maximodev-target-celebrate-100-post/</link>
      <pubDate>Sat, 29 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/maximodev-target-celebrate-100-post/</guid>
      <description>&lt;p&gt;MaximoDev has now reached &lt;em&gt;&lt;strong&gt;100 posts of useful tips, tutorials and small guides&lt;/strong&gt;&lt;/em&gt; to help the Maximo technical community.&lt;br&gt;&#xA;After more than 2 years of MaximoDev activity, I have achieved an incredible success becoming the &lt;em&gt;&lt;strong&gt;most followed and visited free and ads-free web site about IBM Maximo features, configuration, customization and development topics&lt;/strong&gt;&lt;/em&gt;.&lt;br&gt;&#xA;To explain you the success of this blog I will show the historical trend of the website&amp;rsquo;s monthly page views.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to check for null values</title>
      <link>https://bportaluri.click/post/2012/09/how-to-check-for-null-values/</link>
      <pubDate>Thu, 27 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/how-to-check-for-null-values/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A very common doubt when extending MBOs is what value returns the &lt;em&gt;Mbo.getString()&lt;/em&gt; method when the target field has a &lt;em&gt;null&lt;/em&gt; value. The answer is: It returns an empty string &amp;ldquo;&amp;rdquo;.&lt;br&gt;&#xA;Thus to check if the DESCRIPTION of an Mbo is empty or null you can use two basic approaches.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;getString(&amp;#34;DESCRIPTION&amp;#34;).equals(&amp;#34;&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;getString(&amp;#34;DESCRIPTION&amp;#34;).length()==0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you need do distinguish between null values and empty string you can use the &lt;em&gt;Mbo.getMboValueData()&lt;/em&gt; method.&lt;br&gt;&#xA;Thus to check if the DESCRIPTION of an Mbo is null use this code snippet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s new in Maximo Asset Management 7.5.0.3</title>
      <link>https://bportaluri.click/post/2012/09/whats-new-in-maximo-asset-management-7503/</link>
      <pubDate>Wed, 26 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/whats-new-in-maximo-asset-management-7503/</guid>
      <description>&lt;p&gt;Maximo Asset Management version 7.5.0.3 incorporates several new features, such as the ability to link Maximo Asset Management applications to external applications and the option to configure high availability for your environment. 7.5.0.3 also introduces email interaction, which enables a user to change the status of an object or workflow assignment by email. In addition to these enhancements, version 7.5.0.3 provides improved documentation in areas such as installation and automation scripting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Maximo email listener with GMail</title>
      <link>https://bportaluri.click/post/2012/09/maximo-tpae-email-listener-gmail/</link>
      <pubDate>Fri, 21 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/maximo-tpae-email-listener-gmail/</guid>
      <description>&lt;p&gt;An outstanding set of articles about how to configure and use the Maximo Email Listener with GMail are available on &lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a&#34;&gt;IBM Asset Management blog&lt;/a&gt;.&lt;br&gt;&#xA;Here are the links:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/email_listener_communications_via_gmail_part_i_importing_the_ssl_certificate8&#34;&gt;Importing the SSL Certificate&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/email_listener_communications_via_gmail_part_ii_configuring_smtp&#34;&gt;Configuring SMTP Over SSL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/email_listener_communications_via_gmail_part_iii_sending_service_requests3&#34;&gt;Sending Service Requests&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Find large Maximo tables and indexes on Oracle</title>
      <link>https://bportaluri.click/post/2012/09/find-large-maximo-tables-indexes-oracle/</link>
      <pubDate>Tue, 18 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/find-large-maximo-tables-indexes-oracle/</guid>
      <description>&lt;p&gt;When you have to assess the system performance of a Maximo server it may be useful to have a quickly see what are the larger database tables and indexes. This can quickly spot some performance issues in your system.&lt;br&gt;&#xA;Large tables generates heavy database I/O workloads when are nor accesses through an index. Large indexes are also inefficient. Creating indexes with too many columns is a very common mistake. Dropping complex indexes and creating two or three smaller ones can improve query times in many cases.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Navigating object relationship in MBO code</title>
      <link>https://bportaluri.click/post/2012/09/navigate-object-relationship-in-mbo-code/</link>
      <pubDate>Tue, 11 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/navigate-object-relationship-in-mbo-code/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;When you are in an &lt;em&gt;Mbo&lt;/em&gt; class or you already have a reference to an &lt;em&gt;Mbo&lt;/em&gt; object is it possible to retrieve the related records using Maximo object relationships as defined in the Database Configuration application.&lt;br&gt;&#xA;For example the &lt;em&gt;ASSET&lt;/em&gt; object has a relationship called &lt;em&gt;ACTIVEASSETMETER&lt;/em&gt; to the &lt;em&gt;ASSETMETER&lt;/em&gt; object. This relationship allows to find all active asset meters for the current asset. The resulting set will contain zero or more objects.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What Mbo/MboSet/MboValueAdapter method should I override?</title>
      <link>https://bportaluri.click/post/2012/09/what-mbo-mboset-mbovalueadapter-override/</link>
      <pubDate>Mon, 10 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/what-mbo-mboset-mbovalueadapter-override/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the biggest issues when implementing Java customizations in the Maximo Business Objects layer is to know what is the best method to override to achieve a specific goal.&lt;br&gt;&#xA;Here I have listed the &lt;strong&gt;most common usages of the the main methods&lt;/strong&gt; in Mbo, MboSet and MboValueAdapter classes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mbo&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;init()&lt;/strong&gt;: Called by the framework when the Mbo has been constructed and the MboValues have been initialized.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Analyze and troubleshoot Maximo performances with Maximo Activity Dashboard (MAD)</title>
      <link>https://bportaluri.click/post/2012/09/analyze-troubleshoot-maximo-performances-maximo-tpae-mad-perfmon/</link>
      <pubDate>Thu, 06 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/analyze-troubleshoot-maximo-performances-maximo-tpae-mad-perfmon/</guid>
      <description>&lt;p&gt;Maximo Activity Dashboard (also known as MAD or PerfMon) is a useful tool to analyze and troubleshoot Maximo performances and is available starting from TPAE 7.1.1.6. This great tool tracks execution times for each browser request (user-click) including the time spent querying DB with a great detail about executed queries and time spent for each sub-step execution.&lt;/p&gt;&#xA;&lt;p&gt;Instructions are different based on the version of TPAE you are running on:&lt;/p&gt;</description>
    </item>
    <item>
      <title>An Open Letter to the Project Management Community</title>
      <link>https://bportaluri.click/post/2012/09/an-open-letter-to-project-management/</link>
      <pubDate>Wed, 05 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/an-open-letter-to-project-management/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s post is very different from a typical MaximoDev technical article. Nevertheless I want to share with my little community my thoughts as a consultant and developer who strongly believes in the &lt;a href=&#34;http://agilemanifesto.org/&#34;&gt;Agile Software Development values and principles&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;em&gt;Dear Project Managers,&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;I hear you have mixed views about the recent, er, “developments”, in the field of Software Development, commonly referred-to as “Agile Software Development practices”. I won’t call them “advances” as we may not be able to agree that they have, in fact, advanced anything.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to debug Maximo/TPAE</title>
      <link>https://bportaluri.click/post/2012/09/how-to-debug-java-mbo-maximo-tpae/</link>
      <pubDate>Wed, 05 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/how-to-debug-java-mbo-maximo-tpae/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Debugging is a great aid in developing Maximo/TPAE customizations in Java. This powerful technique, albeit simple, is too often ignored or neglected by less experienced developers. In this tutorial I will show how to connect Eclipse to a remote Maximo server in debug mode.&lt;br&gt;&#xA;Here we go.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Enable debug mode in WebSphere&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;First thing to do is to enable debugging of the MXServer application server in WebSphere.&lt;br&gt;&#xA;Open WAS console and find the MXServer application server under &amp;lsquo;Servers&amp;rsquo; group.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Web Services tutorial</title>
      <link>https://bportaluri.click/post/2012/09/maximo-integration-framework-web-service-tutorial/</link>
      <pubDate>Mon, 03 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/maximo-integration-framework-web-service-tutorial/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This article explains how to setup and use &lt;a href=&#34;http://en.wikipedia.org/wiki/Web_service&#34;&gt;Web Services&lt;/a&gt; capabilities of the Maximo Integration Framework (MIF/MEA).&lt;br&gt;&#xA;In Maximo there are three different types of services that can be invoked from Web Services: Object Structure, Enterprise and Standard Services. This article will focus on Object Structure Services for simplicity of discussion but is generally useful to understand how to interact with Maximo through Web Services.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.8 - If there is no other way... use JDBC</title>
      <link>https://bportaluri.click/post/2012/09/mbo-performance-tip-jdbc-connection-maximo-database/</link>
      <pubDate>Mon, 03 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/mbo-performance-tip-jdbc-connection-maximo-database/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sometimes you have to perform some complex logic or you have to join several tables to retrieve a piece of data. In other cases there is a piece of code where performance is critical. In such cases it may be hard to achieve good performances accessing and fetching large MBO sets. Now it may be better to directly access the Maximo database to issue a well-tuned SQL query.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.7 - Use efficient SQL</title>
      <link>https://bportaluri.click/post/2012/09/mbo-performance-tip-efficient-sql/</link>
      <pubDate>Sun, 02 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/mbo-performance-tip-efficient-sql/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A not well tuned SQL query is often the biggest contributor to elapsed time taken by Maximo Business Objects (MBO) logic.&lt;/p&gt;&#xA;&lt;p&gt;A general example of this is the use of &lt;em&gt;IN&lt;/em&gt; or &lt;em&gt;NOT IN&lt;/em&gt; in SQL where clauses. Avoid &lt;em&gt;IN&lt;/em&gt; or &lt;em&gt;NOT IN&lt;/em&gt; but use &lt;em&gt;EXISTS&lt;/em&gt; instead in order to increase SQL performance.&lt;/p&gt;&#xA;&lt;p&gt;The two examples below will look for employees that are not managers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.6 - Free resources as soon as possible</title>
      <link>https://bportaluri.click/post/2012/09/mbo-performance-tip-free-resources-close-mboset/</link>
      <pubDate>Sat, 01 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/09/mbo-performance-tip-free-resources-close-mboset/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;It is important to know the difference between &lt;em&gt;close()&lt;/em&gt;, &lt;em&gt;cleanup()&lt;/em&gt;, and &lt;em&gt;clear()&lt;/em&gt; methods and use them to free up resources as soon as possible.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;close()&lt;/strong&gt;: Close the cursor, release the database resources (result set),  SQL statement, and connection key. Does not release MBO objects. You can still work with MBOs already retrieved from the MboSet. Close the set as soon as possible if reusing the set is not needed in following logic.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;cleanup()&lt;/strong&gt;: Reset the MboSet, and clear its current transaction. Clears any filters.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;clear()&lt;/strong&gt;: Removes all the objects from the collection as well as all related objects.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.5 - Avoid using setQbe method, use setWhere instead</title>
      <link>https://bportaluri.click/post/2012/08/mbo-performance-tip-setqbe-setwhere-sql/</link>
      <pubDate>Fri, 31 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-performance-tip-setqbe-setwhere-sql/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;MboSet.setQbe()&lt;/em&gt; method is designed to be used to build filters from the user interface. Using the &lt;em&gt;MboSet.setQbe()&lt;/em&gt; method will automatically add jolly characters in text searches preventing the database server to be able to use indexes.&lt;br&gt;&#xA;For example let&amp;rsquo;s look at the following code snippet.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MboSetRemote assetMboSet = session.getMboSet(&amp;#34;ASSET&amp;#34;);assetMboSet.setQbe(&amp;#34;ASSETNUM&amp;#34;, &amp;#34;1000&amp;#34;);&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This tells the TPAE server to execute an SQL query like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.4 - Be careful when calling MboSet.save()</title>
      <link>https://bportaluri.click/post/2012/08/mbo-performance-tip-save-transaction/</link>
      <pubDate>Thu, 30 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-performance-tip-save-transaction/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This tip regards the correct handling of transactions in TPAE.&lt;/p&gt;&#xA;&lt;p&gt;The important concept to understand is that &lt;strong&gt;&lt;em&gt;MBOs obtained via relationship are included in the same transaction as the parent MBO set&lt;/em&gt;&lt;/strong&gt;. When any MboSet in the transaction is saved, all MboSets in that same transaction will be saved. Any redundant call to MboSet.save() method will affect performance and break the transaction chain.&lt;br&gt;&#xA;Theoretically the MboSet.save() must be called once after all the needed changes have been made to optimize performances and to correclty handle database transactions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.3 - Be light in Mbo initialization methods</title>
      <link>https://bportaluri.click/post/2012/08/mbo-performance-tip-mbo-initialization-light-init-initvalue/</link>
      <pubDate>Wed, 29 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-performance-tip-mbo-initialization-light-init-initvalue/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;initValue()&lt;/em&gt; method is the first method executed after the MBO constructor. It is typically used to initialize attributes on new records and to set default values.&lt;br&gt;&#xA;The &lt;em&gt;init()&lt;/em&gt; method is called after &lt;em&gt;initValue()&lt;/em&gt;. It is typically used to set current attribute as read-only based on some condition.&lt;br&gt;&#xA;Do not query the database or do any other expensive logic in the &lt;em&gt;initValue()&lt;/em&gt; and &lt;em&gt;init()&lt;/em&gt; methods.&lt;br&gt;&#xA;Setting MBO or field flags that require expensive operation or fetching other needed MBOs should be done in &lt;em&gt;initFieldFlagsOnMbo()&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.2 - Use discardable MBOs when possible</title>
      <link>https://bportaluri.click/post/2012/08/mbo-performance-tip-discardable-mbo/</link>
      <pubDate>Tue, 28 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-performance-tip-discardable-mbo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If an MboSet is used for traversing forward only and not to be saved make it discardable by setting the DISCARDABLE flag.&lt;br&gt;&#xA;The following snippet shows how to do it.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MboSetRemote mboSet = getMboSet(&amp;#34;ASSET&amp;#34;);mboSet.setFlag(MboConstants.DISCARDABLE, true);MboRemote mbo=null;for(int i=0; (mbo=mboSet.getMbo(i))!=null; i++){  ...}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Using a discardable MboSet does not cache the MBOs as it fetches from the database thus minimizing JVM memory usage.&lt;br&gt;&#xA;Note that discardable mbos are always read-only.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interacting with an Object Structure Service through HTTP</title>
      <link>https://bportaluri.click/post/2012/08/maximo-integration-framework-object-structure-service-http-tutorial/</link>
      <pubDate>Mon, 27 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/maximo-integration-framework-object-structure-service-http-tutorial/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial I will show how easy it is to query and update data in Maximo using the Integration Framework (MIF) Object Structure Services using a simple HTTP client.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;HTTP test client setup&lt;/strong&gt;&lt;br&gt;&#xA;A great tool for creating sample test HTTP requests is a great Google Chrome add-on called &lt;a href=&#34;https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm&#34;&gt;Postman REST Client&lt;/a&gt;. I strongly suggest to add it to your Chrome browser. If you are a Firefox user then you may try &lt;a href=&#34;https://addons.mozilla.org/en-us/firefox/addon/httprequester&#34;&gt;HTTPRequester&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MBO Performance Tip N.1 - Avoid using MboSet.count() method in loops</title>
      <link>https://bportaluri.click/post/2012/08/mbo-performance-tip-avoid-count-method-loops/</link>
      <pubDate>Sat, 25 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-performance-tip-avoid-count-method-loops/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/2012/08/java-mbo-performance-optimization-tips-suggestions.html&#34;&gt;Java MBO performance optimization golden rules&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I think this is one of the most common errors when developing Java MBO code.&lt;br&gt;&#xA;The &lt;em&gt;MboSet.count()&lt;/em&gt; method issues a &amp;ldquo;SELECT COUNT(*) from &amp;hellip;&amp;rdquo; SQL query to retrieve the number of records in the database table.&lt;br&gt;&#xA;This can be a big problem especially when used in loop statements like this:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MboSetRemote mboSet = getMboSet(&amp;#34;ASSET&amp;#34;);for (int i=0; i &amp;lt; mboSet.count(); i++){  MboRemote mbo = mboSet.getMbo(i);  ...}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The previous code snippet will issue a new SQL count statement for every iteration of the loop.&lt;br&gt;&#xA;A better approach is the following.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java MBO performance optimization golden rules</title>
      <link>https://bportaluri.click/post/2012/08/java-mbo-performance-optimization-tips-suggestions/</link>
      <pubDate>Fri, 24 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/java-mbo-performance-optimization-tips-suggestions/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post I have collected the most important Maximo Business Objects (MBO) development performance tips and suggestions that I have learned during my job as a Maximo Consultant.&lt;br&gt;&#xA;These suggestions are partly distilled from the &lt;a href=&#34;http://www.ibm.com/developerworks/wikis/display/maximo/Maximo+business+object+development&#34;&gt;IBM Maximo wiki page&lt;/a&gt; trying to organize and simplify the information contained in it. I have also added few new tips based on my professional experience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo supported web browsers</title>
      <link>https://bportaluri.click/post/2012/08/maximo-supported-web-browsers/</link>
      <pubDate>Wed, 22 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/maximo-supported-web-browsers/</guid>
      <description>&lt;p&gt;What web browsers can be used to access Maximo?&lt;br&gt;&#xA;Roughly speaking, Maximo supports only Microsoft Internet Explorer and Mozilla Firefox. Said that&amp;hellip; &lt;strong&gt;&lt;em&gt;I currently use Google Chrome with Maximo&lt;/em&gt;&lt;/strong&gt;. Pages load faster and it works perfectly 99% of the times (except for reports).&lt;br&gt;&#xA;The following table gives a quick overview of the current supported web browser versions.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Base Services version&lt;/th&gt;&#xA;          &lt;th&gt;6.2&lt;/th&gt;&#xA;          &lt;th&gt;6.2.5&lt;/th&gt;&#xA;          &lt;th&gt;7.1&lt;/th&gt;&#xA;          &lt;th&gt;7.1.1.4&lt;/th&gt;&#xA;          &lt;th&gt;7.1.1.6&lt;/th&gt;&#xA;          &lt;th&gt;7.5&lt;/th&gt;&#xA;          &lt;th&gt;7.5.0.3&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Internet Explorer 6&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Internet Explorer 7&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Internet Explorer 8&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Internet Explorer 9&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Mozilla Firefox 3.0&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Mozilla Firefox 3.5&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Mozilla Firefox 3.6&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Mozilla Firefox 4&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Mozilla Firefox 10&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Google Chrome&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;em&gt;Reference: &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg27014419&#34;&gt;Product Configuration Matrix&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Integration Framework first setup</title>
      <link>https://bportaluri.click/post/2012/08/maximo-integration-framework-first-setup/</link>
      <pubDate>Mon, 20 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/maximo-integration-framework-first-setup/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you have never used the Maximo Integration Framework you have to check the MIF configuration before being able to play with it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;System Properties&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;All the configuration parameters for MIF can be managed from the System Properties  application: &lt;strong&gt;GoTo -&amp;gt; System Configuration -&amp;gt; Platform Configuration -&amp;gt; System Properties&lt;/strong&gt;. &lt;strong&gt;-&amp;gt; mxe.int.*&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The most important property to check is &lt;strong&gt;&lt;em&gt;mxe.int.globaldir&lt;/em&gt;&lt;/strong&gt;. This property specifies the root folder where all the integration configuration files are located. If this value is null, the folders are created under the directory from which the application server is started, or from the current working directory of the application server (e.g. &lt;em&gt;C:\IBM\WebSphere\AppServer\profiles\AppSrv01&lt;/em&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Glossary</title>
      <link>https://bportaluri.click/post/2012/08/maximo-glossary/</link>
      <pubDate>Wed, 15 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/maximo-glossary/</guid>
      <description>&lt;p&gt;In the following table I have listed the most important terms and acronyms that are commonly used in the Maximo/TPAE world.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Term&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;BIRT&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;http://www.eclipse.org/birt&#34;&gt;Business Intelligence and Reporting Tools&lt;/a&gt; is an Open Source software embedded in TPAE that provides reporting.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CCMDB&lt;/td&gt;&#xA;          &lt;td&gt;IBM Tivoli Change and Configuration Management Database (&lt;a href=&#34;http://www-01.ibm.com/software/tivoli/products/ccmdb/&#34;&gt;official product page&lt;/a&gt;).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;EAM&lt;/td&gt;&#xA;          &lt;td&gt;Enterprise Asset Management.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;KPI&lt;/td&gt;&#xA;          &lt;td&gt;Key Performance Indicators. Visual indicators displaying status against predefined targets.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MAM&lt;/td&gt;&#xA;          &lt;td&gt;Maximo Asset Management.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Maximo&lt;/td&gt;&#xA;          &lt;td&gt;It was the original product developed by MRO and acquired by IBM in August 2006. The term &amp;lsquo;Maximo is commonly used both to identify IBM Maximo Asset Management product and the underlying infrastructure on which many IBM Service Management products are built.Additional details &lt;a href=&#34;http://en.wikipedia.org/wiki/Maximo_%28MRO%29&#34;&gt;here&lt;/a&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MBO&lt;/td&gt;&#xA;          &lt;td&gt;Maximo Business Objects are data beans provided by TPAE and used to access data. The MBO term is generally used to indicate the TPAE business object layer.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MEA&lt;/td&gt;&#xA;          &lt;td&gt;Maximo Enterprise Adapter. MEA has been renamed in release 7.1 to Maximo Integration Framework (MIF).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MIF&lt;/td&gt;&#xA;          &lt;td&gt;Maximo Integration Framework (previously Maximo Enterprise Adapter).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;QBE&lt;/td&gt;&#xA;          &lt;td&gt;Query By Example. Using your application’s filter and/or query, you can immediately generate reports and download the results.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SCCD&lt;/td&gt;&#xA;          &lt;td&gt;SmartCloud Control Desk (&lt;a href=&#34;http://www-01.ibm.com/software/tivoli/products/smartcloud-controldesk/&#34;&gt;official product page&lt;/a&gt;). The new IBM SmartCloud Control Desk is the merge of TSRM, TAMIT and CCMDB in a single solution for IT service management.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;TAMIT&lt;/td&gt;&#xA;          &lt;td&gt;Tivoli Asset Management for IT (&lt;a href=&#34;http://www-01.ibm.com/software/tivoli/products/asset-management-it/&#34;&gt;official product page&lt;/a&gt;).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;TPAE&lt;/td&gt;&#xA;          &lt;td&gt;Tivoli Process Automation Engine also known as Base Services. Additional details &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21395627&#34;&gt;here&lt;/a&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;TSRM&lt;/td&gt;&#xA;          &lt;td&gt;IBM Tivoli Service Request Manager (&lt;a href=&#34;http://www-01.ibm.com/software/tivoli/products/service-request-mgr/&#34;&gt;official product page&lt;/a&gt;).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;em&gt;Do you see mistakes or missing items? Send me your requests and I will improve this listing.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rapid Java class deployment on WebSphere</title>
      <link>https://bportaluri.click/post/2012/08/maximo-rapid-java-class-deploy-websphere/</link>
      <pubDate>Mon, 13 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/maximo-rapid-java-class-deploy-websphere/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post I will describe how to minimize the time needed to redeploy the custom Java code in Maximo running on WebSphere during the development phase.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note&lt;/strong&gt;: The techniques explained in this article (except the first one) are recommended only for development environments.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here are the four methods I know to perform this task (the last is the fastest).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Rebuild and redeploy (30 minutes)&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Field Flags for setValue methods</title>
      <link>https://bportaluri.click/post/2012/08/flags-for-setvalue-method-mbo-constant/</link>
      <pubDate>Sat, 11 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/flags-for-setvalue-method-mbo-constant/</guid>
      <description>&lt;p&gt;The &lt;em&gt;Mbo&lt;/em&gt; class exposes a lot of &lt;em&gt;setValue&lt;/em&gt; methods but we can categorize them in two big groups. The first group accepts only two arguments that are the name of the attribute to be set and its value. The second group of methods have three arguments that allows to pass an additional &lt;em&gt;accessModifier&lt;/em&gt; flag.&lt;br&gt;&#xA;The values that can be passed into this flag are defined in the &lt;em&gt;MboConstants&lt;/em&gt; interface and &lt;em&gt;Mbo&lt;/em&gt; class. The most important values are the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to set the default value of a field in Maximo</title>
      <link>https://bportaluri.click/post/2012/08/how-to-set-default-value-field-maximo/</link>
      <pubDate>Fri, 10 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/how-to-set-default-value-field-maximo/</guid>
      <description>&lt;p&gt;There are five ways to set the default value of a field in Maximo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Database Configuration&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first way is to set the default value at the database level using Database Configuration.&lt;br&gt;&#xA;All you have to do is the object and then the attribute for which the default is to be set. In the right hand side of the Details section there is a Default field. This is where you would enter your literal value for the default value.&lt;br&gt;&#xA;Some system constants can be used:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Variables for Dynamic Queries in Conditional Expressions</title>
      <link>https://bportaluri.click/post/2012/08/variables-dynamic-queries-conditional-expressions/</link>
      <pubDate>Wed, 08 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/variables-dynamic-queries-conditional-expressions/</guid>
      <description>&lt;p&gt;Conditional Expressions can be used in TPAE applications in &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;several ways&lt;/a&gt;. One powerful feature of Conditional Expressions is the capability of creating dynamic queries using substitution variables. Here is the complete list of variables available in Maximo.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;:YES&lt;/strong&gt; – True&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:NO&lt;/strong&gt; – False&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;DATE&amp;amp;&lt;/strong&gt; – Current date&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;DATETIME&amp;amp;&lt;/strong&gt; – Current date/time&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;USER&amp;amp;&lt;/strong&gt; – Logged in user (or &amp;amp;USERNAME&amp;amp;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;PERSONID&amp;amp;&lt;/strong&gt; – Person ID of the logged in user&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;APPNAME&amp;amp;&lt;/strong&gt; – Application name&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;MBONAME&amp;amp;&lt;/strong&gt; – Name of the current business object&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;OWNERNAME&amp;amp;&lt;/strong&gt; – Name of the owner business object&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;relationshipname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.8889em;vertical-align:-0.1944em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;re&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.01968em;&#34;&gt;l&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;hi&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;****.&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;attrname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6151em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;tt&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; – Value of an attribute of a related business object of the current business object&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;OWNER&amp;amp;.****&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;attrname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6151em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;tt&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;  – Value of an attribute of the owner business object&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:&amp;amp;OWNER&amp;amp;.&lt;strong&gt;&lt;strong&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;p&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;relationshipname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.8889em;vertical-align:-0.1944em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;re&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.01968em;&#34;&gt;l&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;hi&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;.&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;attrname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6151em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;tt&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;  – Value of an attribute of the related business object of the owner business object&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;:$OLD_****&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;attrname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6151em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;tt&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;  – The initial value of the attribute&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sample Expressions&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM EMEA Tivoli and Security Technical Conference 2012</title>
      <link>https://bportaluri.click/post/2012/08/ibm-training-tivoli-technical-conference-etstc-2012/</link>
      <pubDate>Mon, 06 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/ibm-training-tivoli-technical-conference-etstc-2012/</guid>
      <description>&lt;p&gt;Are you looking to increase your personal skills in the Asset Management and Service Management arena?&lt;br&gt;&#xA;Are you responsible for a team of Tivoli professionals who need to delve deeper into the products?&lt;br&gt;&#xA;Would you or your team benefit from learning deep technical skills from real experts in their fields?&lt;br&gt;&#xA;Then the &lt;a href=&#34;http://www.ibm.com/training/conf/europe/tivoli&#34;&gt;EMEA Tivoli &amp;amp; Security Technical Conference 2012&lt;/a&gt; is just what you need!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.ibm.com/training/conf/europe/tivoli&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/EMEATivoliSecurityTechnicalConferenceETSTC2012.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I really think that ETSTC conference will be a great opportunity to improve your knowledge IBM Tivoli products and solutions and to network with IBM products experts, Business Partners and fellow participants.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Detect if an MBO method has been invoked by an user session or by a background process</title>
      <link>https://bportaluri.click/post/2012/08/mbo-java-method-interactive-user-mif-crontask-escalation/</link>
      <pubDate>Wed, 01 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/08/mbo-java-method-interactive-user-mif-crontask-escalation/</guid>
      <description>&lt;p&gt;You are in the middle of a Mbo class and you have to perform some logic only if your piece of code is invoked by a user sitting in front of of Maximo UI.&lt;br&gt;&#xA;How would you understand if the Mbo method has been invoked by an interactive user session or by a background process like an escalation, crontask or MIF?&lt;br&gt;&#xA;Here is a Java snippet to retrieve this information.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change the default table sorting</title>
      <link>https://bportaluri.click/post/2012/07/application-table-default-order-sort/</link>
      <pubDate>Mon, 30 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/application-table-default-order-sort/</guid>
      <description>&lt;p&gt;Many Maximo applications have a default sort in the tables that displays objects both in the &amp;lsquo;List&amp;rsquo; tab and in the details of the objects. Those default order by clauses can be easily changed with the Application Designer.&lt;br&gt;&#xA;This technique, used in conjunction with the &lt;a href=&#34;http://maximodev.blogspot.it/2011/09/automatically-display-table-results.html&#34;&gt;automatic display of table results&lt;/a&gt;, can greatly improve the usability of a Maximo application and speedup the completion of user&amp;rsquo;s tasks.&lt;br&gt;&#xA;For example you may want to show the work orders with nearest Scheduled Start in the Work Order Tracking application.&lt;br&gt;&#xA;Open the WOTRACK application in the Application Designer and select main table. Right click on it and select &amp;lsquo;Properties&amp;rsquo; to bring up the Control Properties dialog. Type &amp;lsquo;WOPRIORITY&amp;rsquo; the Order By field and then select the &amp;lsquo;Start Empty&amp;rsquo; checkbox and untick it again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Integrating Maximo with Java application through RMI</title>
      <link>https://bportaluri.click/post/2012/07/integrating-maximo-java-application-rmi/</link>
      <pubDate>Mon, 30 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/integrating-maximo-java-application-rmi/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this article I will describe how to call Maximo business objects methods remotely using a Java RMI connection. This technique can be useful to integrate Maximo in custom applications written in Java or to perform a particular processing of data stored in Maximo database using an external application.&lt;br&gt;&#xA;For simplicity I will describe how to create a sample Java project using Eclipse to print the list of assets. However, this technique can be used in any Java application.&lt;br&gt;&#xA;First of all you have to copy some jar files from the Maximo server to your development system. Go in the application deployment directory (e.g. WebSphere\AppServer\profiles\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear) and copy the businessobjects.jar file and the entire lib directory.&lt;br&gt;&#xA;Launch Eclipse, create an empty Java project and add the businessobject.jar and icu4j.jar files to the project classpath. Your project should look like this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to log all Maximo SQL statements</title>
      <link>https://bportaluri.click/post/2012/07/log-all-maximo-sql-statements/</link>
      <pubDate>Thu, 19 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/log-all-maximo-sql-statements/</guid>
      <description>&lt;p&gt;Here is a useful IBM Technote that explains how to &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21605339&#34;&gt;capture all SQL statements&lt;/a&gt; issued from Maximo/TPAE when using DB2 database.&lt;br&gt;&#xA;I think it may be useful to analyze users queries and performance bottlenecks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Integration Framework Tutorial</title>
      <link>https://bportaluri.click/post/2012/07/integration-framework-mif-tutorial/</link>
      <pubDate>Sun, 15 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/integration-framework-mif-tutorial/</guid>
      <description>&lt;p&gt;Another GREAT tutorial from Daniel Ng about importing inventory data from an external source. The tutorial walks through the process of setting up a basic MIF to import data into Maximo through a set of database tables.&lt;br&gt;&#xA;Here is the &lt;a href=&#34;http://www.xcentricway.ca/tutorial02.htm&#34;&gt;link to the article&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to make a attribute required using Data Restrictions</title>
      <link>https://bportaluri.click/post/2012/07/field-required-attribute-data/</link>
      <pubDate>Wed, 04 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/field-required-attribute-data/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post I will show how to make required the remarks field of the MATRECTRANS object for returned items. This is just an example and the same configuration can be used to make a field mandatory based on a particular condition.&lt;br&gt;&#xA;A &lt;a href=&#34;http://bportaluri.com/2012/05/make-field-required-conditional.html&#34;&gt;similar post&lt;/a&gt; describes how to achieve the same functionality using Conditional UI.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Define conditional expression&lt;/strong&gt;&lt;br&gt;&#xA;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application. Create the following conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Consultant 2012 salary poll</title>
      <link>https://bportaluri.click/post/2012/07/maximo-consultant-2012-salary-poll/</link>
      <pubDate>Mon, 02 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/07/maximo-consultant-2012-salary-poll/</guid>
      <description>&lt;p&gt;Have you participated to the Maximo salary poll? What is your monthly net salary as a Maximo Consultant? On the 13th of July I have launched an open poll asking what is the monthly net salary as a Maximo Consultant. In 2 weeks I have received 64 votes that can be hard to decipher.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bportaluri.com/wp-content/uploads/2019/08/maximoconsultantsalary.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/maximoconsultantsalary.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The population sample is obviously not statistically valid but we can still try to draw some considerations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retrieve JDBC connection to Maximo database</title>
      <link>https://bportaluri.click/post/2012/06/java-jdbc-sql-connection-maximo/</link>
      <pubDate>Tue, 26 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/java-jdbc-sql-connection-maximo/</guid>
      <description>&lt;p&gt;In some cases you need a JDBC connection to directly access Maximo database in order to perform some job. This is not common since all Maximo data can be accessed through standard MboSets. However, you may need to access non-Maximo tables, perform specific SQL statements or bypass Mbos for performance reasons. The two main approaches to use issue standard SQL code through Java JDBC are described here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;JDBC Connection&lt;/strong&gt;&lt;br&gt;&#xA;Here is a sample that shows how to get a JDBC connection from Maximo connection pool (and correctly release it).&lt;/p&gt;</description>
    </item>
    <item>
      <title>All about Maximo domains and lookups</title>
      <link>https://bportaluri.click/post/2012/06/maximo-domain-lookup-lists/</link>
      <pubDate>Wed, 20 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/maximo-domain-lookup-lists/</guid>
      <description>&lt;p&gt;A useful set of articles and tutorials from IBM about domain, crossover domain, lookup, value list.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21261924&#34;&gt;Adding a valuelist (ALN Domain) in Maximo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21261925&#34;&gt;Adding Lookup Functionality to a Field in Maximo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21261928&#34;&gt;Setting Up Crossover Functionality in Maximo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21307834&#34;&gt;Filtering an out of the box lookup in Maximo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21303595&#34;&gt;Troubleshooting Crossover Domains&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21396556&#34;&gt;Setting Up A Conditional Domain&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/support/docview.wss?uid=swg21393343&#34;&gt;Associating Lookups in Maximo using the MAXLOOKUPMAP Table&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21500866&#34;&gt;Conditional Lookup Functionality&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21508596&#34;&gt;Displaying Additional Information Through a Relationship in Maximo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21605835&#34;&gt;Limiting Lookups using WHERECLAUSE&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/the_hidden_feature_of_crossover_domain?lang=en&#34;&gt;The Hidden Feature of Crossover Domain&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Everyplace on Motorola ET1 tablet</title>
      <link>https://bportaluri.click/post/2012/06/best-device-tablet-everyplace-motorola/</link>
      <pubDate>Mon, 18 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/best-device-tablet-everyplace-motorola/</guid>
      <description>&lt;p&gt;Maximo Everyplace is a great addon to enable mobile capabilities in IBM products based on Maximo/TPAE without dealing with complex setup and configuration required by the more advanced Maximo Mobile solutions. The great advantage of Maximo Everyplace over Maximo Mobile is its simplicity.&lt;br&gt;&#xA;Basically speaking, with Maximo Everyplace you can build small-screen-friendly TPAE applications that are tailored to fulfill specific user scenarios. The process of creating a custom application is well described in the product documentation and is easy if you are familiar with the Application Designer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo for beginners</title>
      <link>https://bportaluri.click/post/2012/06/maximo-for-beginners/</link>
      <pubDate>Mon, 18 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/maximo-for-beginners/</guid>
      <description>&lt;p&gt;Checkout these three articles on IBM Asset Management blog if you are a Maximo newbie.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/sending_emails_via_smtp_in_ibm_maximo7.x&#34;&gt;Sending e-mails&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/how_to_turn_on_and_turn_off_maximo_admin_mode31&#34;&gt;Turn ON and OFF Admin Mode&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/creating_and_activating_an_organization_in_maximo_asset_management24&#34;&gt;Setup an Organization&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Do you like MaximoDev?</title>
      <link>https://bportaluri.click/post/2012/06/do-you-like-maximodev/</link>
      <pubDate>Tue, 12 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/do-you-like-maximodev/</guid>
      <description>&lt;p&gt;If you like this blog please give me a little token by clicking on this button&lt;/p&gt;&#xA;&lt;p&gt;Thanks for your cooperation and don&amp;rsquo;t forget subscribe to one of my channels.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://plus.google.com/108049528998767857306?prsrc=1&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/Google-Icon-24.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt; &lt;a href=&#34;http://twitter.com/bportaluri&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/twitter.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt; &lt;a href=&#34;http://www.linkedin.com/in/brunoportaluri&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/linkedin.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt; &lt;a href=&#34;http://feeds.feedburner.com/IbmMaximoCustomizationAndDevelopment&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/feed.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to enable barcode scanning for Maximo Everyplace on Android</title>
      <link>https://bportaluri.click/post/2012/06/barcode-scan-maximo-everyplace-android/</link>
      <pubDate>Mon, 11 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/barcode-scan-maximo-everyplace-android/</guid>
      <description>&lt;p&gt;With this post I will start a small set of articles on &lt;a href=&#34;http://www-01.ibm.com/software/tivoli/products/maximo-everyplace/&#34;&gt;Maximo Everyplace&lt;/a&gt; which is a feature that provides the ability to use Maximo on mobile devices through the device web browser.&lt;/p&gt;&#xA;&lt;p&gt;An interesting &lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/barcode_scanning_with_maximo_everyplace6?lang=en&#34;&gt;article on IBM Asset Management blog&lt;/a&gt; describes how to use a bluetooth barcode scanner paired with an &lt;strong&gt;iPhone&lt;/strong&gt; or an &lt;strong&gt;iPad&lt;/strong&gt; to enable barcode scanning capabilities for Maximo Everyplace. On &lt;strong&gt;Android&lt;/strong&gt; you have two options to achieve the same result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Skip field copy when duplicating object</title>
      <link>https://bportaluri.click/post/2012/06/skip-field-copy-object-duplicate/</link>
      <pubDate>Thu, 07 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/skip-field-copy-object-duplicate/</guid>
      <description>&lt;p&gt;On almost every application Maximo provides a useful entry in the action menu to duplicate the selected record. When this action is performed, some of the field are intentionally wiped from Maximo. For example if you try to dupicate an Asset you will notice that Maximo resets some fields like ASSETNUM, LOCATION and SERIALNUM.&lt;br&gt;&#xA;It may happen that you have added some custom fields on a Maximo object and you want to be cleaned when a record is duplicated. In such case, all you have to do is to override the &lt;em&gt;skipCopyField(MboValueInfo mvi)&lt;/em&gt; method of the object&amp;rsquo;s data bean.&lt;br&gt;&#xA;Extend the object&amp;rsquo;s class handler as &lt;a href=&#34;http://maximodev.blogspot.it/2012/05/maximo-extend-java-mbo.html&#34;&gt;described here&lt;/a&gt; and put the following method in the Mbo class.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a custom dialog box to send a report via email</title>
      <link>https://bportaluri.click/post/2012/06/custom-dialog-box/</link>
      <pubDate>Wed, 06 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/custom-dialog-box/</guid>
      <description>&lt;p&gt;An outstanding &lt;a href=&#34;http://www.xcentricway.ca/tutorial01.htm&#34;&gt;tutorial from Daniel Ng&lt;/a&gt; explaining how to create a custom dialog box to send a report via email.&lt;br&gt;&#xA;The tutorial is very detailed and explains a lot of Maximo/TPAE stuff including:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create a custom XML dialog box&lt;/li&gt;&#xA;&lt;li&gt;Attach the dialog box to an application&lt;/li&gt;&#xA;&lt;li&gt;Associate a signature option to the dialog box&lt;/li&gt;&#xA;&lt;li&gt;Associate the custom dialog box to a custom toolbar button&lt;/li&gt;&#xA;&lt;li&gt;Create a custom AppBean class&lt;/li&gt;&#xA;&lt;li&gt;Create a custom message box&lt;/li&gt;&#xA;&lt;li&gt;Turn on debugging mode for the logger&lt;/li&gt;&#xA;&lt;li&gt;Deployment and testing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Many compliments Daniel!&lt;/p&gt;</description>
    </item>
    <item>
      <title>I&#39;m now a Certified Solution Designer for MAM 7.1</title>
      <link>https://bportaluri.click/post/2012/06/bruno-portaluri-maximo-certification/</link>
      <pubDate>Tue, 05 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/bruno-portaluri-maximo-certification/</guid>
      <description>&lt;p&gt;Few weeks ago I have achieved the IBM Certified Solution Designer certification for Maximo Asset Management V7.1.&#xA;It&amp;rsquo;s now time for a little self-celebration.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://2.bp.blogspot.com/-4KC3vV8dJbg/T820juOOSRI/AAAAAAAAAm8/HVDo-OHrDT8/s1600/Bruno+Portaluri+Maximo+Solution+Designer+Certification.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/BrunoPortaluriMaximoSolutionDesignerCertification.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I strongly encourage you all to take a look at &lt;a href=&#34;http://www.ibm.com/certify&#34;&gt;IBM Certify&lt;/a&gt; website and search for Maximo under Tivoli Software professional certifications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sample Action Class</title>
      <link>https://bportaluri.click/post/2012/06/sample-action-class-java-maximo/</link>
      <pubDate>Mon, 04 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/sample-action-class-java-maximo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sometimes you have to implement some complex logic in workflows or escalation and you feel limited by the out-of-the-box Maximo actions. In these cases you can unleash the Java power and code your algorithm in a custom action class.&lt;br&gt;&#xA;In order to create a custom action class, you must extend the  &lt;em&gt;psdi.common.action.ActionCustomClass&lt;/em&gt; class.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;package cust.actions;import java.rmi.RemoteException;import psdi.common.action.ActionCustomClass;import psdi.mbo.MboRemote;import psdi.util.MXException;public class SampleAction implements ActionCustomClass{  public SampleAction()  {    super();  }  public void applyCustomAction(MboRemote mbo, Object[] params)      throws MXException, RemoteException  {    // Write custom code here  }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As usual&amp;hellip; compile, rebuild EAR and redeploy. For a full example of a custom action class look &lt;a href=&#34;http://bportaluri.com/2013/07/custom-java-action-class-example.html&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grant access to an action menu or toolbar button conditionally</title>
      <link>https://bportaluri.click/post/2012/06/grant-action-menu-toolbar-condition/</link>
      <pubDate>Sat, 02 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/grant-action-menu-toolbar-condition/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In Maximo/TPAE menu items are granted per security group in the Security Groups application. Every option available for an application has a corresponding signature option (aka sigoption) record in the SIGOPTION table. Those SigOptions can be configured in the Application Designer.&lt;/p&gt;&#xA;&lt;p&gt;In this article I will show how is it possible to hide an action menu or a toolbar button conditionally for a specific security group using a conditional expression and a signature option.&lt;br&gt;&#xA;As an example I will demonstrate how to hide the &amp;lsquo;View History&amp;rsquo; action menu entry for all purchase orders that have a total cost higher than 100.&#xA;Note that the same procedure can be used to show or hide a toolbar button.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to make a field readonly using conditional expressions</title>
      <link>https://bportaluri.click/post/2012/06/make-field-readonly-conditional/</link>
      <pubDate>Fri, 01 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/06/make-field-readonly-conditional/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the most common Maximo customization scenarios is to make a textbox readonly based on some business rules.&lt;br&gt;&#xA;This could be easily achieved using Maximo/TPAE Conditional UI.&lt;br&gt;&#xA;As an example, I will describe how to make readonly the Priority in the Asset application when the asset is in &amp;lsquo;OPERATING&amp;rsquo; status.&lt;/p&gt;&#xA;&lt;h3 id=&#34;define-conditional-expression&#34;&gt;Define conditional expression&lt;/h3&gt;&#xA;&lt;p&gt;Open Administration - Conditional Expression Manager application and Create the following conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retrieve multiple attribute values from an Mbo</title>
      <link>https://bportaluri.click/post/2012/05/retrieve-multiple-attribute-values-mbo/</link>
      <pubDate>Wed, 30 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/retrieve-multiple-attribute-values-mbo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo MBOs are not exactly lightweight, however there are some little tricks to improve performances and reduce system resources consumption.&lt;br&gt;&#xA;One of the most common mistakes that I have seen is the redundant use of getters methods of the psdi.mbo.Mbo class.&lt;br&gt;&#xA;In the following example three calls to &lt;em&gt;getString&lt;/em&gt;/&lt;em&gt;getInt&lt;/em&gt; methods are made to retrieve the attribute values from an Mbo object.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo is Magic!</title>
      <link>https://bportaluri.click/post/2012/05/ibm-maximo-magic-quadrant/</link>
      <pubDate>Tue, 29 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/ibm-maximo-magic-quadrant/</guid>
      <description>&lt;p&gt;Few months ago Gartner has published its Magic Quadrant for Delivery Utility Enterprise Asset Management and guess what?&lt;br&gt;&#xA;IBM Maximo Asset Management (aka MAM) is positioned it the upper right corner.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://4.bp.blogspot.com/-X103EX6iVUM/T8SnlvIqI4I/AAAAAAAAAlM/vmEFVeLbHlE/s1600/Maximo+Gartner+Magic+Quadrant.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/MaximoGartnerMagicQuadrant.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Download the &lt;a href=&#34;http://www.gartner.com/technology/streamReprintPDF.do?id=1-17Y8QEZ&amp;amp;ct=111109&amp;amp;st=sb&#34;&gt;Magic Quadrant for Delivery Utility Enterprise Asset Management&lt;/a&gt; from Gartner&amp;rsquo;s website for free.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extending Maximo Business Objects</title>
      <link>https://bportaluri.click/post/2012/05/maximo-extend-java-mbo/</link>
      <pubDate>Mon, 28 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/maximo-extend-java-mbo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sometimes it is necessary to override or extend the functionality in Maximo. This can be achieved by extending methods in the Maximo Business Objects.&lt;br&gt;&#xA;This article outlines the process involved in extending the out-of-the-box &lt;em&gt;psdi.app.item.Item&lt;/em&gt; class to initialize the description field to a specific value.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Create Java Classes&lt;/strong&gt;&lt;br&gt;&#xA;We will need to create two new files an Mbo and an MboSet. The &lt;em&gt;cust.psdi.app.item.Item&lt;/em&gt; will extend the &lt;em&gt;add()&lt;/em&gt; method in the &lt;em&gt;psdi.app.item.Item&lt;/em&gt; class. It is a good common practice to use a well defined 1st level package name like &amp;lsquo;cust&amp;rsquo; to group all the custom code.&lt;br&gt;&#xA;Now open Eclipse and create a new Java class named &lt;em&gt;cust.psdi.app.item.Item&lt;/em&gt; and paste the following code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding Mbos and MboSets</title>
      <link>https://bportaluri.click/post/2012/05/maximo-introduction-java-mbo/</link>
      <pubDate>Sat, 26 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/maximo-introduction-java-mbo/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Maximo Business Objects (MBOs) are a set of Java classes that implements the data persistence layer and business rules in Maximo/TPAE infrastructure. Those Java class files are stored in the &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;R&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;SMPDIR&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;SMP&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.00773em;&#34;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;\maximo\applications\maximo\businessobjects&lt;/em&gt; directory and are packaged in the &lt;em&gt;businessobjects.jar&lt;/em&gt; file.&lt;br&gt;&#xA;Roughly speaking there are two types of objects &lt;em&gt;Mbo&lt;/em&gt; and &lt;em&gt;MboSet&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An &lt;em&gt;&lt;strong&gt;Mbo&lt;/strong&gt;&lt;/em&gt; represents a record in a table. It has business intelligence and persistence methods. It can be compared to a session/entity bean in J2EE.&lt;/li&gt;&#xA;&lt;li&gt;An &lt;em&gt;&lt;strong&gt;MboSet&lt;/strong&gt;&lt;/em&gt; is a collection of &lt;em&gt;Mbo&lt;/em&gt; objects. It has methods to manipulate, iterate and query data.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://4.bp.blogspot.com/-4smYMrmD0qc/T8FBHVFCBSI/AAAAAAAAAks/FxHceY_uCfQ/s1600/Maximo+Mbo+MboSet.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/MaximoMboMboSet.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hide data conditionally for a specific group</title>
      <link>https://bportaluri.click/post/2012/05/hide-data-condition-group-role/</link>
      <pubDate>Tue, 22 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/hide-data-condition-group-role/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A very typical customization task is to restrict the visibility of data within Maximo/TPAE applications based on certain conditions.&lt;br&gt;&#xA;For example you may wish to hide all the purchase orders that have a total costs higher than 1000$ for a specific group. Here is a small tutorial about how you can achieve this.&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application and create the following conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to make a field required using a conditional expression</title>
      <link>https://bportaluri.click/post/2012/05/make-field-required-conditional/</link>
      <pubDate>Mon, 21 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/make-field-required-conditional/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post I will show how to make the Remarks field required in the Receiving application when returning items. This is just an example and the same configuration can be used to hide or show any field based on a particular condition.&lt;br&gt;&#xA;A &lt;a href=&#34;http://bportaluri.com/2012/07/field-required-attribute-data.html&#34;&gt;similar post&lt;/a&gt; describes how to achieve the same functionality using Data Restrictions.&lt;/p&gt;&#xA;&lt;h3 id=&#34;define-conditional-expression&#34;&gt;Define conditional expression&lt;/h3&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application. Create the following conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Data Types</title>
      <link>https://bportaluri.click/post/2012/05/maximo-data-types/</link>
      <pubDate>Sun, 13 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/maximo-data-types/</guid>
      <description>&lt;p&gt;Here is the complete list of available data types in TPAE/Maximo. The most used are marked in &lt;strong&gt;bold&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;ALN&lt;/strong&gt; - Alphanumeric characters, mixed case&lt;/li&gt;&#xA;&lt;li&gt;AMOUNT - Decimal number, used for currency&lt;/li&gt;&#xA;&lt;li&gt;BLOB - Binary large object&lt;/li&gt;&#xA;&lt;li&gt;CLOB - Character large object&lt;/li&gt;&#xA;&lt;li&gt;CRYPTO - Encrypted binary&lt;/li&gt;&#xA;&lt;li&gt;CRYPTOX - Encrypted binary (one-way)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DATE&lt;/strong&gt; - Date only, no time&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DATETIME&lt;/strong&gt; - Date and time&lt;/li&gt;&#xA;&lt;li&gt;DECIMAL - Decimal number&lt;/li&gt;&#xA;&lt;li&gt;DURATION - Duration, 1:30 is displayed to mean one and one-half hours&lt;/li&gt;&#xA;&lt;li&gt;FLOAT - Floating number&lt;/li&gt;&#xA;&lt;li&gt;GL - General Ledger account&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;INTEGER&lt;/strong&gt; - Integer number&lt;/li&gt;&#xA;&lt;li&gt;LONGALN - Long Alphanumeric&lt;/li&gt;&#xA;&lt;li&gt;LOWER - Lowercase characters&lt;/li&gt;&#xA;&lt;li&gt;SMALLINT - Small integer&lt;/li&gt;&#xA;&lt;li&gt;TIME - Time only, no date&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;UPPER&lt;/strong&gt; - Uppercase characters&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;YORN&lt;/strong&gt; - Yes or No, the database contains 1 or 0&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>The Maximo specialist Swiss Army Knife</title>
      <link>https://bportaluri.click/post/2012/05/best-free-tools-development/</link>
      <pubDate>Wed, 09 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/best-free-tools-development/</guid>
      <description>&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&#xD;&#xA;  &lt;img src=&#34;images/swiss-army-knife.jpg&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/th&gt;&#xA;          &lt;th&gt;Have you ever felt at war during the roll-out of a complex customization or when you have to rush to debug and fix a complex problem?   Sometimes being a Maximo specialist is like being a soldier. That&amp;rsquo;s why you need the best tool at hand to do your job. That&amp;rsquo;s why I have selected my personal set of portable apps that I have copied on my USB stick so I can plug in every computer in order to quickly become productive on every system.   &lt;em&gt;By failing to prepare, you are preparing to fail.&lt;/em&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Here is my selection of free (or almost free) tools.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving BIRT report style</title>
      <link>https://bportaluri.click/post/2012/05/improve-birt-report-style/</link>
      <pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/improve-birt-report-style/</guid>
      <description>&lt;p&gt;I have always been an admirer of beautifully designed web sites. Today&amp;rsquo;s mobile and desktop application have beautiful and eye-catching UIs. To my eyes the current design of out of the box Maximo BIRT reports has an old-fashioned style that doesn&amp;rsquo;t sound pleasant to my eyes. That&amp;rsquo;s why I decided to tweak the Maximo out of the box styles in order to be able to quickly improve the look of any Maximo report.&lt;br&gt;&#xA;All the customer I have worked with have really liked this reporting style and asked me to apply it to all their custom reports.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resource for upgrading multiple Maximo products</title>
      <link>https://bportaluri.click/post/2012/05/maximo-upgrade-coexistence-resources/</link>
      <pubDate>Wed, 02 May 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/05/maximo-upgrade-coexistence-resources/</guid>
      <description>&lt;p&gt;Having several Maximo products coexisting on the same installation basically requires that all the products depends on the same Maximo Base Services level.&lt;br&gt;&#xA;This &lt;a href=&#34;http://www.ibm.com/developerworks/wikis/display/maximo/Installing+and+upgrading+multi-product+stacks&#34;&gt;IBM wiki&lt;/a&gt;  describes in detail how to install and upgrade multiple Maximo products on the same TPAE server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo 7.5 scripting guide</title>
      <link>https://bportaluri.click/post/2012/04/maximo-75-scripting-guide/</link>
      <pubDate>Fri, 27 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/maximo-75-scripting-guide/</guid>
      <description>&lt;p&gt;Scripting is a powerful new feature that was introduced in Maximo 7.5.&#xA;Checkout this hidden &lt;a href=&#34;https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=a9ba1efe-b731-4317-9724-a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98&amp;amp;file=83c7752c-a621-4af9-bb32-d6ba7d612ab2&#34;&gt;Scripting with Maximo&lt;/a&gt; guide from IBM lead developers.&lt;/p&gt;&#xA;&lt;p&gt;A very comprehensive list of examples is available &lt;a href=&#34;https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/My_Collection_of_Automation_Scripts&#34;&gt;here&lt;/a&gt;.&lt;br&gt;&#xA;My colleague Mathias has also a very &lt;a href=&#34;http://maximoscripting.stroske.de/&#34;&gt;interesting blog on scripting&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Other articles and resources&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/scripting_report_execution_in_7_511?&#34;&gt;Launch report&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/automation_scripting_and_email_listener_anything_in_common9&#34;&gt;Automation scripting and email listener&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/tags/scripting&#34;&gt;All scripting articles on Asset Management community&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Maximo URLs</title>
      <link>https://bportaluri.click/post/2012/04/maximo-urls/</link>
      <pubDate>Thu, 26 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/maximo-urls/</guid>
      <description>&lt;p&gt;TPAE-based products like MAM, TAMIT, TSRM, CCMDB or SCCD provide a common way to open an application and perform some basic action like displaying a specific entry or performing a simple query. This can be very useful to integrate Maximo with other applications implementing navigation integration or &lt;em&gt;launch in context&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The base URL has this syntax: &lt;em&gt;http://&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;hostname&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6944em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;nam&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/maximo/ui/maximo.jsp?&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;r&lt;/mi&gt;&lt;mi&gt;g&lt;/mi&gt;&lt;mi&gt;u&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;mi&gt;s&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;arguments&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.8095em;vertical-align:-0.1944em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;gu&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;s&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;br&gt;&#xA;where:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rotating and non-rotating assets in Maximo</title>
      <link>https://bportaluri.click/post/2012/04/maximo-rotating-assets-type/</link>
      <pubDate>Wed, 25 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/maximo-rotating-assets-type/</guid>
      <description>&lt;p&gt;In Maximo/TPAE applications assets can be either rotating or non-rotating. The difference between those two types of assets is sometimes not clear.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Rotating assets&lt;/strong&gt; are assets that are interchangeable, such as motors, pumps, fire extinguishers, or PC monitors. Rotating assets have both a unique asset number and an inventory item number. The item number lets you track assets as a group as they are moved in and out of inventory and other types of locations, while the asset number is useful to track individual instances of the asset as it is moved from one location to another and from one site to another.&lt;br&gt;&#xA;&lt;strong&gt;Non-rotating assets&lt;/strong&gt; do not move in and out of storerooms. A non-rotating asset has a unique asset number, but does not have an item number because it is not tracked in inventory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WebSphere plugin password expire April 26 2012</title>
      <link>https://bportaluri.click/post/2012/04/websphere-plugin-password-expire-april/</link>
      <pubDate>Tue, 24 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/websphere-plugin-password-expire-april/</guid>
      <description>&lt;p&gt;Remember that tomorrow your Maximo servers may face this &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21588312&#34;&gt;critical issue&lt;/a&gt;: WebSphere plugin-key.kdb password to expire on April 26, 2012.&#xA;This is the &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21588312#solution_dist&#34;&gt;procedure&lt;/a&gt; to fix the problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to schedule a CSV/XML file export through MIF</title>
      <link>https://bportaluri.click/post/2012/04/mif-schedule-file-export/</link>
      <pubDate>Wed, 18 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/mif-schedule-file-export/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/integration-framework.html&#34;&gt;Maximo Integration Framework&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In standard Maximo/TPAE there is no way to schedule the invocation of an outbound interface in order to periodically export a CSV or XML file at a specific interval. This can be accomplished with a little custom Java class. I have used the Java code described in this &lt;a href=&#34;http://www.maximonews.com/?p=102&#34;&gt;post&lt;/a&gt; as a starting point to develop my own generic procedure. In this example I will show how periodically export in a CSV file all the assets that contains the word &amp;lsquo;pump&amp;rsquo; in the description. The procedure can be adapted to periodically invoke any Publish Channel you like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo location types</title>
      <link>https://bportaluri.click/post/2012/04/maximo-location-types/</link>
      <pubDate>Sat, 14 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/maximo-location-types/</guid>
      <description>&lt;p&gt;Locations are places where assets are stored. Locations are typically the places where assets operate, but include any building, place, or other areas that contain assets, where maintenance work might be performed.&lt;br&gt;&#xA;A Maximo Location stores aggregated data of all events and costs performed within that Location. This includes the movement of assets into and out of the location, as well as the use of labor and materials charged to that location.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Effective approach on maintenance KPIs and metrics</title>
      <link>https://bportaluri.click/post/2012/04/maintenance-kpis-metrics/</link>
      <pubDate>Fri, 13 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/maintenance-kpis-metrics/</guid>
      <description>&lt;p&gt;Do you want to learn more about maintenance performance monitoring?&lt;br&gt;&#xA;Check out Jason&amp;rsquo;s new post on Tivoli User Community: &lt;a href=&#34;http://tivoli-ug.org/community-blogs/b/weblog4/archive/2012/04/13/first-things-first-for-maximo-kpi-39-s-amp-metrics.aspx&#34;&gt;First things first for Maximo KPI&amp;rsquo;s and Metrics&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to delete a Maximo application</title>
      <link>https://bportaluri.click/post/2012/04/how-to-delete-application/</link>
      <pubDate>Thu, 12 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/04/how-to-delete-application/</guid>
      <description>&lt;p&gt;Maximo does not allow to delete applications from the Application Designer. However, there is a trick well hidden in the Application Developer Guide to accomplish this task using a SQL client. Note that only user defined application should be deleted. Out-of-the-box applications can be hidden using the standard Maximo security mechanism.&lt;/p&gt;&#xA;&lt;p&gt;It is better to backup the Maximo database and shut down the application server before proceeding.&lt;br&gt;&#xA;To delete an application complete the following steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloning Maximo environment</title>
      <link>https://bportaluri.click/post/2012/03/cloning-maximo-environment/</link>
      <pubDate>Wed, 28 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/cloning-maximo-environment/</guid>
      <description>&lt;p&gt;There are many reasons why it is useful sometimes to overwrite a development, test or training system with all the data and customizations from the production system. These are just few examples:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Development systems has become dirty after some customization that have not been moved to production.&lt;/li&gt;&#xA;&lt;li&gt;Fresh data is needed on the test system to reproduce a problem and perform troubleshooting.&lt;/li&gt;&#xA;&lt;li&gt;Fresh data is needed on the development system to develop new features.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The procedure described hereafter is not intended to replace the functionality of the Migration Manager especially when promoting customizations from test to production. Furthermore, the procedure assumes that dev, test and prod systems have the same version of Maximo installed and runs the same OS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Inventory explained</title>
      <link>https://bportaluri.click/post/2012/03/maximo-inventory-explained/</link>
      <pubDate>Thu, 22 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/maximo-inventory-explained/</guid>
      <description>&lt;p&gt;Check out the this TechNote from IBM about &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21384733&#34;&gt;Maximo inventory management&lt;/a&gt;. Another interesting resource is the &lt;a href=&#34;http://publib.boulder.ibm.com/infocenter/ieduasst/tivv1r0/topic/com.ibm.iea.mam/mam/7.5/sysappmanagement/mam_7_5_reorder_calc/player.html&#34;&gt;Understanding Maximo Asset Management inventory reorder calculations&lt;/a&gt; video. The same presentation is available in &lt;a href=&#34;http://publib.boulder.ibm.com/infocenter/ieduasst/tivv1r0/topic/com.ibm.iea.mam/mam/7.5/sysappmanagement/mam_7_5_reorder_calc.pdf&#34;&gt;PDF format&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://maximosecrets.com/2018/09/03/maximo-application-maps-5-of-9-inventory-management/&#34;&gt;Inventory application map (Maximo Secrets)&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brief history of Maximo, TPAE, TAMIT, CCMDB, TSRM</title>
      <link>https://bportaluri.click/post/2012/03/maximo-tpae-tamit-tsrm-history/</link>
      <pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/maximo-tpae-tamit-tsrm-history/</guid>
      <description>&lt;p&gt;In today&amp;rsquo;s post I want to share with you a brief history of Maximo and how it relates with many other IBM products TAMIT, CCMDB, TSRM.&lt;/p&gt;&#xA;&lt;p&gt;Maximo is the product name introduced in early 1990&amp;rsquo;s that was then classified as Computerized Maintenance Management Software or CMMS, by Project Software Development, Inc. (PSDI) During the Dot Com era the company change name to MRO Software as a recognition to the decline of the original Project Software, to the ascendancy of the Maximo product. It was at this time that MRO acquired Main Control and it&amp;rsquo;s ITAM product knowledge. That was the beginning of the Eagle project. The merging of ITAM and EAM started. It was though that in one product the functions for service desk, IT Asset Management, and traditional Asset Management could be performed. Welcome to Maximo v6.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find all references to a conditional expression</title>
      <link>https://bportaluri.click/post/2012/03/conditional-expression-reference-used/</link>
      <pubDate>Fri, 16 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/conditional-expression-reference-used/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Conditional expressions are one of the most powerful tool in the hand of a skilled TPAE specialist. However, when things get complex it may be hard to track where all custom conditional expression are referenced in your environment. That&amp;rsquo;s why I have spent some minutes developing a small set of SQL queries to list those references from the TPAE database. First of all, conditional expressions are stored in the &lt;em&gt;CONDITION&lt;/em&gt; table. The other tables that has reference to this table are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Get ready for IBM Smart Cloud Control Desk 7.5</title>
      <link>https://bportaluri.click/post/2012/03/ibm-smart-cloud-control-desk-75/</link>
      <pubDate>Wed, 14 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/ibm-smart-cloud-control-desk-75/</guid>
      <description>&lt;p&gt;Upcoming IBM® SmartCloud Control Desk unifies CCMDB, TSRM and TAMIT in a single solution with a flexible licensing model.&lt;/p&gt;&#xA;&lt;p&gt;IBM® SmartCloud Control Desk V7.5 provides:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Automated process control required to keep up with the rapid changes that cloud brings about&lt;/li&gt;&#xA;&lt;li&gt;New licensing model &lt;/li&gt;&#xA;&lt;li&gt;New delivery models that include a Software as a Service (SaaS) model&lt;/li&gt;&#xA;&lt;li&gt;New asset and configuration item (CI) integrations and linkages &lt;/li&gt;&#xA;&lt;li&gt;New navigation capabilities throughout the product &lt;/li&gt;&#xA;&lt;li&gt;Improved performance throughout &lt;/li&gt;&#xA;&lt;li&gt;Simplified intuitive interfaces throughout the product &lt;/li&gt;&#xA;&lt;li&gt;New Catalog entry creation mechanism and usability improvements&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;IBM SmartCloud Control Desk V7.5 is a new and unified way to provide critical&lt;br&gt;&#xA;service functionality. It delivers a single solution for service catalog, request&lt;br&gt;&#xA;management, and Information Technology Infrastructure Library (ITIL) V3 based&lt;br&gt;&#xA;processes of incident, problem, change, configuration, release management,&lt;br&gt;&#xA;and IT asset management across complex IT landscapes. With IBM SmartCloud&lt;br&gt;&#xA;Control Desk, you get a comprehensive software and asset lifecycle management&lt;br&gt;&#xA;solution including requisition, procurement, inventory, deployment, and contract&lt;br&gt;&#xA;management.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to hide a field using conditional expressions</title>
      <link>https://bportaluri.click/post/2012/03/hide-show-field-conditional/</link>
      <pubDate>Tue, 13 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/hide-show-field-conditional/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/conditional-expressions.html&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this little tutorial, I will show how to dynamically hide the Total Cost field in the PR Lines tab of the Purchase Requisitions (PR) application for the PRs that are in status APPR. This is just an example and the same configuration can be used to hide or show any field based on a particular condition.&lt;/p&gt;&#xA;&lt;h3 id=&#34;define-conditional-expression&#34;&gt;Define conditional expression&lt;/h3&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application. Create the following conditional expression.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Analyze BIRT report performances and execution time</title>
      <link>https://bportaluri.click/post/2012/03/report-execution-time/</link>
      <pubDate>Mon, 12 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/report-execution-time/</guid>
      <description>&lt;p&gt;Some days ago I came across this &lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/bilog_performance_enablers_schedule_only_reporting_80_20_reporting_rule6?lang=en&#34;&gt;interesting post&lt;/a&gt; from Pam Denny that describes the 80/20 rule. Based on this empirical rule 80% of the report processing is done by only 20% of used reports.&lt;br&gt;&#xA;That&amp;rsquo;s why I developed a simple SQL query that uses the &lt;em&gt;LASTRUNDURATION&lt;/em&gt; field of the &lt;em&gt;REPORT&lt;/em&gt; table to list the report that have the longest execution time.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT lastrunduration, reportname, description, appname, lastrundateFROM reportWHERE lastrunduration IS NOT NULLORDER BY lastrunduration DESC&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Running this query on a real Maximo production database I got the following figure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to change the color of a field using conditional expressions</title>
      <link>https://bportaluri.click/post/2012/03/change-color-field-conditional/</link>
      <pubDate>Sun, 11 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/change-color-field-conditional/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;https://bportaluri.click/conditional-expressions&#34;&gt;Conditional Expressions HowTo&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here is a step-by-step guide about how to dynamically highlight workorders that have a high priority in the WOTRACK application. This is just an example and the same configuration can be used to change the color of a field based on a particular condition.&lt;/p&gt;&#xA;&lt;h3 id=&#34;define-conditional-expression&#34;&gt;Define conditional expression&lt;/h3&gt;&#xA;&lt;p&gt;Open &lt;em&gt;Administration - Conditional Expression Manager&lt;/em&gt; application. Create the following conditional expression.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://3.bp.blogspot.com/-f9HGpoyj42Q/T1ynmZ4Xw5I/AAAAAAAAAM8/ALoQ3spzt0k/s1600/01%2Bconditional%2Bexpression.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/1_012Bconditional2Bexpression.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;configure-wotrack-application&#34;&gt;Configure WOTRACK application&lt;/h3&gt;&#xA;&lt;p&gt;Open &lt;em&gt;System configuration - Platform Configuration - Applications Designer&lt;/em&gt; application and edit the &lt;em&gt;WOTRACK&lt;/em&gt; application. Select the first column (Work Order) and open the properties window. Click on &lt;em&gt;Configure Conditional Properties&lt;/em&gt; button (on TPAE 7.5 it is in the &lt;em&gt;Advanced&lt;/em&gt; tab). Use &lt;em&gt;READ&lt;/em&gt; as Signature Option and &lt;em&gt;EVERYONE&lt;/em&gt; as the security group. Enter the defined condition &lt;em&gt;WOHIPRI&lt;/em&gt; with &lt;em&gt;Property=cssclass&lt;/em&gt; and &lt;em&gt;Value=bgred&lt;/em&gt;. For a list of all the properties available for each control please refer to &lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Maximo%20Asset%20Management/page/Conditionally%20changing%20user%20interface%20properties&#34;&gt;this document&lt;/a&gt;. Here is how the Conditional Properties properties should look like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Query users and groups security</title>
      <link>https://bportaluri.click/post/2012/03/query-users-and-groups-security/</link>
      <pubDate>Fri, 09 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/query-users-and-groups-security/</guid>
      <description>&lt;p&gt;Did you have ever spent precious time searching in the Group Security application what group grants a specific permission to a certain user?&lt;br&gt;&#xA;Do you want to list all the sigoption granted to a specific user?&lt;br&gt;&#xA;Do you want to list all the groups to which a specific user belongs together with all the granted sigoptions?&lt;br&gt;&#xA;Do you want to know who has access to a specific application or sigoption?&lt;br&gt;&#xA;Here is a SQL query that may help you. It joins several tables and allows to answer all the previous questions&amp;hellip; and many more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Search for NULL values in Maximo applications</title>
      <link>https://bportaluri.click/post/2012/03/search-for-null-values-in-maximo/</link>
      <pubDate>Sat, 03 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/03/search-for-null-values-in-maximo/</guid>
      <description>&lt;p&gt;Today I want to share with you a little tip that allows to search for empty (NULL) values in every Maximo/TPAE application.&lt;br&gt;&#xA;You can search for null and not null values by entering the following values into a search field on the Find tab:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To search for a null value enter: &lt;strong&gt;&lt;del&gt;null&lt;/del&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;To search for not null values enter: &lt;strong&gt;!= &lt;del&gt;null&lt;/del&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If your keyboard does not have the tilde &amp;lsquo;~&amp;rsquo; character you may type enter this character by typing 126 on your numeric keypad while pressing the &amp;lsquo;Alt&amp;rsquo; key.&lt;br&gt;&#xA;Maybe this sound obvious to you but it was not easy to discover&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Best way to loop through an MboSet</title>
      <link>https://bportaluri.click/post/2012/02/best-way-to-loop-through-mboset/</link>
      <pubDate>Sun, 26 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/best-way-to-loop-through-mboset/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this article I will describe some common ways of iterating through an MboSet and what is the best approach.&lt;br&gt;&#xA;In the following examples &lt;em&gt;mboSet&lt;/em&gt; is the already holding the MboSetRemote that you need to traverse.&lt;/p&gt;&#xA;&lt;h3 id=&#34;example-1-worst-solution&#34;&gt;Example 1 (worst solution)&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for(int i=0; i&amp;lt;mboSet.count(); i++;){    MboRemote currMbo=mboSet.getMbo(i);    ...}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The MboSet.count() method will issue a &lt;em&gt;SELECT COUNT(*)&lt;/em&gt; query to the database for each loop. This will seriously affect the looping performances with an unnecessary workload on the database server too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Formatting and converting data in Java</title>
      <link>https://bportaluri.click/post/2012/02/formatting-and-converting-data-in-java/</link>
      <pubDate>Sun, 19 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/formatting-and-converting-data-in-java/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you need to format dates and numbers into a locale-sensitive string or if you just need to convert data between different types then take a look at &lt;em&gt;psdi.util.MaxType&lt;/em&gt; class.&lt;br&gt;&#xA;For example, the following piece of code shows how to correctly format a currency amount into a string.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MaxType mt = new MaxType(MaxType.AMOUNT);mt.setValue(10.1234);String s = mt.asLocaleString();&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Automatic login to Maximo UI</title>
      <link>https://bportaluri.click/post/2012/02/automatic-login/</link>
      <pubDate>Fri, 17 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/automatic-login/</guid>
      <description>&lt;p&gt;As a Maximo consultant I spend many hours on test and development systems developing customizations and testing business processes. This means I frequently login on Maximo Web UI with several users and passwords.&lt;br&gt;&#xA;I typically store the passwords in my web browser to speedup the annoying step but today I have found a better trick to directly jump into a Maximo application skipping the login page. This can be done providing the username and password in the URL used to connect to the web UI. Lets make some examples.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to migrate Maximo Administrative Workstation</title>
      <link>https://bportaluri.click/post/2012/02/how-to-migrate-maximo-administrative/</link>
      <pubDate>Wed, 15 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/how-to-migrate-maximo-administrative/</guid>
      <description>&lt;p&gt;This article explains a procedure that can be used to migrate the Maximo 7.1 Administrative Workstation from one physical system to another.&lt;/p&gt;&#xA;&lt;p&gt;Installation of products based on Maximo/TPAE infractructure (MAM, TAMIT, CCMDB, etc.), industry specific extension (Nuclear, Transportation, etc.) or fixpacks use the IBM Autonomic Deployment Engine. This is installed at the beginning of the installation of any Maximo product and is a core part of the Maximo Administrative Workstation component.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo REST APIs reference material</title>
      <link>https://bportaluri.click/post/2012/02/maximo-rest-apis-reference-material/</link>
      <pubDate>Tue, 14 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/maximo-rest-apis-reference-material/</guid>
      <description>&lt;h3 id=&#34;legacy-rest-api&#34;&gt;Legacy REST API&lt;/h3&gt;&#xA;&lt;p&gt;The REST API are available in Maximo starting from version 7.5.&#xA;Here is a collection of useful resources to learn how to use REST in Maximo.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.0/com.ibm.mif.doc/gp_intfrmwk/rest_api/c_rest_overview.html&#34;&gt;Official MAM REST API documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/resting_with_maximo1?lang=en&#34;&gt;RESTing with Maximo (developerWorks)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/blogs/a9ba1efe-b731-4317-9724-a181d6155e3a/entry/using_rest_api_details2?lang=en&#34;&gt;Using REST API Details (developerWorks)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Anything%20about%20Tivoli/page/Maximo%20REST%20API%20usage%20example&#34;&gt;Maximo REST API usage example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;nextgen-rest-api&#34;&gt;NextGen REST API&lt;/h3&gt;&#xA;&lt;p&gt;The official documentation for the ne OSLC REST APIs is available here: &lt;a href=&#34;https://community.ibm.com/community/user/iot/viewdocument/maximos-rest-api-aka-json-api-os?CommunityKey=ed77c224-45e2-47b0-b574-cc31496f9a41&amp;amp;tab=librarydocuments&amp;amp;LibraryFolderKey=6daea7e7-5628-48a6-9791-c272c1e15bae&amp;amp;DefaultView=folder&#34;&gt;Maximo Integration and Scripting - IoT (ibm.com)&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Set an attribute as required with no default value</title>
      <link>https://bportaluri.click/post/2012/02/set-attribute-as-required-with-no/</link>
      <pubDate>Sun, 12 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/set-attribute-as-required-with-no/</guid>
      <description>&lt;p&gt;This post describes how to set an object attribute as mandatory without providing a default value. This is to circumvent what it seems to be a TPAE limitation that prevents to do this from the standard Database Configuration application.&lt;br&gt;&#xA;Lets make an example. The out-of-the-box attribute PO.VENDOR (Purchase Order - Vendor) is not mandatory. Unfortunately if you try to set as required using the Database Configuration application you will get the following error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to configure data import in Maximo 7.5</title>
      <link>https://bportaluri.click/post/2012/02/how-to-configure-data-import-in-maximo/</link>
      <pubDate>Sat, 11 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/how-to-configure-data-import-in-maximo/</guid>
      <description>&lt;p&gt;In version 7.5 of Maximo/TPAE products, you can import and export data from applications. Learn how to enable this feature in &lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=a9ba1efe-b731-4317-9724-a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98&amp;amp;file=1019a843-fadf-4070-9be0-f7d4e1969ba9&#34;&gt;this unofficial guide&lt;/a&gt;.&lt;br&gt;&#xA;There is also a nice &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21507924&#34;&gt;TechNote from IBM&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Birt report performances</title>
      <link>https://bportaluri.click/post/2012/02/troubleshooting-birt-report/</link>
      <pubDate>Fri, 10 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/02/troubleshooting-birt-report/</guid>
      <description>&lt;p&gt;Sometimes I had the hard task to debug performance issues of specific Maximo reports. The main thing to understand here is that 95% of the times the problem is related to a long execution time of the underlying SQL query .&lt;br&gt;&#xA;What I typically do is the following:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Look at the &amp;lsquo;Performance&amp;rsquo; tab of the Report Administration application and take note of the &amp;lsquo;Last Run Duration&amp;rsquo;.&lt;/li&gt;&#xA;&lt;li&gt;Configure an Eclipse Birt Designer environment to run the reports against the production database.&lt;/li&gt;&#xA;&lt;li&gt;Import the report into Eclipse.&lt;/li&gt;&#xA;&lt;li&gt;Change the rptdesign to log in a local file: &lt;em&gt;mxReportScriptContext.setDefaultLogFile(&amp;ldquo;D:/birtreport.log&amp;rdquo;);&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add a row to print the SQL query into the log file: &lt;em&gt;mxReportScriptContext.getReportScriptLogger().debug(&amp;quot;&amp;raquo;&amp;gt; sqlText=&amp;quot; + where);&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Run the report within Eclipse.&lt;/li&gt;&#xA;&lt;li&gt;Copy and paste the SQL query from the birt log file into a SQL client and try to execute the query straight to the database.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;After this you have many elements to understand what may be the problem. First you need to find the cause performance issue and then work out the solution. Here are some examples:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maximo Performance Best Practices White Papers</title>
      <link>https://bportaluri.click/post/2012/01/maximo-performance-best-practices-white/</link>
      <pubDate>Tue, 31 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/01/maximo-performance-best-practices-white/</guid>
      <description>&lt;p&gt;IBM has just released updated versions of &lt;em&gt;Maximo Performance Best Practices White Papers&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This papers provide useful information to improve the performance of all Maximo/TPAE based products wether they are deployed in small, medium, or large scale customer environments.&lt;br&gt;&#xA;They can be downloaded from IBM developerWorks:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=a9ba1efe-b731-4317-9724-a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98&amp;amp;file=c51d5f5b-dea3-4043-a81f-d5213fc10063&#34;&gt;Best Practices for System Performance 7.5.x&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=a9ba1efe-b731-4317-9724-a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98&amp;amp;file=8a16c9a5-a6c7-4b5e-aa44-e270fa0117cb&#34;&gt;Best Practices for System Performance 7.x&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Listing existing Maximo/TPAE customizations</title>
      <link>https://bportaluri.click/post/2012/01/listing-existing-maximotpae/</link>
      <pubDate>Tue, 24 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2012/01/listing-existing-maximotpae/</guid>
      <description>&lt;p&gt;During my job assignments it often happens that I&amp;rsquo;m sent to a customer that already has Maximo in production with some customizations in place. One of the problems in such cases is to quickly get an overall picture of how many customizations have been made and what have been customized.&lt;br&gt;&#xA;One approach that I have found useful is to &lt;strong&gt;&amp;lsquo;diff&amp;rsquo; the existing environment with a clean one&lt;/strong&gt; exporting Maximo definitions into text files. The only problem with this approach is that requires a clean installation of the product. If you don&amp;rsquo;t have a clean system to compare you can use a &lt;a href=&#34;http://bportaluri.com/2013/04/list-maximo-customizations.html&#34;&gt;simpler approach&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crontask analysis and optimization</title>
      <link>https://bportaluri.click/post/2011/11/crontask-analysis-and-optimization/</link>
      <pubDate>Sat, 12 Nov 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/11/crontask-analysis-and-optimization/</guid>
      <description>&lt;p&gt;An interesting feature of Maximo crontask is the capability of storing the task execution times. This feature must be enabled in each crontask clicking on &amp;lsquo;Keep history&amp;rsquo; checkbox. This is nice feature but Maximo does not provide a graphical tool to analyze crontask performances and execution times so i have prepared a small set of SQL queries to be able to quickly gather important statistics directly from Maximo&amp;rsquo;s database.&lt;br&gt;&#xA;The first one extracts the start time and duration (in seconds) of each crontask execution in the last week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enable lookup in report parameters selection page</title>
      <link>https://bportaluri.click/post/2011/10/enable-lookup-in-report-parameters/</link>
      <pubDate>Mon, 10 Oct 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/10/enable-lookup-in-report-parameters/</guid>
      <description>&lt;p&gt;In this post I will show how to enable the lookup functionality for selecting one or multiple values in a report parameter.&lt;br&gt;&#xA;Instead of creating a new lookup I will show all the necessary configurations looking at the built-in report &amp;lsquo;Inventory Balance&amp;rsquo; (inventory_balance_tbl.rptdesign).&lt;/p&gt;&#xA;&lt;h2 id=&#34;enabling-lookup-in-report&#34;&gt;Enabling lookup in report&lt;/h2&gt;&#xA;&lt;p&gt;Open the &amp;lsquo;Report Administration&amp;rsquo; application and search for &amp;lsquo;Inventory Balance&amp;rsquo; report.&lt;br&gt;&#xA;Open the report details page and look at the &amp;lsquo;Parameters&amp;rsquo; section. The &amp;lsquo;item&amp;rsquo; parameter is the right example that what we are searching for.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Application default search filters</title>
      <link>https://bportaluri.click/post/2011/09/application-default-search-filters/</link>
      <pubDate>Mon, 19 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/09/application-default-search-filters/</guid>
      <description>&lt;p&gt;I know that there is an official &lt;a href=&#34;https://www-304.ibm.com/support/docview.wss?uid=swg21318052&#34;&gt;IBM Technote&lt;/a&gt; that already provides a solution to apply a default filter in a given Maximo application.&lt;br&gt;&#xA;However this solution has some drawbacks. The main problem I see is that using this technique the field filters are not displayed in the application so it could be tricky for the user to understand what&amp;rsquo;s happening.&lt;/p&gt;&#xA;&lt;p&gt;I have found a better solution customizing the application&amp;rsquo;s Java bean class (AppBean) specifying the QBE (Query By Example) parameters to the application DataBean in the &lt;em&gt;initializeApp()&lt;/em&gt; method.&lt;br&gt;&#xA;Here is a practical example about how to do this on the WOTRACK application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically display table results when application is displayed</title>
      <link>https://bportaluri.click/post/2011/09/automatically-display-table-results/</link>
      <pubDate>Mon, 19 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/09/automatically-display-table-results/</guid>
      <description>&lt;p&gt;Sometimes you may develop a custom Maximo application that shows a list of entries in a table. If the application is used frequently and the result set to show is not huge, it could be useful to automatically display the table content without the need to hit enter or click on the search icon.&lt;br&gt;&#xA;Here is a little tip that may solve this little usability issue.&lt;br&gt;&#xA;Open the application in the Application Designer and select main table, find the &amp;lsquo;Start Empty&amp;rsquo; checkbox and uncheck it. If it is already unchecked you may need to first tick and then untick it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create a custom message and display it in a Maximo application</title>
      <link>https://bportaluri.click/post/2011/08/how-to-create-custom-message-and/</link>
      <pubDate>Wed, 31 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/08/how-to-create-custom-message-and/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A typical need during Maximo application customization is the ability to display a message on the GUI.&lt;/p&gt;&#xA;&lt;p&gt;The first step is to define the custom message. Open the Database Configuration application and select Messages for the Action menu. Create a new entry filling the required info:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message Group&lt;/strong&gt;: Messages can be categorized in groups. I typically put here the name of the customer that I&amp;rsquo;m working on. This allows to quickly list all the custom entries.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message Key&lt;/strong&gt;: Unique ID of the message. This field together with the MSGGROUP uniquely identifies the message. I typically use a short descriptive name of the message like &amp;lsquo;InfoMsg&amp;rsquo; or &amp;lsquo;ErrorMsg&amp;rsquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Display Method&lt;/strong&gt;: Can be &amp;lsquo;MSGBOX&amp;rsquo; or &amp;lsquo;STATUS&amp;rsquo;. The &amp;lsquo;MSGBOX&amp;rsquo; display a standard popup window displaying the message and a set of customizable buttons. The &amp;lsquo;STATUS&amp;rsquo; displays the text above the tool bar and does not require user intervention.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message ID&lt;/strong&gt;: Unique ID of the message. The typical format of custom messages is BMX&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;CC&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;CC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;NNNN&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;NNNN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;T&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;where&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;CC&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;CC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;is a two letters code that identifies your customization,&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;NNNN&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;NNNN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;is a four digits number and&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;T&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;is the type of message and can be E (Error), W (warning) or I (Info). Maximo suggest to use&#xA;&lt;span class=&#34;katex-display&#34;&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;CC&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.6833em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07153em;&#34;&gt;CC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;=&amp;lsquo;ZZ&amp;rsquo; for custom messages. For example I have started my custom enumeration with code BMXZZ1001I.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Value&lt;/strong&gt;: Text that will be displayed. Use {N} tags for parameters to be replaced at runtime (see example hereafter). Use \n to insert a newline.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here is a screenshot of the new message.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Query groups application security</title>
      <link>https://bportaluri.click/post/2011/08/query-groups-application-security/</link>
      <pubDate>Wed, 31 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/08/query-groups-application-security/</guid>
      <description>&lt;p&gt;The standard Maximo &amp;lsquo;Security Groups&amp;rsquo; application provides an easy way to view and modify users access to applications. However it is not always easy to have an overview of what groups are granted to access a specific application or what applications can be accessed by a specific group.&lt;br&gt;&#xA;With the following SQL query you can get a report of read/write permissions granted to all the groups.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT  maxapps.app,  maxapps.description,  maxgroup.groupname,  maxgroup.description,  (SELECT COUNT(*) FROM applicationauth WHERE groupname=maxgroup.groupname AND app=maxapps.app AND optionname=&amp;#39;READ&amp;#39;) appread,  (SELECT COUNT(*) FROM applicationauth WHERE groupname=maxgroup.groupname AND app=maxapps.app AND optionname=&amp;#39;SAVE&amp;#39;) appsave,  (SELECT COUNT(*) FROM applicationauth WHERE groupname=maxgroup.groupname AND app=maxapps.app AND optionname=&amp;#39;INSERT&amp;#39;) appins,  (SELECT COUNT(*) FROM applicationauth WHERE groupname=maxgroup.groupname AND app=maxapps.app AND optionname=&amp;#39;DELETE&amp;#39;) appdelFROM maxapps, maxgroupORDER BY maxapps.app, maxgroup.groupname;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you are using the Oracle&amp;rsquo;s than it is possible to list all sigoptions using CURSOR statement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Call Java method on action menu or toolbar button click</title>
      <link>https://bportaluri.click/post/2011/08/call-java-method-on-action-menu-or/</link>
      <pubDate>Mon, 08 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/08/call-java-method-on-action-menu-or/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post I will describe all the steps needed to execute custom Java code upon the selection of an entry in the action menu or the click of a button in the toolbar.&lt;/p&gt;&#xA;&lt;h2 id=&#34;add-a-sigoption&#34;&gt;Add a sigoption&lt;/h2&gt;&#xA;&lt;p&gt;First you need to create a new sigoption. Open the Application Designer and select the application you want to modify. Select &amp;lsquo;Add/Modify Signature Options&amp;rsquo; and create a new signature RUNJAVA.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to execute an Oracle stored procedure from Java code</title>
      <link>https://bportaluri.click/post/2011/08/how-to-execute-oracle-stored-procedure/</link>
      <pubDate>Thu, 04 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/08/how-to-execute-oracle-stored-procedure/</guid>
      <description>&lt;p&gt;This is a working Java method that can be used to execute an Oracle stored procedure. It can be linked to standard Mbo methods, application beans, actions, toolbar buttons, etc.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;public int callOracleProcedure(String procName, int arg1) throws MXException, RemoteException{  int ret;  logger.info(&amp;#34;Calling &amp;#34; + procName + &amp;#34;(&amp;#34; + arg1 + &amp;#34;)&amp;#34;);  MXServer mxServer = MXServer.getMXServer();  UserInfo userInfo = mxServer.getSystemUserInfo();  Connection dbConnection = mxServer.getDBManager().getConnection(userInfo.getConnectionKey());  try  {    CallableStatement cs = dbConnection.prepareCall(&amp;#34;{call &amp;#34; + procName + &amp;#34;(?)}&amp;#34;);    cs.setInt(1, arg1);    ret = cs.executeUpdate();  }  catch (SQLException e)  {    logger.error(&amp;#34;SQL Error&amp;#34;, e);    throw new MXApplicationException(&amp;#34;Error in procedure &amp;#34; + procName, e.getMessage());  }  finally  {    mxServer.getDBManager().freeConnection(userInfo.getConnectionKey());  }  return ret;}&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>How to enable doclinks in a custom Maximo application</title>
      <link>https://bportaluri.click/post/2011/04/how-to-enable-doclinks-in-custom/</link>
      <pubDate>Tue, 05 Apr 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/04/how-to-enable-doclinks-in-custom/</guid>
      <description>&lt;p&gt;Here is an example of how to add the attachment capability to the organizations (MULTISITE) application. Add the ‘attachment’ control to the MULTISITE application using the Application Designer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://4.bp.blogspot.com/-1Hz8vNekD9Q/TZrIFswR6iI/AAAAAAAAAH8/Svi2guttrYQ/s1600/Multisite.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/Multisite.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then add the DOCLINKS relationship to the ORGANIZATIONS object as shown in the following picture.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://1.bp.blogspot.com/-oi1FPclwjJM/TZrITVNTE0I/AAAAAAAAAIE/WPQgS-AVWNM/s1600/Relationship.png&#34;&gt;&#xD;&#xA;  &lt;img src=&#34;images/Relationship.png&#34; alt=&#34;&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Please check the &amp;lsquo;Where Clause&amp;rsquo; statement and modify it to match your application. The where clause must be: &lt;em&gt;ownertable=&amp;rsquo;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;M&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;mi mathvariant=&#34;normal&#34;&gt;_&lt;/mi&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi&gt;P&lt;/mi&gt;&lt;mi mathvariant=&#34;normal&#34;&gt;_&lt;/mi&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mi&gt;J&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;MAIN\_APP\_OBJECT&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.9933em;vertical-align:-0.31em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;M&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.10903em;&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;mord&#34; style=&#34;margin-right:0.02778em;&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;PP&lt;/span&gt;&lt;span class=&#34;mord&#34; style=&#34;margin-right:0.02778em;&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05017em;&#34;&gt;OB&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.09618em;&#34;&gt;J&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;ECT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;rsquo; and ownerid=:&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;mi&gt;J&lt;/mi&gt;&lt;mi&gt;E&lt;/mi&gt;&lt;mi&gt;C&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;mi mathvariant=&#34;normal&#34;&gt;_&lt;/mi&gt;&lt;mi&gt;I&lt;/mi&gt;&lt;mi&gt;D&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;OBJECT\_ID&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:0.9933em;vertical-align:-0.31em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.05017em;&#34;&gt;OB&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.09618em;&#34;&gt;J&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.13889em;&#34;&gt;ECT&lt;/span&gt;&lt;span class=&#34;mord&#34; style=&#34;margin-right:0.02778em;&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.07847em;&#34;&gt;I&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34; style=&#34;margin-right:0.02778em;&#34;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt; The &lt;/p&gt;</description>
    </item>
    <item>
      <title>How to schedule Preventive Maintenance at the first working day of each month</title>
      <link>https://bportaluri.click/post/2011/04/how-to-schedule-preventive-maintenance/</link>
      <pubDate>Mon, 04 Apr 2011 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2011/04/how-to-schedule-preventive-maintenance/</guid>
      <description>&lt;p&gt;During one of my consultancies I was asked how it is possible to remind one person to produce a report each month. They want to generate the PM application to generate a work order for the first working day of each month.&lt;br&gt;&#xA;This can be achieved with a tricky use of a &amp;lsquo;Time Based Frequency&amp;rsquo; and &amp;lsquo;Seasonal Dates&amp;rsquo; settings.&lt;br&gt;&#xA;First you need to create a PM entry and set a frequency that is more than one week and less than one month. 20 days is a good choice. Leave the &amp;lsquo;Use Last WO&amp;rsquo;s Start Information to Calculate Next Due Frequency&amp;rsquo; option checked.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add description field in the Unit of Measure lookup</title>
      <link>https://bportaluri.click/post/2010/10/add-description-field-in-unit-of/</link>
      <pubDate>Wed, 27 Oct 2010 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2010/10/add-description-field-in-unit-of/</guid>
      <description>&lt;p&gt;By default Maximo 6 does not show the units of measure description in the lookup dialog.&lt;br&gt;&#xA;To add this column you must edit the LOOKUPS.xml system configuration file.&lt;br&gt;&#xA;Open th Maximo Application Designer: Go To &amp;gt; Configuration &amp;gt; Application Designer&lt;br&gt;&#xA;In the dropdown box select &amp;lsquo;Export System XML&amp;rsquo;.&lt;br&gt;&#xA;Select the LOOKUPS entry and save the resulting xml file.&lt;br&gt;&#xA;Locate the &amp;lsquo;measureunit&amp;rsquo; table and add the description attribute. You will have something like this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Editing &#39;Go To&#39; menu</title>
      <link>https://bportaluri.click/post/2010/10/editing-go-to-menu/</link>
      <pubDate>Mon, 11 Oct 2010 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2010/10/editing-go-to-menu/</guid>
      <description>&lt;p&gt;Maximo 6 and 7 do not provide a mean to create groups in the &amp;lsquo;Go To&amp;rsquo; menu or to move applications from one menu to another. I this article I describe a procedure to edit the Maximo &amp;lsquo;Go To&amp;rsquo; menu.&lt;br&gt;&#xA;WARNING: I strongly suggest to backup your database before making these changes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;where-and-how-information-are-stored&#34;&gt;Where and how information are stored&lt;/h2&gt;&#xA;&lt;p&gt;Maximo &amp;lsquo;Go To&amp;rsquo; menu structure and information are stored into MAXMENU table. To understand how this information is structured you can execute the following database query and compare the results with the actual content of the Go To menu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Maximo Development Environment Setup</title>
      <link>https://bportaluri.click/post/2010/09/quick-maximo-development-environment/</link>
      <pubDate>Thu, 30 Sep 2010 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2010/09/quick-maximo-development-environment/</guid>
      <description>&lt;p&gt;&lt;em&gt;This entry is part of the &lt;a href=&#34;http://bportaluri.com/p/java-customization.html&#34;&gt;Maximo Java Development&lt;/a&gt; series.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is the quickest and simplest procedure that I know to setup an Eclipse environment to develop Java customizations for IBM Maximo products.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Eclipse Installation&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first step is to install Eclipse on the development system. Download Eclipse 3.5 from &lt;a href=&#34;http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/galileosr2&#34;&gt;Eclipse website&lt;/a&gt;. Extract the downloaded zip file into a local folder (e.g. C:\Eclipse).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Java Runtime Environment&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Eclipse requires a Java VM to run. If you try to launch Eclipse (C:\Eclipse\eclipse.exe) and you don&amp;rsquo;t have a suitable JVM installed you will get the following error.s&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix Maximo 6 UI problem with Microsoft Explorer 8</title>
      <link>https://bportaluri.click/post/2010/08/fix-maximo-6-ui-problem-with-microsoft/</link>
      <pubDate>Tue, 17 Aug 2010 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2010/08/fix-maximo-6-ui-problem-with-microsoft/</guid>
      <description>&lt;p&gt;With latest versions of Internet Explorer have problems when trying to open sub-menus under the Go To main menu. This problem seriously affects Maximo&amp;rsquo;s UI navigation.&lt;br&gt;&#xA;The support for Microsoft Explorer 8 has been included in the &lt;a href=&#34;http://www-01.ibm.com/support/docview.wss?uid=swg21383194&#34;&gt;IBM Maximo 6.2.5 FixPack&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you cannot apply the entire FixPack in your environment you can apply few small changes to a Javascript file to fix the IE8 issue.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Backup the original &lt;em&gt;menus.js&lt;/em&gt; file located in &lt;em&gt;&lt;span class=&#34;katex&#34;&gt;&lt;span class=&#34;katex-mathml&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34;&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi mathvariant=&#34;normal&#34;&gt;_&lt;/mi&gt;&lt;mi&gt;h&lt;/mi&gt;&lt;mi&gt;o&lt;/mi&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&#34;application/x-tex&#34;&gt;maximo\_home&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&#34;katex-html&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;base&#34;&gt;&lt;span class=&#34;strut&#34; style=&#34;height:1.0044em;vertical-align:-0.31em;&#34;&gt;&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;ma&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;im&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;mord&#34; style=&#34;margin-right:0.02778em;&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;mord mathnormal&#34;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/applications/maximo/maximouiweb/webmodule/webclient/javascript&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome to IBM Maximo Customization and Development Blog</title>
      <link>https://bportaluri.click/post/2010/08/welcome-to-my-new-blog/</link>
      <pubDate>Fri, 06 Aug 2010 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/post/2010/08/welcome-to-my-new-blog/</guid>
      <description>&lt;p&gt;Welcome to my new blog. I work for IBM since 2000 and I recently joined the IBM Tivoli Advanced Technology Group. My primary focus will be on customization and integration of IBM Maximo products.&lt;br&gt;&#xA;During my first days of self-study I&amp;rsquo;m feeling excited about the new challenge but I often loose myself in tons of product documentation. In many cases i have tried to search on the web to solve specific problems and I seldom found answers to my questions. That&amp;rsquo;s why I decided to create my blog to discuss and share IBM Maximo features, customization and development topics that I&amp;rsquo;m going to tackle in the next years.&lt;br&gt;&#xA;The first topics will be about learning resources and tips I discovered to speed up my knowledge of Maximo. I few months I plan to be able to share advanced customization and development techniques.&lt;br&gt;&#xA;So&amp;hellip; lets start.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://bportaluri.click/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/about/</guid>
      <description>&lt;h2 id=&#34;about-me&#34;&gt;About Me&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Huabing Zhao&lt;/em&gt;&lt;/strong&gt; is a software architect, an Istio Member and an ONAP PTL. He has a solid experience in the information and telecommunication technology industry for more than 17 years.&lt;/p&gt;&#xA;&lt;p&gt;Throughout his career, he has built a number of large-scale, cross-country software systems, most of them are still running in production.&lt;/p&gt;&#xA;&lt;p&gt;He loves open source and has been contributing to various open source projects, he is a member of Istio,  previous PTL of ONAP, the author of the Hugo clean-white theme and the open source project Aeraki Mesh.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://bportaluri.click/notes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/notes/</guid>
      <description>&lt;h2 id=&#34;go-语言学习笔记&#34;&gt;&lt;a href=&#34;https://zhaohuabing.com/learning-golang&#34;&gt;Go 语言学习笔记&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;envoy-学习笔记&#34;&gt;&lt;a href=&#34;https://zhaohuabing.com/learning-envoy&#34;&gt;Envoy 学习笔记&lt;/a&gt;&lt;/h2&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://bportaluri.click/search/placeholder/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/search/placeholder/</guid>
      <description></description>
    </item>
    <item>
      <title>Posts Archive</title>
      <link>https://bportaluri.click/archive/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://bportaluri.click/archive/</guid>
      <description></description>
    </item>
  </channel>
</rss>
