Search This Blog

Wednesday, October 16, 2024

MAXIMO: Monitoring License Usage in IBM Maximo: An Overview of License Usage Monitor Application

 Managing licenses in an enterprise-scale software like IBM Maximo can be a challenging task, especially when dealing with multiple users, modules, and license types. Accurate tracking of license usage is critical for compliance, cost optimization, and ensuring that your organization is utilizing the right number of licenses.

IBM Maximo provides a powerful solution to manage license compliance and usage through the License Usage Monitor (LUM) application. This application helps administrators track the number of active users, analyze usage trends, and avoid potential overuse, which can lead to costly penalties. In this blog, we’ll explore how you can leverage the License Usage Monitor application in IBM Maximo to streamline your license management process.

1. What is the License Usage Monitor Application?

The License Usage Monitor is a feature in Maximo that allows administrators to monitor and control the usage of licenses in real-time. It provides insights into:

  • The number of concurrent users utilizing Maximo at any point.
  • The types of licenses being used (e.g., concurrent vs. authorized user licenses).
  • The user activity and history.
  • License compliance reports.

With this tool, organizations can ensure that they are within the boundaries of their licensing agreements and make data-driven decisions about their licensing needs.

2. Key Features of License Usage Monitor

Here are the key features and functionalities that the LUM application offers:

a. Real-Time License Tracking

LUM provides an overview of the real-time license usage across all users in the Maximo system. You can view the total number of active users, the modules they are accessing, and the types of licenses in use.

Screenshot: Main dashboard displaying active licenses and users.

b. User and License Type Breakdown

The application gives you the ability to see detailed license usage per user and per license type (e.g., whether they are using a concurrent user license, an authorized user license, etc.). This breakdown helps in identifying how different types of licenses are being used.

Screenshot: List of users and their respective license types in use.

c. Historical Usage Data

LUM keeps track of historical data that allows you to analyze usage trends over time. You can generate reports showing license usage patterns by day, week, or month. These insights are useful for making forecasts and ensuring that your organization has the right number of licenses.

Screenshot: A graph showing the historical license usage trends.

d. Alerts for License Thresholds

To prevent over-utilization of licenses, you can configure alerts in LUM to notify administrators when the usage approaches the maximum limit of available licenses. This feature can help you avoid potential license overages and compliance issues.

e. Audit and Compliance Reporting

LUM offers built-in reports that can be used for internal audits or external reviews, ensuring that your organization complies with its licensing agreements. These reports can be easily generated and shared with stakeholders or auditors.

Screenshot: Example of a compliance report generated from License Usage Monitor.

f. User Session Tracking

For concurrent user licenses, LUM tracks the length of each user’s session. This data helps administrators identify heavy users and ensure optimal utilization of concurrent licenses, which can have an impact on costs.

3. How to Use the License Usage Monitor Application?

Step 1: Navigating to the License Usage Monitor Application

Once you have logged into IBM Maximo as an administrator, you can navigate to the License Usage Monitor application by following these steps:

  • Go to the Administration module in the Maximo navigation menu.
  • Select License Usage Monitor from the list of available applications.

Step 2: Monitoring License Usage

In the main dashboard of the License Usage Monitor application, you will see a real-time overview of active users and licenses. This dashboard displays the current license usage and provides detailed statistics about which users are using Maximo and the modules they are accessing.

Screenshot: Real-time license usage overview in the dashboard.

Step 3: Generating Usage Reports

You can generate detailed reports about license usage for a specific time range. These reports can include breakdowns by user, license type, or module. You can also export these reports for further analysis or for sharing with external auditors.

Step 4: Configuring Alerts

To prevent overuse of licenses, you can set up alerts to be notified when the license usage reaches a certain threshold. This proactive measure ensures that you avoid going over your license allotment.

4. Best Practices for Managing License Usage

  • Regularly Review License Usage: It's important to monitor your license usage regularly to ensure compliance. LUM offers a simple and effective way to do this with its real-time and historical tracking features.
  • Set Up Alerts: Always configure alerts when nearing your license limits. This will allow you to take action before non-compliance issues arise.
  • Forecast Future Needs: Use historical data from LUM to analyze trends and forecast your future licensing needs. This will help you make informed decisions when negotiating license renewals or expansions.
  • Clean Up Unused Licenses: Make sure to regularly review and deactivate accounts that are no longer in use to optimize your license consumption.

5. Conclusion

The License Usage Monitor in IBM Maximo is a crucial tool for managing license compliance and usage in a large enterprise environment. By providing real-time tracking, reporting capabilities, and alerts, LUM enables administrators to ensure that they are using the correct number of licenses efficiently and effectively.

With this tool, organizations can avoid unnecessary penalties, optimize their license usage, and ensure compliance with vendor agreements. Incorporating regular reviews of license usage into your IT asset management strategy is a best practice that will pay dividends over time.

If you haven't yet explored the License Usage Monitor application, now is the time to start. By leveraging its capabilities, you can take control of your Maximo licenses and stay ahead of compliance challenges.

Tuesday, July 9, 2024

MAS : Maximo Application Suite Education Roadmap and available trainings for BP's

 Here is PDF with details roadmap having cost and no cast self paced IBM trainings for MAS functional and technical education roadmap.

MAS_Technical_Courses_IBM

Thursday, April 11, 2024

MAXIMO : Query Manager App

 

Streamline Your Maximo Queries with the Custom Query Manager App

IBM Maximo offers powerful querying capabilities, but managing user-created queries can be a real headache. There's no centralized way to edit or transfer ownership of saved queries. This can lead to several issues, especially in large organizations:

  • Orphaned Queries: When users leave the organization, their queries become orphaned. Updating details from the backend becomes difficult, potentially causing errors or improper loading of start centers that rely on those queries.
  • Inefficient Management: Lack of a central location for managing queries makes it cumbersome to track ownership, edit details, or redistribute queries as needed. This can lead to confusion and wasted time for both users and administrators.
  • Limited Collaboration: Sharing or collaborating on queries can be challenging without a clear understanding of ownership and access rights.

Introducing the Query Manager App

This blog post introduces a custom Maximo application called "Query Manager" that simplifies query management for both users and administrators. Built as a Power Application on the Query object, Query Manager provides a user-friendly interface for:

  • Viewing Query Details: Users can access basic information about a saved query, including its name, description, and owner.
  • Editing Queries: Users can easily modify their own saved queries directly within the application.
  • Transferring Ownership: Administrators can take ownership of queries created by other users, ensuring proper maintenance and access control.

Enhanced Visibility with Start Center Usage Table

Query Manager goes beyond basic query details. It includes a table that displays a list of start centers where the selected query is currently used. This allows users to quickly understand the impact of a query and its potential impact on reports and workflows.

Here is how it look in action:



Benefits of Query Manager

  • Improved User Experience: Streamlined editing and ownership transfer capabilities empower users to manage their queries effectively.
  • Enhanced Control for Administrators: Administrators gain the ability to take ownership of orphaned queries or redistribute them as needed.
  • Increased Visibility: The start center usage table provides valuable insights into query utilization, aiding in decision-making and optimization.
  • Reduced Risk of Errors: By facilitating ownership transfer, Query Manager eliminates the need for potentially risky backend updates when users leave the organization.

Building the Query Manager App

Developing the Query Manager application requires familiarity with Maximo customization tools. Here's a high-level overview of the steps involved:

  1. Create a New Power Application: Design the application interface using Maximo's Application Designer. Include sections for query details, edit and ownership buttons, and the start center usage table.
  2. Develop Custom Logic: Create business logic to handle user actions such as edit query, transfer ownership, and retrieve start center usage data for the selected query.
  3. Implement Security: Ensure proper access controls for edit and ownership functionalities, restricting them to authorized users or roles.
Here are my configuration and code components ( V 7.6.1.3)
1. Application XML :
               
2. Automation Scripts
3. Sigoptions : 
4. Application Authorization : 

Here you can access all these artifacts and set up this application in your maximo instance within 10 minutes.

Query Manager by Prashant Bavane

Conclusion

The Query Manager application effectively addresses a common challenge in Maximo: managing user-created queries. By providing a centralized platform for editing, transferring ownership, and visualizing start center usage, Query Manager empowers users and administrators to leverage Maximo's querying capabilities more efficiently.

Next Steps

  • Explore Maximo's Power Applications and customization options to build your own Query Manager app.
  • Consider integrating additional features like search functionality or query version control.

With Query Manager, you can take control of your Maximo queries, enhancing user experience, streamlining management, and reducing the risk of errors associated with orphaned queries.

Friday, February 9, 2024

MAXIMO : Don't Let Your Assets Sleepwalk: Wake Up with Twilio SMS Notifications in Maximo 7.6.1.3

Imagine this: a critical piece of equipment goes down in the dead of night. You rely on email notifications, but your technicians rarely check their inboxes after hours. The delay in response costs your company precious time and productivity. Ugh!

