F3292EvaluateCSETestCondition

F3292 Evaluate CSE Rules

Minor Business Rule

Object Name: B3200440

Parent DLL: CMFG

Location: Client/Server

Language: C

1.Functional Description

1.1Purpose
This business function determines whether the test condition ("If Condition") of a Cross Segment Edit 
Rule is true or false and then processes the "Then Segment Restriction" portion of the edit group.  

If errors are encountered while evaluating a rule, the business function returns to the calling program 

to allow the user to "accept" the error through the P3293W1 window.  If the errors are accepted by 

the user, this business function is called again to continue processing the edit rules for the 

configured item.  If the errors are not accepted by the user, the business function is not called again.


1.2Setup Notes and Prerequisites


1.3Special Logic

2.Technical Specifications

2.4Processing 


A.If call type = "1":

   Open F3292 and select all records matching the Configured Item and Branch/Plant specified in the 

input parameters. If no matching records are found, read F3293 with the Configured Item and Rule Type 

from the input parameters and spaces in the Branch/Plant; this will retrieve "generic" rules.


1)Process the selected records sequentially.  For each edit group retrieved:

a)Process all of the "If Condition" records:
'b7Retrieve the value of the segment from the Segment Values cache (cache handle 
passed in as input).

'deIf the Segment item number is not blank, use the Segment Branch/Plant (EMCU) and 
Segment Item number (PSIN), and Segment Number (PEL) for the lookup.  

'deIf the Segment item number is blank, use the Parent Item (KIT), Branch/Plant (MCU), 

and the Segment Number (PEL) from the F3292 record.

'b7Evaluate the individual condition in a record by calling the F3292_F3293 Evaluate 
Rule Condition (B3200450)
 business function. 
'deFCOD = "I"
'deATIV = ATIV value

'deVALR = VALR value

'b7Concatenate the Operation code (AO), beginning bracket (AO05B), the value returned 
from the business function ("0" if false, "1" if true), and the ending bracket (AO5E) value 

to the end of the boolean test string:

'deDo not concatenate spaces into the string.
'deDo not concatenate the Operation code (AO) field if the value is "I" ("If").


b)At a test condition break (i.e. when Child Segment Number (CEL) is not zero), evaluate 
the boolean string built from the "If Condition" statements by calling X32BOOL.  If errors are 

encountered in the X32BOOL routine, set the DTAI error message id  and exit the business function.


c)If the string evaluates TRUE (in X32BOOL) and this is not an "ELSE" (i.e. "*" in AO 

field) statement OR if this is an "ELSE" (i.e. "E" in AO field) statement and the string evaluates 

FALSE,  process each of  the "Then Segment Restriction" records as follows:

1.Retrieve the value of the segment from the Segment Values cache.   Use the Parent Item 
(KIT), Branch/Plant (MCU)  and  Segment Number (PEL) from the F3292 record and the Sales Order 

Line Number from the input parameters.

2.Evaluate the individual condition by calling the F3292_F3293 Evaluate Rule Condition 

(B3200450)
 business function.  Pass the following values:
FCOD = "T"
ATIV = ATTV value

VALR = VALS value

3.If the individual condition evaluates FALSE,  setup the following parameters from the 
current P3292 record and return to calling program (P3294).  The calling program will then call 

P3293W1 and if no errors are found, return to this business function on a second call (call 

type "2") to finish reading the rules. 

(1) KIT = Parent Item Number
(2) MCU = Branch/Plant

(3) ATO# = Rule Number

(4) ATOS = Rule Sequence Number

(5) RESU = Result from X32BOOL

(6) ATRQ = Optional/Required flag 

(7) HREQUEST = F3292 file pointer

(8) LNID = Sales Order Line Number (key to Segment Cache)


d)At an edit group break:
 Initialize the boolean test string for the next group.

B.If call type = "2":           

1)Using the F3292 file pointer (hRequest) passed in through input parameters,  continue reading 
the F3292 file and processing records as outlined in step A.


C.After processing all retrieved records for this Configured Item and Branch/Plant, free the 

hRequest pointer to F3292 and return to the calling program.


^

Data Structure

D3200440 - F3292 Evaluate CSE Rule

Parameter NameData ItemData TypeReq/OptI/O/Both
cCallTypeEV01charNONENONE

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

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.

cRequiredOptionalFlagATRQcharNONENONE

A code that specifies whether a segment is required or optional in a configuration, or whether the system must calculate it to specification 
when you enter an order. Valid codes are: R Segment answer is required during order entry. O Segment answer is optional during order 
entry. C Segment is calculated during order entry. You define the calculation with assembly inclusion rules.

idPPAT_MsgPointerGENLNGIDNONENONE

General purpose ID variable.

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.

cBoolReturnEV01charNONENONE

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

cTestFailedEV01charNONENONE

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

mnSalesOrderLinenumberLNIDMATH_NUMERICNONENONE

A number that identifies multiple occurrences, such as line numbers on a purchase order or other document. Generally, the system assigns 
this number,but in some cases you can override it.

mnJobNumberJOBSMATH_NUMERICNONENONE

The job number (work station ID) which executed the particular job.

cErrorReserve0EV02charOPTNONE

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

cErrorReserve1EV02charOPTNONE

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

cErrorReserve2EV02charOPTNONE

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

cErrorReserve3EV02charOPTNONE

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

cErrorReserve4EV02charOPTNONE

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

cErrorReserve5EV02charOPTNONE

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

cErrorReserve6EV02charOPTNONE

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

cErrorReserve7EV02charOPTNONE

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

cErrorReserve8EV02charOPTNONE

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

cErrorReserve9EV02charOPTNONE

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

szUserIDUSERcharOPTNONE

The code that identifies a user profile.

jdDateRequestedJulianDRQJJDEDATEOPTNONE

The date that an item is scheduled to arrive or that an action is scheduled for completion.

mnConfigurationIDNumberCFGIDMATH_NUMERICOPTNONE

An identifier that represents a unique configuration. It is generated by a next number value and is the key to the configuration tables.

mnComponentIDNumberCFGCIDMATH_NUMERICOPTNONE

A number that represents a component in a configuration. This number, which is generated by next numbers, always restarts at 1 and 
increments, based on the number of components in the configuration.

Related Functions

B3200220 F3291 Get Configured Item Segments Row
B3200350 Cache Process Segement Values
B3200450 F3292 F3293 Evaluate Rule Condition

Related Tables

F3292 Cross Segment Editing Rules