com.ibm.openpages.api.service

Interface ITBRuleService



  • public interface ITBRuleService
    Provides service for OpenPages rules engine. The rules engine allows the user to define their own execution conditions and rule variables to launch executable workflows.

    The service provides API to: - create/fetch/update/delete rule definitions - start a rule on a resource - rule the rule

    Since:
    8.1
    • Method Detail

      • getRuleDefinitions

        java.util.List<ITBRuleDefinition> getRuleDefinitions(Id ruleDefinitionId)
        Returns the published and draft versions of the rule definition if they exist.
        Parameters:
        ruleDefinitionId -
        Returns:
      • getRuleDefinitions

        java.util.List<ITBRuleDefinition> getRuleDefinitions()
        Deprecated. 
        Returns the latest version of all ITBRuleDefinitions. Used by object manager. Probably a temporary method until getRuleDefinitions(IRuleDefinitionFindOptions ruleOptions) is implemented.
        Returns:
      • getRuleDefinitionsByType

        java.util.List<ITBRuleDefinition> getRuleDefinitionsByType(Id objectType)
        Returns the latest version of all ITBRuleDefinitions by object type
        Parameters:
        objectType - the rule definitions applicable to a specific type
        Returns:
      • getRuleDefinitionsByRuleType

        java.util.List<ITBRuleDefinition> getRuleDefinitionsByRuleType(TBRuleDefinitionType type)
        Returns the latest published version of all ITBRuleDefinitionss by TBRuleDefinitionType that are currently enabled. Rule Definition types are: create, standard, calculation
        Parameters:
        type -
        Returns:
        Since:
        8.2
      • getRuleDefinitionByVersionId

        ITBRuleDefinition getRuleDefinitionByVersionId(Id versionId)
        Returns the rule definition by the version ID
        Parameters:
        versionId -
        Returns:
        Since:
        8.2
      • getRuleDefinition

        ITBRuleDefinition getRuleDefinition(java.lang.String name,
                                            Id typeDefinitionId,
                                            boolean draft)
        Returns a rule definition by name, type definition ID
        Parameters:
        name -
        typeDefinitionId -
        draft -
        Returns:
      • getRuleDefinition

        ITBRuleDefinition getRuleDefinition(Id ruleDefinitionId,
                                            boolean draft)
        Returns a rule definition by ID
        Parameters:
        ruleDefinitionId -
        draft -
        Returns:
      • getRunnableRules

        java.util.List<ITBRuleDefinition> getRunnableRules(Id objectType,
                                                           TBRuleDefinitionType ruleType)
        Get all runnable rules for an object type
        Parameters:
        objectType -
        ruleType -
      • updateRuleDefinition

        ITBRuleDefinition updateRuleDefinition(ITBRuleDefinition ruleDefinition)
        Updates a rule definition. Note that the updated rule is not used by the workflow on a resuorce until it is published. It creates or updates a draft of the rule definition behind the scene.
        Parameters:
        ruleDefinition -
        Returns:
      • deleteRuleDefinitions

        void deleteRuleDefinitions(java.util.Set<Id> ruleDefinitionIds)
        Deletes rule definitions by IDs
        Parameters:
        ruleDefinitionIds -
      • hardDeleteRuleDefinitions

        void hardDeleteRuleDefinitions(java.util.Set<Id> ruleDefinitionIds)
        Hard-deletes rule definitions by IDs. Unlike deleteRuleDefinitions(Set), this API will completely remove the rule definition and its associated rule/activity instances from the database, so there is not way to recover it.
        Parameters:
        ruleDefinitionIds -
      • publishRuleDefinition

        ITBRuleDefinition publishRuleDefinition(Id ruleDefinitionId)
        Publish the draft content of the rule definition, so it can be used during the resource creation or the user's submission.
        Parameters:
        ruleDefinitionId -
        Returns:
        Since:
        8.2
      • discardDraftRuleDefinition

        ITBRuleDefinition discardDraftRuleDefinition(Id ruleDefinitionId)
        Discard the draft content of the rule definition. No change to the last published version of the rule definition.
        Parameters:
        ruleDefinitionId -
        Returns:
        Since:
        8.2
      • enableRuleDefinitions

        void enableRuleDefinitions(java.util.Set<Id> ruleDefinitionIds,
                                   boolean enabled)
        enable or disable rule definitions by IDs
        Parameters:
        ruleDefinitionIds -
        enabled -
      • executeRules

        void executeRules(java.util.List<ITBRuleDefinition> rules,
                          Id resourceId)
        Evaluates and executes a list of rules on a resource.
        Parameters:
        rules -
        resourceId -
      • evaluateRules

        java.util.List<ITBRuleDefinition> evaluateRules(java.util.List<ITBRuleDefinition> rules,
                                                        Id resourceId)
        Evaluates a list of rules against a resource and returns the valid rules.
        Parameters:
        rules -
        resourceId -
      • processCalculationsOnDemand

        IGRCObject processCalculationsOnDemand(IGRCObject object)
        Evaluates applicable rules for a resource's fields and returns the object with calculated values set, but does not persist the calculated values.
        Parameters:
        object -
        Returns:
        Since:
        8.2
      • getRuleFactory

        ITBRuleFactory getRuleFactory()
        Returns a new rule factory object.
        Returns:
      • getAsyncCalculationRequests

        java.util.Map<Id,java.util.Set<Id>> getAsyncCalculationRequests(java.util.Set<Id> resourceIds)
        Returns the resources in the asynchronous calculation queue.
        Parameters:
        resourceIds - - set of resources to test if they have asynchronous calculation requests.
        Returns:
        Since:
        8.2
      • enableAsyncCalculations

        void enableAsyncCalculations(boolean enabled)
        Enables or disables asynchronous calculations. It updates the registry setting, so other cluster server would honor it. Also it wakes up the asynchronous calculation thread when it is idle.
        Parameters:
        enabled -
        Since:
        8.2
      • processAsyncCalculations

        void processAsyncCalculations(java.util.Set<Id> resourceIds,
                                      boolean synchronous)
        Requests asynchronous calculations of the given resources to handle earlier than others by increasing the priority. The background processor will pick up the calculations from the queue based on the priority. Note that if the calculation of the given resource depends on other one's calculation, their priority is set higher, too. If it is synchronous call, the API returns when all the requested resource's calculations are completed. Otherwise, the API returns the control immediately after the priority of given resources are raised.
        Parameters:
        resourceId -
        Since:
        8.2
      • getCalcStats

        java.util.Map<Id,TBCalcCounts> getCalcStats(java.util.Set<Id> calcDefIds)
        Returns the statistics of the calculations such as how many resources are in the queue for asynchronous calculation, or how many resources have calculation errors for a given calculation definition.
        Parameters:
        calcDefIds - : a set of calculation definition IDs to get the statistics. If the parameter is null or empty, it returns statistics for all the calculation definitions.
        Returns:
        a map of statistics whose key is calculation definition IDs
        Since:
        8.2
      • validateRuleDefinition

        void validateRuleDefinition(ITBRuleDefinition ruleDefinition)
        Validates the given rule definition and throws an TBRuleException when there is an issue.
        Parameters:
        ruleDefinition -
        Since:
        8.2
      • startCalculationsInBulk

        Id startCalculationsInBulk(BulkRunCalculationsOptions options)
        Starts calculations on any objects that meet the following criteria, through a long running process - on the object type of the calculation - object is unlocked - the object meets the applicability criteria of the calculation definition
        Parameters:
        options -
        Since:
        8.2
      • estimateStartingCalculationsInBulk

        int estimateStartingCalculationsInBulk(Id ruleDefinitionId)
        Returns estimated count that would meet the criteria to run the calculation in bulk
        Parameters:
        ruleDefinitionId -
        Since:
        8.2

Licensed Materials - Property of IBM
OpenPages with Watson (PID: 5725-D51)
© Copyright IBM Corporation 2013, 2022. All Rights Reserved.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.