This scenario is all too common, but fear not! Timely communication is key to effective asset management, and Twilio's SMS integration with IBM Maximo 7.6.1.3 can be your knight in shining armor.

Picture this: an alert pops up on your tech's phone, instantly notifying them of the issue. They spring into action, resolving the problem before it snowballs. Equipment humming happily? Check. Happy boss? Double check!

So, how do you make this SMS dream a reality? Don't worry, we've got you covered. This sample use case will walk you through the process, step-by-step, like a friendly Maximo whisperer. And you can easily plug-in into your unique situations with little to no much changes.

Ready to get started? Buckle up!

1. Twilio Time: Your Gateway to Speedy Alerts:

Think of Twilio as your communication hub. Sign up for their free trial (plenty of credits for testing!), and grab your Account SID and Auth Token – these are your magic keys. We'll use them later.

2. Sigoptions & Actions: Speak Maximo's Language:

In Maximo-land, sigoptions control what actions you can take. We'll create a new one called "sendsms" and link it to the "sendsms" action in the Asset application as sample use case here. It's like teaching Maximo a new trick!

3. Scripting Magic: Your SMS Superpower:

Now for the cool part – the automation script. This code, triggered whenever you select "sendsms," uses Twilio's API to send those life-saving SMS alerts. Don't worry, we'll provide the code and explain what each part does.   

import java.net.HttpURLConnection as HttpURLConnection import java.net.URL as URL import java.io.OutputStreamWriter as OutputStreamWriter import java.io.BufferedReader as BufferedReader import java.io.InputStreamReader as InputStreamReader import java.util.Base64 as Base64 # Twilio account credentials account_sid = 'account_Id' auth_token = 'auth_token' twilio_number = '+13512008888' # Function to send SMS using Twilio def send_sms(to_number, message): url = 'https://api.twilio.com/2010-04-01/Accounts/' + account_sid + '/Messages.json' data = { 'To': to_number, 'From': twilio_number, 'Body': message } data_str = '&'.join(["{}={}".format(key, value) for key, value in data.items()]) url_obj = URL(url) connection = url_obj.openConnection() connection.setRequestMethod("POST") connection.setDoOutput(True) auth_str = account_sid + ":" + auth_token encoded_auth_str = Base64.getEncoder().encodeToString(auth_str.encode()) connection.setRequestProperty("Authorization", "Basic " + encoded_auth_str) connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded") writer = OutputStreamWriter(connection.getOutputStream()) writer.write(data_str) writer.flush() response_code = connection.getResponseCode() reader = BufferedReader(InputStreamReader(connection.getInputStream())) response = "" line = reader.readLine() while line is not None: response += line line = reader.readLine() reader.close() return response_code, response # Example usage to_number = '+1788xx5011' # Receiver's phone number message = 'Hello from IBM Maximo ! via Twilio SMS Gateway' status_code, response = send_sms(to_number, message) print('SMS sent with status code:', status_code) print('Response:', response)

4. Testing, Testing, 1, 2, 3:

Ready to see your handiwork in action? Open Maximo, choose an asset, and hit "sendsms." Did your phone buzz with a notification? If so, you're golden! Check the Twilio console for confirmation. High five! Here it is in actions :

In Assets new action to send sms :


And now once clicking it , it sends this template sms to mentioned number as of now hard coded in our automation script for this explanation purpose as below                         

5. Beyond the Basics: Level Up Your SMS Game:

Want to customize the message content or trigger notifications based on specific events? We've got tips for that too! Plus, we'll mention some potential roadblocks and how to navigate them smoothly.

Remember, integrating Twilio with Maximo isn't just about fancy tech; it's about empowering your team to respond quickly and efficiently, ultimately saving you time, money, and maybe even your sanity!

Ready to wake up your asset management with the power of SMS? Dive into the full similar use cases following the detailed instructions in this post and share insights for community.

P.S. Don't forget to share your SMS notification success stories in the comments!

Tuesday, August 29, 2023

MAXIMO : Email Listener using OAUTH using GMAIL account - 7.6.1.2 /3

 Here I am going to provide details steps for how to configure email listener using GMAIL with OAUTH authentication.


Pre-requisite you should have SMTP configurations set up and emails in Maximo are already working.

You may refer IBM documentation for this - Configuring SMTP.

So once SMTP is properly set up and email sending through Maximo applications works fine , we will need to move to prepare and get OAUTH parameters like Refresh Token , Client ID , Client Secret etc. for email address being used for email listener with OAUTH protocol.

