Maximo

Maximo

Come for answers, stay for best practices. All we're missing is you.

 View Only
  • 1.  Apply SLA on Generated WOs from a PM

    Posted 2 days ago

    Good Day All,

    I'm looking for clarification on how SLAs can be applied to Work Orders that are generated from a Preventive Maintenance (PM) record in IBM Maximo.

    Specifically:

    • Is there an out-of-the-box feature that automatically applies the appropriate SLA when a PM-generated Work Order is created?

    • If not, is the recommended approach to use an escalation with an "Apply SLA" action, or should this be handled using an automation script triggered on Work Order creation?

    My goal is to have the SLA use the Target Start Date as the offset for commitments (e.g., response time).

    Has anyone successfully configured this without custom scripting? Any guidance or best practices would be appreciated!

    Best Regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------


  • 2.  RE: Apply SLA on Generated WOs from a PM

    Posted 2 days ago
    Edited by Andrzej Więcław 2 days ago

    Hi Mostafa,

    you're on the right track. Requirement of automatically applying SLA is typically satisfied by an escalation running "Apply SLA" action. This is purely configuration and even though it has some drawbacks typical to records being processed in the background (BMXAA8229W - Record {OBJECTNAME} : {RECORDID} has been updated by another user.) it allows you not to introduce any Java or automation script customization. For PM WOs this typically is not that big deal as they are generated most commonly over the night and additional background processing by an escalation should not cause mentioned disturbances.

    If for some reason you need finer control over "record created" and "SLA applied" sequence of events then you may need to go for customization. If you decide to do it then you might still experience few pitfalls finding the right customization extension point as PM WOs are getting saved throughout the generation process at least twice and I'm not sure if on first save (before actually all data is persisted) invoking "Apply SLA" programmatically will do the right job as it may depend on database reads, while PM WO is still in memory. There are of course ways to delay customization execution "after commit" but it comes with a cost of handling errors complexity.

    I would highly recommend sticking with a simple escalation.



    ------------------------------
    If this post helps, please consider accepting it as a solution to help other members find it more quickly.

    Andrzej Więcław
    Maximo Technical SME
    ZNAPZ B.V.
    Wrocław, Poland
    ------------------------------



  • 3.  RE: Apply SLA on Generated WOs from a PM

    Posted 2 days ago

    Hi Andrzej,

    Thank you for your valuable insights and for highlighting the pros and cons of both approaches.

    While I agree that using an escalation is the simplest and most supportable option, our use case unfortunately doesn't allow for the potential delays that come with a scheduled escalation running every few minutes. For our customers, every minute counts, and we need the SLA to be applied instantly once the PM WO is generated.

    To address this, I've opted to use an Automation Script with a Launch Point on the Work Order object. It's configured with a condition to trigger only on PM-generated WOs and runs on 'add after save'. This allows me to retrieve the same WO via a self-relation and programmatically invoke the "Apply SLA" app action immediately.

    So far, this setup seems to meet our timing requirements without the risk of background processing delays, although we are monitoring closely for any edge cases.

    Appreciate your recommendation and perspective-it really helped clarify our options.

    Best regards,



    ------------------------------
    Mostafa Mosaad
    Software Engineer
    Megasoft
    Cairo
    01117275779
    ------------------------------



  • 4.  RE: Apply SLA on Generated WOs from a PM

    Posted 22 hours ago

    Hi Mostafa, 

    There are two versions of the SLA application. The one from core Maximo Manage always uses the Reported Date as the seed date for calculating a Target Start Date (Response Commitment) or Target Finish Date (Resolution Commitment).

    The SLA(SP) application you get with Maximo for Service Providers or other solutions that embed SP like Maximo IT, has flexibility for choosing the seed date. The logic behind this calculation uses the Calculation Calendar for determining the Target date. These calculations are written to a table called SLARECORDS, which is where it decides which SLA is used based on Ranking or Commitment Stringency.

    As SLAs for WO mainly calculate Target dates, and PM WOs have Target dates already, it would be unusual to apply an SLA to a PM based WO.

    Applying an SLA to a work order can be a manual step, a Workflow step or via an Escalation. The most important aspect of applying an SLA is that all data used by SLA filtering is entered on the WO before the Apply SLA action is used. If data has not been entered, for example Priority, then you could be applying the wrong SLA. This is why there is the action Select/Deselect SLAs.

    As you need to validate data before applying the SLA, Workflow becomes a good choice, but a script would also achieve the same result. Escalation is good for SR to WO, as validation of data can be made on SR and copied across. Applying SLA on WO may not need to be immediate, if it does, use Workflow or script for the automation.

    Just a tip for the future Mostafa, give the business context behind a question, you have good and interesting questions but we often feel we want to ask Why?

    Regards Andrew



    ------------------------------
    Andrew Jeffery
    Maximo SME
    ZNAPZ b.v
    Barnstaple
    +44 (0)777 1847873
    ------------------------------



  • 5.  RE: Apply SLA on Generated WOs from a PM

    Posted 15 hours ago
    Edited by Johann Rumpl 15 hours ago

    Hi Mostafa,

    Despite the fact that the "ordinary" SLA manager does it's calculation based on REPORTDATE like Andrew Jeffrey just mentioned I'd like to share two thoughts/eperiences:

    1. There is the capabiltiy to run a Workflow after a Work order has been generated. What if, you create a simple Workflow with just the APPLYSLA Action and add this WF in the Org Setup under Workflow Options?
    2. I think we faced a similar requirement back in the Maximo 7.5 times, when we still did a lot of Java. In our case the customer wanted the SLA being determined once a Service Request has been changed to the INPROG status I believe. It was at least a status change which triggered the APPLYSLA. The solution was to put these lines of code before the super.save() in the save() method of the SR class.
      		SLARecordsSetRemote slaRecords = (SLARecordsSetRemote)getMboSet("SLARECORDS");
      		slaRecords.applySLA();
      It worked like a charm and thinking about an Automation Script save launch point it would be at least worth a try. However, things might be different between 7.5 and 9x and between SR and WO. What I remember is, that applying the SLA in one transaction with other changes in the SR/WO might lead to the error messages Andrzej mentioned. So, I wouldn't have too high expectations, but it would also not be to much of an effort to give it a try....

    kind regards

    Johann



    ------------------------------
    Johann Rumpl
    CEO / Senior Consultant
    Naviam
    Steinmaur
    Austria
    ------------------------------