FUNCTION xpxFindStringPatternInModel(modelId : GENERIC; options : INTEGER; maxHitsOfOneStringPattern : INTEGER; includeOrExcludeInstanceTypeFilter : SET OF GENERIC; VAR index : INTEGER; VAR anyMatchingInstances : BOOLEAN; stringPattern1: STRING; VAR matchingInstances1, VAR matchingAttributes1 : LIST OF GENERIC; stringPattern2: STRING; VAR matchingInstances2, VAR matchingAttributes2 : LIST OF GENERIC; stringPattern3: STRING; VAR matchingInstances3, VAR matchingAttributes3 : LIST OF GENERIC; stringPattern4: STRING; VAR matchingInstances4, VAR matchingAttributes4 : LIST OF GENERIC; stringPattern5: STRING; VAR matchingInstances5, VAR matchingAttributes5 : LIST OF GENERIC) status : INTEGER;
Function to search all STRING data types in model for one or more specified string patterns. This function have variable number of arguments. The legal number of arguemts are 9,12,15,18 or 21 arguments.
Arguments
Type | Name | Comment |
---|---|---|
GENERIC | modelId | The actual model to be search. This model must be open. |
INTEGER | options | Optional argument. The default option value is "xpxCASE_SENSITIVE", i.e., all existing string roles will be search for matching the given string pattern by invoking xpfLike() with the option xpxCASE_SENSITIVE set. |
INTEGER | maxHitsOfOneStringPattern | Optional argument. The default value is INDETERMINATE (?), i.e., all specified string roles will be searched before the search operation is terminated. When specified, this argument specifies the maximum hits before the search operation is terminated. The meaning of "maximum hits before the search operation is terminated" may have different interpretation according to the actual given "options" value (xpxSTOP_ON_FIRST_MATCH, xpxSTOP_ONE_ONE_REACHED_MAX_MATCH, xpxSTOP_ON_ALL_REACHED_MAX_MATCH) |
SET OF GENERIC | includeOrExcludeInstanceTypeFilter | Optional argument. The default value is INDETERMINATE (?). When specified, this argument should be a set of entity names and/or full qualified roles, i.e., a SET OF STRING aggregate. An entity name element repesents all roles of the specified enity, i.e., all roles of the specified instance type. A fully qualified role has the format: "entityName.attributeName". When the option xpxINCLUDE_FILTER is set, only the roles specified in the "includeOrExcludeFilter" will be search. When the option xpxEXCLUDE_FILTER is set, all possible roles except those specified in the "includeOrExcludeFilter" will be searched. This argument have no effect when neither the xpxINCLUDE_FILTER nor the xpxEXCLUDE_FILTER options are set. |
INTEGER | VAR index | Optional argument. Default value is index = 1, i.e., start searching on the first possible string value. When specified, it defines the index of the first string value to be searched. The index of the "last search string value + 1" is returned when the xpxFindStringPatternInModel() operation is terminated. This functionality enables the possibility to perform a search in an iterative way, i.e., the xpxFindStringPatternInModel() function can be called in a loop using the returned "index" value from one invocation as the input "index" value in the next invocation. |
BOOLEAN | VAR anyMatchingInstances | Optional argument. Default value is INDETERMINATE (?). When specified this argument will be set to TRUE when at least one hit is found in the search, else "anyMatchingInstances" will be set to FALSE |
STRING | stringPattern1 ... stringPattern5 | This argument can be specified in 4 different ways:
The options xpxEXACT_EQUALS and xpxEXPRESSION_CONDITION are valid for all specified "stringPattern" arguments. Hence a mix of 1 and/or 2+3 and/or 4 is invalid. Only a mix of 2 and 3 are legal in one invocation of the xpxFindStringPatternInModel() function. One xpxFindStringPatternInModel() operation can maximum search for 5 string patterns |
LIST OF GENERIC | VAR matchingInstances1.. matchingInstances5 | This argument receives a LIST OF GENERIC with one instanceId for each hits, i.e., the number of elements in this list will be equal to the number of hits for the related "stringPattern" argument. The same instanceId may occur several times in the actual "matchingInstances" list as there may be more than one matching role in an instance. |
LIST OF GENERIC | VAR matchingAttributes1.. matchingAttributes5 | This argument receives a LIST OF GENERIC with one attributeId (attributeId is a role) for each hits, i.e., the number of elements in this list will be equal to the number of hits for the related "stringPattern" argument. The same attributeId may occur several times in the actual "matchingAttributes" list as there may be more instances that matches the search in the same role. A pair of elements with the same index in the "matchingInstances" and "matchingAttributes" lists uniquely identifies the matching string value (instanceId.attributeId). When the attributeId is an aggregate, the actual aggregate element index can be found by searching the aggregate. The function xpfAggrLike() is suitable for this operation. |
Return Value
Options
Option | Comment | |
---|---|---|
1 | XPXSEARCH_TABLE_INSTANCES | Search all columns of all persistent EDMtableInstances. NOTE: option not yet implemented! |
2 | XPXSEARCH_USER_DEFINED_ENTITIES | Search all userDefinedEntity instances. NOTE: option not yet implemented! |
3 | XPXCASE_INSENSITIVE | Use case insensitive string comparison in the actual xpfLike() function that implements the actual search operation. |
4 | XPXCASE_SENSITIVE | Use case sensitive string comparison in the actual xpfLike() function that implements the actual search operation. |
5 | XPXINCLUDE_FILTER | The filter specified in the "includeOrExcludeFilter" argument is an "include filter". This option has no effect when no "includeOrExcludeFilter" is specified. |
6 | XPXEXCLUDE_FILTER | The filter specified in the "includeOrExcludeFilter" argument is an "exclude filter". This option has no effect when no "includeOrExcludeFilter" is specified. |
7 | xpxEXPRESSION_CONDITION | The specified "stringPatternOrCondition" arguments is specified as an textual EDMexpressX logical expression or an integer expressionId that has been compiled by the xpfDecodeLogicalExpression() or the xpxDecodeLogicalExpression() earlier in the actual EDMvmSession. |
8 | xpxEXCLUDE_AGGR_ROLES | No aggregate attributes (roles) will be searched. |
9 | xpxEXCLUDE_SIMPLE_ATTR_ROLES | No simple attributes (roles) will be searched. NOTE: option not yet implemented! |
10 | xpxEXACT_EQUALS | Search for equalness only, i.e., search for strings that are identical to the specified "stringPattern". |
11 | xpxSTOP_ON_FIRST_MATCH | The search operation will stop on the first found match. |
12 | xpxSTOP_ONE_ONE_REACHED_MAX_MATCH | The search will stop when the number of hits for at least one search condition is reached the max hits specified in the "maxHitsOfOneStringPattern" argument. This option has no effect when the "maxHitsOfOneStringPattern" argument is not specified. |
13 | xpxSTOP_ON_ALL_REACHED_MAX_MATCH | The search will stop when the number of hits for all given search condition have eached the max hits specified in the "maxHitsOfOneStringPattern" argument. This option has no effect when the "maxHitsOfOneStringPattern" argument is not specified. |
Example
<Missing Example>
See also
Filter by label
There are no items with the selected labels at this time.