Here I will cover steps for getting these details for Gmail account.

First step is to have email account  : Create a new Gmail account   / you may use your existing Gmail account.

Next steps is work with Google Cloud API to configure and generate/ get required parameters like Client ID , Client Secret and Refresh token for above Gmail account using cloud API library services.

Broadly this can be done using following steps :

1. Set up project using Google cloud dashboard logging in with your Gmail account.

2. Next enable GMAIL API under your project

    


3. Once API is enabled , credentials need to be created for connecting to account via GMAIL API

            

    




After hitting Save and continue , you should provide scope for API access /authorization
         


Now you should be able to download details in JSON format or can copy it from google cloud dashboard like Client ID , Client Secret.

    


Now next step is to get refresh token for this Email configuration/ client ID using postman client :
To get refresh token first we need to get code to establish session with api

URL :   Hit URL from browser in below format and within browser while redirecting it will generate CODE
        

It should ask you to login using your email account 
    

Then you have to click "continue" couple times and it will redirect to your maximo login page / redirect URI provided during credentials creation.
After successful login , you can try putting same above URL again and proceed is similar manner as session was already established this time it will automatically login maximo and URL
will now have auth code 





Postman POST request should be done to get refresh token :
URL :  https://oauth2.googleapis.com/token?
Parameters - client_id , client_secret ( values received in above steps)
redirect_uri : - your maximo url e.g. https://host:port/maximo ( which is used as redirect URL during credentials
creation )
grant_type : authorization_code
     prompt = consent
access_type = offline





This request should give you refresh time on first iteration.

Once you get refresh token you should be able to configure Email Listener within Maximo.





This will now complete Email Listener configuration using OAUTH.

I will continue and update this post for additional configurations like Email Interaction and sample PO workflow where PO status will be changed via email response being listened and processed by email listener.


Friday, August 4, 2023

MAXIMO : MIF Integration Changing status with inbound processing

 

How do we have change status functionality get triggered and record status history when sending inbound transaction with new status than the current one on record ?


Status change is an operation that is performed on stateful Maximo Business Objects. For example, a Person object can be changed from ACTIVE to INACTIVE and back by means of a button or menu selection in the application screen.

In order to perform a status change with an inbound Integration Framework transaction, you must include the STATUSIFACE and NP_STATUSMEMO attributes in addition to the STATUS attribute with the new value, and use the StatefulMicSetIn processing class. (Integrations that are provided with Maximo already use this class or have an integration-specific processing class which is an extension of StatefulMicSetIn.)

Note that the STATUS and STATUSDATE fields should be restricted in the object structure. Verify this in the Inbound Setting Restrictions in the Object Structures application.

STATUSIFACE is a boolean attribute which specifies how the transaction should be processed with regards to status changes:

STATUSIFACE=0 - This transaction will perform the specified Action (Add or Replace for example) on the data, save it, and then, if the new status is different from the existing status, perform a status change operation. Note that an invalid status change, such as attempting to cancel a closed workorder, will cause an error.

STATUSIFACE=1 - This transaction is ONLY a status change. Any data other than the key attributes which identify the record are ignored. If the new status is different than the existing status, perform a status change operation.

STATUSIFACE not present or has a null value : not present or null value are treated as STATUSIFACE=0.

The NP_STATUSMEMO attribute is used for the memo or remark which accompanies the status change. For example, if changing a workorder status, the value of NP_STATUSMEMO will be placed in the MEMO field of the WOSTATUS record that is inserted by the status change.

If you create a custom Object Structure for a stateful Maximo object, you must also add STATUSIFACE (and NP_STATUSMEMO if the status has a remarks or memo component in the status change dialog on the screen) to the Object Structure by adding it as a nonpersistent attribute to the main object in Database configuration. 

You must also specify psdi.iface.mic.StatefulMicSetIn as the processing class in the object structure definition. If you are creating a custom processing class, then it must extend the StatefulMicSetIn class.

Usage

In most cases you will only need to specify a STATUSIFACE of 0. This will ensure that the integration action is carried out and that the status will be changed if the new status is different.

If you plan on sending in transactions that will only change a status, such as approving a workorder or deactivating a person, then you can use the same integration that you use for data updates with status changes, but set STATUSIFACE to 1 and only send the key attribute values which identify the record, such as WONUM and SITEID for a workorder, along with the new status value.

Reference : IBM Technote MIF Changing status with an inbound transaction