Skip to Main Content
IBM Sustainability Software - Ideas Portal


This portal is to open public enhancement requests against the products and services belonging to IBM Sustainability Software. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Future consideration
Created by Guest
Created on Sep 1, 2020

Implement canApprove() method in purchasing record Status Handlers

When implementing workflow for purchasing records (PR, PO, Invoice) it would be very useful to have a single method that contained all of the logic for verifying that the record is ready for approval. In some record types in Maximo, there is a canApprove() method in the record's Status Handler class that provides this ability.

For purchasing records, we've found that the Purchase Requisition (PR) does have a canApprove() method, but not all of the logic to validate the approval is contained in that method. For example, testing the validity of work orders on each PR Line is contained in the approve() method itself on the Status Handler. Invoices, however, do not have a canApprove() method in the Status Handler. There is a validateForApproval() method on the Invoice class, but again it does not contain all of the logic. Some additional checks are performed in the approve() method itself.

This becomes important when we involve workflow in the approval of these records. A standard workflow involves users preparing these records for approval and routing them to groups or individuals for approval. The final step of the workflow typically involves changing the status of the record to approved. It's frustrating for users who are the final step in the workflow to see an error message that the purchase requisition contains an invalid work order. They often think that this should have been caught much earlier in the process. Without the canApprove() method in the Status Handler containing *all* of the approval logic, the approval rules would need to be repeated in the workflow itself. Duplicating this logic is dangerous as these rules change with Maximo updates.

Idea priority Medium