F3292F3293EvaluateRuleCondition

F3292 F3293 Evaluate Rule Condition

Major Business Rule

Object Name: B3200450

Parent DLL: CMFG

Location: Client/Server

Language: C

1.Functional Description

1.1Purpose
This business function interprets an individual condition in a Cross Segment Edit or Assembly 
Inclusion Rule and returns "0" if the condition is false and "1" if the condition is true.


1.2Setup Notes and Prerequisites


1.3Special Logic

There is no special logic within this function.

2.Technical Specifications

2.4Processing 

A.If the Condition Test Value (ATIV) = *ALL, set the Test Result Indicator to "1" (TRUE) and exit 
the business function.

B.If the Condition Test Value (ATIV) = *BLANK or *BLANKS, move spaces to the Condition Test Value 

field.

C.If the Condition Test Value (ATIV) = *ZERO or *ZEROS, move zeros to the Condition Test Value 

field and set a numeric work field = zero.

D.If the segment value is numeric (the Segment Numeric Indicator (CN) = "Y"), convert the Segment 

Value (VAL1) and Condition Test Value to a numeric value and store in two numeric work fields.

E.If the Condition Test Value is not *VALUE, *VALUES, *RANGE, or *RANGES:

1)Using the correct relationship (VALR), compare the Segment Value to the Condition Test Value.
Use the numeric work fields if the segment is numeric (CN = "Y"), otherwise use the non-numeric 

ATIV and VAL1 fields for comparison.  If the VALR value is not in this list, return a FALSE result.

VALR values:

EQNEEqual to/Not equal to

LTNLLess Than/Not less than

GTNGGreater Than/Not greater than

LE----Less than or equal to

GE----Greater than or equal to


2)Set the Test Result Indicator to "1" (TRUE) or "0" (FALSE) and exit the business function.


F.If the Condition Test Value is *VALUE or *VALUES:

1)If the Relationship (VALR) is not "EQ" or "NE", set the statement to TRUE and exit the business 

function.

2)Read the Values table (F32921) with the FCOD, KIT, MCU, ATO#, ATOS and SGVL input parameter 
values.

3)For comparation field is "EQ":

If the record is found return '1'

Else return '0'

4) For comparation field is "NE", reverse the value of "EQ"

5)Exit the business function.


G.If the Condition Test Value is *RANGE or *RANGES:

1)If the Relationship (VALR) is not "EQ" or "NE", set the statement to TRUE and exit the business 
function.

2)If the Relationship (VALR) is "EQ" or "NE":

a)Read the Ranges table (F32922) with the FCOD, KIT, MCU, ATO# and ATOS input parameter 
values.

b)If a record is found, validate the statement as follows. Use numeric work fields for 

comparison if the segment is numeric (CN="Y") otherwise use the non-numeric fields for comparison.

1.If the Relationship is "EQ",  the statement is TRUE if the value is within the set of 
range values (inclusive).

2.If the Relationship is "NE", the statement is TRUE if the value is outside (less than or 

greater than) the range values.

3.If the above conditions are not met, set the statement to FALSE.

c) Exit the business function.

^

Data Structure

D3200450 - F3292 F3293 Evaluate Rule Condition

Parameter NameData ItemData TypeReq/OptI/O/Both
cFileCodeFCODcharNONENONE

The file code is used in the *RANGE and *VALUE file for configurations to determine if the *RANGE or *VALUE goes with a "IF" statement, a 
"THEN"statement or with an assembly inclusion rule statement.

mnParentItemNumberKITMATH_NUMERICNONENONE

The system provides for three separate item numbers.    1.   Item Number (short) - An eight-digit, computer assigned, completely 
non-significant item number.    2.   2nd Item Number - The 25-digit, free form, user defined alphanumeric item number.    3.   3rd Item Number - Another 
25-digit, free form, user defined alphanumeric item number.

szBranchMCUcharNONENONE

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

mnRuleNumberATO#MATH_NUMERICNONENONE

The number associated with a set of cross-segment editing rules or assembly inclusion rules.

mnRuleSequenceNumberATOSMATH_NUMERICNONENONE

The Sequence number is the rule number within an edit group of cross-segment editing rules or assembly inclusion rules. You can insert a 
line within a rule to assign a new sequence number.

szRelationshipVALRcharNONENONE

A user defined code (00/VA) that indicates the relationship between the ranges of variances that you display. Valid values are: EQ  Equal 
to LT  Less than LE  Less than or equal to GT  Greater than GE  Greater than or equal to NE  Not equal to NL  Not less than NG  Not greater than CT 
Contains (only allowed in selection for Open Query File function) CU  Same as "CT" but converts all input data to uppercase letters

cTestResultIndicatorEV01charNONENONE

An option that specifies the type of processing for an event.

cSuppressErrorMessagesEV01charNONENONE

An option that specifies the type of processing for an event.

szErrorMessageIDDTAIcharNONENONE

A code that identifies and defines a unit of information. It is an alphanumeric code up to 8 characters long that does not allow blanks or 
special characters such as %, &, or +. You create new data items using system codes 55-59. You cannot change the alias.

cSegmentNumericIndicatorCNUMcharNONENONE

Determines whether a user defined code is numeric or alphanumeric. Valid values are:    Y Indicates that the code is numeric and should be 
right-justified.    N Indicates that the code is alphanumeric and should be left-justified.

szSegmentValueATIVcharOPTNONE

An answer that is valid for the segment and rule relationship. You can enter a specific UDC value or one of the following values: *VALUES 
The system provides multiple values lists for you to use in the logic rule. You can enter up to 45 values.    *BLANK  The system uses a blank 
value in the logic rule. *ZERO  The system searches for amounts equal to zero as part of the logic rule. *RANGE  The system uses a range of 
values (for example, 1 to 50) in the logic rule. You enter the range of values. The first value in the range must be less than the second value. *ALL 
The system uses all values in the logic rule.

szConditionTestValueATIVcharOPTNONE

An answer that is valid for the segment and rule relationship. You can enter a specific UDC value or one of the following values: *VALUES 
The system provides multiple values lists for you to use in the logic rule. You can enter up to 45 values.    *BLANK  The system uses a blank 
value in the logic rule. *ZERO  The system searches for amounts equal to zero as part of the logic rule. *RANGE  The system uses a range of 
values (for example, 1 to 50) in the logic rule. You enter the range of values. The first value in the range must be less than the second value. *ALL 
The system uses all values in the logic rule.

Related Functions

None

Related Tables

F32921 Cross Segment Editing Rules - Values
F32922 Cross Segment Editing Rules - Range