SLM Groovy Rule (441 Views)
Reply
Occasional Contributor
Sam_Fowler
Posts: 2
Registered: ‎01-23-2012
Message 1 of 1 (441 Views)

SLM Groovy Rule

[ Edited ]

Hi All,

 

I'm trying to implement an SLM Groovy Business Rule, but I'm having some issues, I'm wondering if anyone can shed some light on this:

 

Using the Availability KPI, this business rule is intended to calculate the product of the Child CIs KPI value. However, during testing to see if I can return the KPI value of the CIs I get the following error in the Bambino log:

 

MERQ-120920: Can not calculate KPI since its CalculationRule was not found.

 

The Business Rule was created by cloning the API Group and Sibling rule in the repository and amending the class path to point to the groovy file, as stated in the docs.

 

My current groovy script is set to list the child KPIs and print out their value in the debug log, so I can see if any are returned before I start writing the calculation logic (also set the kpi value to 100 - just for good measure)

 

I noticed, if I just had a groovy script to set kpi.value = 100; it works without issue, but when calculating child KPIs, it causes issues.

 

Below are the contents of SamTestRuleSAI_8.groovy:

 

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.ci.CI

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.hi.HI

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.kpi.KPI

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.kpiType.KpiType;

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.kpiType.KpiTypeFactory;

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.status.Status;

import com.hp.am.platform.processing.ble.groovy.rulefwk.simplifiedRule.wrapper.calcUtils.Utils;

import com.mercury.am.rules.groovy.slm.simplifiedRule.groupAndSiblingRule.SlmGroovyGroupAndSiblingRule;

/**

* Template file for the API Group And Sibling Rule, which implements the GroupAndSiblingCalculator interface.

*

* For more information refer to the Rules API documentation.

*

* NOTE: In the next line, change the "SlmGroupAndSiblingTemplate" class name.

*/

public class SamTestRuleSAI_8 extends SlmGroovyGroupAndSiblingRule {

  /**

     * Implementation of the GroupAndSiblingCalculator interface method.

     * For more information refer to the method documentation in the GroupAndSiblingCalculator interface.

     */

   

            public void calculateKPI(CI ci, KPI kpi) {

        // Write the method implementation here.

            List kpiList = ci.getAllChildrenKPIs()

            kpiList.each {KPI childKPI ->

            logger.debug("Sam Test Rule (IGNORE): Child KPI List = " + childKPI.value;}

            kpi.value = 100;

 

    }

 

}

 

If you require any more info and/or further clarification, please ask.

 

Thanks in advance.

 

Sam

 

Please use plain text.
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation