Aras Innovator Platform

Effectivity Services Process Flow Overview

The following diagram shows the process flow for Effectivity Services.

Figure 3.

An AML request with the action “get”, where there are mandatory and optional request item properties (nodes) to apply effectivity resolution on a requested structure.

Note
The Effectivity Resolution Engine intercepts only “GET” AML requests.

The current implementation of the Effectivity Resolution Engine can intercept “GET” AML requests to ItemTypes which are poly sources of the polymorphic ItemType “effs_expression”. Therefore, it can process items of poly source ItemTypes of the polymorphic ItemType “effs_expression” to determine effective items.

  1. Ordinary item filtering conditions in an AML request are used as criteria to limit the items requested from a database (DB) in the preprocessing stage of effectivity resolution processing. The GetItem internal module uses them to request items from the DB to fulfill specified filtering conditions. For example, these criteria may be item id, a list of item ids (known as the “idlist” attribute on a request Item node), or item property tags in an AML request. Ordinary item filtering conditions are optional and provided as needed.
  1. Effectivity Criteria is a condition (e.g., Model = Model-X and Production Date = 2021/06/28) written in the Free-Form Boolean expression. For more information, refer to section Free-Form Boolean Expression Language. The criteria are used to evaluate each effectivity expression in a requested structure to determine effective items. An item is effective within a structure if the evaluation of its corresponding Effectivity Expression(s) against Effectivity Criteria produces the logical truth.The representation of the “Effectivity Criteria” mandatory field in an AML request is the node “definition” matching the XPath “Item/definition | Item/and/definition” and containing a free-form Boolean expression in the XML-encoded form.
Note
The node “definition” is not passed to the internal GetItem module. Therefore, it will not affect the items requested from a database.

  1. Effectivity Scope item ID is the unique identifier (ID) of an Effectivity Scope Item used as a context for effectivity resolution.The representation of the “Effectivity Scope item ID” mandatory field in an AML request is the node “effs_scope_id” matching the XPath “Item/effs_scope_id | Item/and/effs_scope_id” and containing 32-hex GUID.
Note
The node “effs_scope_id” is passed to the internal GetItem module as part of querying the database.

  1. DB query for items with ordinary filtering conditions is an action on the preprocessing stage of effectivity resolution. The internal GetItem module requests items from a DB with optional item filtering conditions and the mandatory property “effs_scope_id”. A response has items with effectivity expressions for evaluation with Effectivity Criteria.
  2. Effectivity Expression items are the result of querying a DB for items, which fulfill specified optional item filtering conditions and the mandatory property “effs_scope_id”.
  3. Effectivity Scope is an item of the ItemType “effs_scope” requested from a DB using the incoming mandatory request property “effs_scope_id”. This is to get a builder method referenced in the property “builder_method” of an Effectivity Scope item.
  4. Builder Method is an item of the ItemType “Method”. The preprocessing stage of Effectivity Resolution extracts the last generation of the method code using a reference in an Effectivity Scope item, compiles the code and calls it with the single argument “Effectivity Scope Id” to return a properly constructed Scope object.
  5. Scope object is a properly constructed instance of the class “Aras.Server.Core.Configurator.Scope”, which has a list of Effectivity Variables, which will take a part in Effectivity Resolution.
  6. Effectivity Resolve Module takes Effectivity Expression items, Effectivity Criteria, and a Scope object to evaluate each Effectivity Expression item against Effectivity Criteria. If this evaluation produces the logical truth, the item goes to the resulting structure.
  7. Effective items are the result of the effectivity resolution process flow. The final structure contains only the items determined to be valid for the specified effectivity criteria.