Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Service model inquiry


This topic gives an overview of the service model inquiry function.

smcomps/5—search for certain Service Model  components

Warning

This is an advanced primitive and can possibly cause the cell to become unresponsive for a certain time when performing an in-depth search of a large Service Model.

smcomps($PARMNAMES,$PARMVALS,$COMPS1,$SHADOWS,$COMPS2)

 smcomps/5 arguments 

Argument

Mode

Type

Description

$PARMNAMES

Input

LIST_OF STRING

List of parameter names

$PARMVALS

Input

LIST_OF STRING

List of parameter values

$COMPS1

Output

LIST_OF OBJECT

List of primary search components

$SHADOW

Output

LIST_OF OBJECT

List of shadow components

$COMPS2

Output

LIST_OF OBJECT

List of secondary search components

Use the smcomps/5 primitive to return a list of pointers to the components that are in the impact path or the cause path of a selected component. Various parameters can be used to refine that list.

The smcomps/5 primitive makes it possible to retrieve, manage, and propagate a list of impacted components or causal components from within the rules of a Knowledge Base.

Note

You can also retrieve root causes by using MC_SM_ROOT_CAUSE instead of smcomps.

smcomps/5 searches for Service Model components as specified by the $PARMNAMES and $PARMVALS argument values. The result is returned as a list of primary search components $COMPS1, a list of shadow components $SHADOWS, and a list of secondary search components $COMPS2.

The two parameter lists—the $PARMNAMES list that contains only the names of the parameters and the $PARMVALS list that contains the values corresponding to the parameters named in $PARMNAMES in the same order—determine the search behavior. Available parameter names and possible values are as follows:

Parameter

Value

comp

mc_udid of the focus Service Model component data object. Default value is 0; therefore, you must enter a valid value for this parameter.

dir

c | i where c=cause and i=impact. Default direction value is c.

impact

t | p where t=true impact and p=possible impact. Default impact type is p.

events

T | F where T=True and F=False. Default value is F (it is not requested that the components have attached events).

ext

T | F where T=True and F=False. Default value is F (extended search is not turned on).

leaf

T | F where T=True and F=False. Default value is F (leaf nodes are not required).

type

Component class name. Default is the BMC_BaseElement class.

The smcomps primitive retrieves components, starting with the focus component identified by comp, in the direction specified by dir. The other parameters influence whether or not a component is included in the result, and whether or not the search is continued. A component is included if each of the following conditions holds:

  • The component must be an instance of the class given in the type parameter or one of its subclasses. 
  • When the events parameter is set to T, only components with attached events (components with self_status!=NONE) are retrieved by smcomps
  • When the leaf parameter is set to T, only leaf components (components with self_status > impact_status) are retrieved. 

    In an impact direction search, shadowed components (components with shadow_cells not empty) are always included, regardless of the above conditions.

    The search is terminated if any of the following conditions holds:

  • If true impact is requested through the impact parameter (impact=t), but the relationship does not have true_impact=YES
  • If leaf components were requested (leaf = T) and a leaf component has been found 

If an extended search is requested through the ext parameter (ext=T), and the primary search is terminated at the focus component, a secondary search is performed, continuing after the focus component under the same conditions.

The $SHADOWS list contains shadow components (components with scope=SHADOW). Such components are included in the result without checking any constraints. The $COMPS2 list contains the components returned from the secondary search and is empty if no extended search was requested. It can be nonempty only if the list $COMPS1 is either empty or only contains only the focus component. $SHADOWS and $COMPS2 normally are not used in the context of MRL.

The smcomps primitive does not cross cell boundaries.

smcomps/5 example

smcomps([comp,dir,impact,events,leaf],[comp123,i,t,T,T],$COMPS,$SHADOW,$C2);
listwalk($COMPS,$COMP);
concat([$MSG,' ',$COMP.mc_udid],$MSG);

In this example, a listwalk of the result list is performed to save the mc_udids in a slot of the event. You can then retrieve the desired properties from the components by a using clause referencing the udids.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*