F3293EvaluateAndProcessAIR

F3293 Evaluate AIR

Major Business Rule

Object Name: B3200460

Parent DLL: CMFG

Location: Client/Server

Language: C

1.Functional Description

1.1Purpose
This business function determines whether the test condition ("If Condition") of an Assembly 
Inclusion Rule is true or false and then processes the "Then Statement" portion of the edit group.  The "Then 

Statement" processing is based on the Rule Type:

1. Rule Type "C" - Interprets calculated segment values by evaluating the    Derived Calculation.
2. Rule Type "P" or "Q" - Writes All Components List Cache

3. Rule Type "R" - Writes Routings Cache

4. Rule Type "X" - Writs Price/Cost Cache 


1.2Setup Notes and Prerequisites

This function is called from N3200470, Process AIR Rules.   N3200470 is called either from P3294 at 
sales order entry or R31410 during work order generation.


1.3Special Logic
None

2.Technical Specifications
2.4Processing
A.After processing all retrieved records for this Configured Item, Branch/Plant,  and Rule Type, 
exit the business function.  Pass back the number of "P" records written to the All Components cache.  

Also, pass back the data structure I/O fields (i.e. current value of ATSQ, LVL, SEQ; "Next" fields; 

Next Sales Order Line Number, and other I/O fields).


B.Routine to retrieve  BPUUPRC - F4106 - Base Price (BP) for external fields in DERC/DERP logic:

The following parameters will need to be added to B3200460 and N3200670 data structures.

• Computer ID (CTID)
• Job Number (JOBS) 
• Sales Order Version (VERS)
• Use Cache in Edit Line (EV04)
• Last Line No. Assigned (LNIX)
• Work File Line Number (LNIX)

A.After processing all retrieved records for this Configured Item, Branch/Plant,  and Rule Type, 
exit the business function.  Pass back the number of "P" records written to the All Components cache.  

Also, pass back the data structure I/O fields (i.e. current value of ATSQ, LVL, SEQ; "Next" fields; 

Next Sales Order Line Number, and other I/O fields).


B.Routine to retrieve  BPUUPRC - F4106 - Base Price (BP) for external fields in DERC/DERP logic:

The following parameters will need to be added to B3200460 and N3200670 data structures.

• Computer ID (CTID)
• Job Number (JOBS) 
• Sales Order Version (VERS)
• Use Cache in Edit Line (EV04)
• Last Line No. Assigned (LNIX)
• Work File Line Number (LNIX)

1)Call B4200310-F4211 Edit Line with the following parameters to retrieve the unit price:
a) Computer ID (CTID) = Computer ID (CTID) passed in as input (new parameter).
b)Job Number (JOBS) = Job Number (JOBS) passed in as input (new parameter)

c)Line Action (ACTN) = 'Add'

d)Process Edits (EV01) = '1'

e)Write to Work File (EV03) = Use Cache in Edit Line (EV01) passed in as input (new 

parameter
). 
f)Record Written to Work File (EV04) = '1'

g)Error Conditions (ERRC) = blank

h)Currency Control (CRYR) = Currency Conversion (CRYR) passed in as input.

i)Program ID (PID) = 'B3200460'

j)Version ID (VERS) = Sales Order Version passed in as input (new parameter).

k)Order Company (KCOO) = Order Company (KCOO) passed in as input.

l)Order Number (DOCO) = Order Number passed in as input.

m)Order Type (DCTO) = Order Type passed in as input.

n)Last Line Number Assign = Last Line Number parameter passed in as input.

o)CM Line Number = 0.

p)Line Number (XLIN) =0.

q)Item Number (UITM) = 

i.If the F3293 Component Item number (ITM) is not zero, convert the Component Item Number 
(ITM) to primary item number using X4101.  See the logic in I3200790_X4101 (B3200790).  

ii.If the F3293 Component Item Number (ITM) is zero, perform the same conversion using the 

Parent Item (KIT) value.

r)Branch/Plant (MCU) = 
i.If the component item is passed (see previous step),  use the F3293 Component 
Branch/Plant (CMCU).  

ii.If the parent item is passed, use the F3293 Parent Branch/Plant (MCU).

s)Quantity Ordered (UORG) =  1
t)Transaction Unit of Measure (UM) =

i.If the component item is passed, use the F3293 Unit of Measure (UOM) if not blank.  If 
blank, retrieve the component UOM (IMUOM9) by reading F4101 using Get Item Master Row (XF4101) 

business function.  Read F4101 with the component Item Number parameter.

ii.If the parent item is passed, use the transaction unit of measure passed in as input.

u)Pricing Unit of Measure (UM) = Retrieve the component pricing UOM (IMUOM4) by reading 
F4101 using Get Item Master Row (XF4101) business function.  Read F4101 with the either the 

component or parent item (based on which item is being passed). 

v)Related Kit Item Number (RLIT) = F3293 Parent Item Number (KIT) converted to string.

w)Related Kit Component (RKIT) = Sales Order Line Number (LNID) passed in as input.

x)Line Type (LNTY) = "S".


2)Use the Unit Price value (UPRC) returned from this routine for the BPUPRC data item value. Do 
not need to perform Extract Data Item function.


3)Call B4200310-F4211 Edit Line with the following parameters to delete the sales order detail 

line written to retrieve the price in step 1 above:

a)Computer ID (CTID) = Computer ID (CTID) passed in as input (new parameter).
b)Job Number (JOBS) = Job Number (JOBS) passed in as input (new parameter)

c)Line Action (ACTN) = 'Delete

d)Process Edits (EV01) = '1'

e)Write to Work File (EV03) = Use Cache in Edit Line (EV01) passed in as input (new 

parameter). 

f)Record Written to Work File (EV04) = '1'

g)Error Conditions (ERRC) = 

h)Currency Control (CRYR) = Currency Conversion (CRYR) passed in as input.

i)Program ID (PID) = 'B3200460'

j)Version ID (VERS) = Sales Order Version passed in as input (new parameter).

k)Order Company (KCOO) = Order Company (KCOO) passed in as input.

l)Order Number (DOCO) = Order Number passed in as input.

m)Order Type (DCTO) = Order Type passed in as input.

n)Last Line Number Assign = Last Line Number parameter passed in as input.

o)CM Line Number = 0.

p)Line Number (XLIN) =0.


C.Routine to retrieve  Rule Table Value from F3283:

1)Retrieve the Cross-Reference record (F3282) using the following keys:
a)F3293 Table Name (TBLC)
b)F3293 Parent Item (KIT)

c)F3293 Branch/Plant (MCU)

d)F3293 Rule Table Type (RTBT)

2)If no record was found, read F3282 for a generic branch/plant (same key as above except blanks 
in branch/plant).

3)If no record was found, read F3282 for generic branch/plant and item (same key as above except 

blanks in branch/plant and zeros in item).

4)If Cross-Reference record (F3282) was found, retrieve the Rules Table Definition (F3281) row 

using these keys:

a)F3282 Table Name (TBLC)
b)F3282 Branch/Plant (MCU)

c)F3282 Rule Table Type (RTBT)

5)Initialize the F3283 key to:
a)F3283 TBLC = F3282 TBLC
b)F3283 MCU = F3282 MCU

c)F3283 RTBT = F3282 RTBT

d)All other F3283 fields = blanks

6)If this is a call type "1",  retrieve F3283 key values from Segment Values cache.  Perform this 
logic multiple times (F3281 NSEG  value times).

a)Retrieve cache with the following key values:
i.Item = If F3282 item (SITn) is not 0, use this value; otherwise, use the F3293 item (KIT)
ii.Branch/Plant = If F3282 item (SITn) is not 0, use F3282 MCU; otherwise, use F3293 MCU.

iii.Segment Number = Use F3282 Segment Number (PELn).

b)Move the retrieved segment value to the appropriate element in the F3283 key (e.g. SV1, 
SV2, SV3, etc).

7)If not call type "1", retrieve the segment values from history files. Perform this logic 
multiple times (F3281 NSEG  value times).

a)Retrieve the F3294 record with the following key values:
i.DOCO = Document Number (DOCO) passed in as input parameter
ii. DCTO = Document type (DCTO) passed in as input parameter.

iii. KCOO = Key company (KC00) passed in as input parameter.

iv. LNID  = 

• If F3282 Item (SITn) is not zero, (i.e. there is an upper/lower level reference), 
(manipulate LNID '85.

• If F3282 Item (SITn) is zero, use Sales Order Line Number.
b)Read F32942 with the following key values:
i.KIT = 
1.If F3282 Item (SITn) is not zero, use the item from F3294 (KIT).
2.If F3282 Item (SITn) is zero, use the F3293 item number (KIT).

ii.   CSID = Use F3294 CSID value.
iii.  ITM = 

1.If F3282 Item (SIT) is not zero, use the item from F3282 (SITn).
2.If F3282 Item (SIT) is zero, use the F3293 parent item number (KIT).

iv.  PEL = Use F3282 Segment Number (PELn)
c)Move the retrieved segment value to the appropriate element in the F3283 key (e.g. SV1, 
SV2, SV3, etc).


This function will be used to Evaluate and Process Assembly Inclusion Rules


Data Structure

D3200460 - F3293 Evaluate And Process AIR

Parameter NameData ItemData TypeReq/OptI/O/Both
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.

szBranch_PlantMCUcharNONENONE

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.

cRuleTypeATOTcharNONENONE

A value that identifies whether the resulting value of the assembly inclusion rule is a part number, price, routing operation, or calculated 
value. The valid values are:    P Part List    Q Work Order Component    C Calculation    H Hot Spot    X Price/Cost Adjustment    R Route Sheet

cQuoteIndicatorEV01charNONENONE

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

cCostSalesQuotesIndicatorCCSQcharNONENONE

A setting that specifies which costs accumulate when the order type matches one of the sales quote document types. Valid values are: 0 The 
costs of only the P and X assembly inclusion rules accumulate. 1 All costs from P, Q, R, and X (cost) assembly inclusion rules accumulate. 
This is the default value.

cCallTypeEV01charNONENONE

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

cUpdateQ_RulesFlagEV01charNONENONE

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

cUpdateR_RulesFlagEV01charNONENONE

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

szOrderBranchPlantMCUcharNONENONE

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.

mnOrderTransactionQtyQTYMATH_NUMERICNONENONE

The number of units associated with an asset.

mnOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

szOrderCompanyKCOOcharNONENONE

A number that, along with order number and order type, uniquely identifies an order document (such as a purchase order, a contract, a 
sales order, and so on). If you use the Next Numbers by Company/Fiscal Year facility, the Automatic Next Numbers program (X0010) uses the 
order company to retrieve the correct next number for that company. If two or more order documents have the same order number and order 
type, the order company lets you locate the desired document. If you use the regular Next Numbers facility, the order company is not used to 
assign a next number. In this case, you probably would not use the order company to locate the document.

szOrderLineTypeLNTYcharNONENONE

A code that controls how the system processes lines on a transaction. It controls the systems with which the transaction interfaces, such as 
General Ledger, Job Cost, Accounts Payable, Accounts Receivable, and Inventory Management. It also specifies the conditions under 
which a line prints on reports, and it is included in calculations. Codes include the following: S Stock item   J Job cost   N Nonstock item   F Freight  
T Text information   M Miscellaneous charges and credits   W Work order

szOrderTransactionUOMUOMcharNONENONE

A user defined code (00/UM) that indicates the quantity in which to express an inventory item, for example, CS (case) or BX (box).

jdOrderRequestDateDRQJJDEDATENONENONE

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

mnExtendedCostECSTMATH_NUMERICNONENONE

For accounts receivable and accounts payable, the invoice (gross) amount. For sales orders and purchase orders, the unit cost times the 
number of units.

mnOrderAddressBookNoAN8MATH_NUMERICNONENONE

A number that identifies an entry in the Address Book system, such as employee, applicant, participant, customer, supplier, tenant, or 
location.

jdOrderShipDatePDDJJDEDATENONENONE

The promised shipment date for either a sales order or purchase order. The Supply and Demand Programs use this date to calculate 
Available to Promise information. This value can be automatically calculated during sales order entry. This date represents the day that the item 
can be shipped from the warehouse.

mnJobNumberJOBSMATH_NUMERICNONENONE

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

mnNumberP_RulesWrtToCacheMATH01MATH_NUMERICNONENONE

- - - Good Performance Low Value. 

cSuppressErrorMessageEV01charNONENONE

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.

szParentWO_NumberPARScharNONENONE

A number that identifies the parent work order. You can use this number to do the following:     o Enter default values for new work orders, 
such as Type, Priority, Status, and Manager     o Group work orders for project setup and reporting  

mnWorkOrderNumberDOCOMATH_NUMERICNONENONE

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

mnUnitPriceValueUPRCMATH_NUMERICNONENONE

The list or base price to be charged for one unit of this item. In sales order entry, all prices must be set up in the Item Base Price File table 
(F4106).

jdDatePriceEffectiveDatePEFJJDEDATEOPTNONE

The system uses the Price Effective Date to determine the base price and all advanced price adjustments.  The value loaded in this date 
is stored in the System Constants File (F4009).

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.

szSystemCodeSYcharOPTNONE

A user defined code (98/SY) that identifies a system. Valid values include: 01 Address Book 03B Accounts Receivable 04 Accounts 
Payable 09 General Accounting 11 Multicurrency

cForeignOrDomesticEV01charOPTNONE

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

szCustomerGroupCSTPcharOPTNONE

Customer types that a customer can be grouped into for each of the different preference types.

szItemGroupITTPcharOPTNONE

Item types that a item can be grouped into for each of the different preference types.

cParentInventoryInterfaceIVIcharOPTNONE

A code that identifies the type of interface to the Inventory Management system. Valid values are:    Y The dollar or unit value of any activity 
containing this line type will be reflected in inventory. The system also edits the item that you enter to ensure that it is a valid item. Y is the 
default.    A The system recognizes the number that you enter as a G/L account number. The system uses this code in purchasing only.    B The 
system performs edits when using format 4 in purchase order entry.        The system retrieves price data from the inventory tables, but does not 
update the quantity on the purchase order. This code is valid only when you have set the G/L Interface field to Y (yes). Budget checking is 
fully functional when you use this interface code.    D The item in this line is an inventory item that will not affect availability or quantities.    N The 
item is not an inventory item. To verify whether the item exists in the Item Master file, use Inventory Interface N in conjunction with the flag, Edit 
the Item Master for Non-Stock Items.

mnParentSOLineNumberLNIDMATH_NUMERICOPTNONE

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.

mnOrderPromisingVersionMATH01MATH_NUMERICOPTNONE

- - - Good Performance Low Value. 

mnParentIDNumberCFGPIDMATH_NUMERICOPTNONE

A number that represents the parent component of a component in a configuration.

szTransferToBranchMCUcharOPTNONE

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.

Related Functions

B3200350 Cache Process Segement Values
B3200370 Cache Process All Components
B3200390 Cache Process Routings
B3200400 Cache Process Price Cost
B3200450 F3292 F3293 Evaluate Rule Condition
B3200480 Evaluate Boolean Expression
B3200500 F3293 Evaluate Derived Calculation
B3200950 F3283 Get Next Rules Table Detail
B4000520 Get Item UoM Conversion Factor
B4200310 Sales Order Entry Master Business Function
N3200920 F3281 Get Rule Definition Row
N3200940 F3282 Get Rules Table Cross Ref Row
N3200960 F32821 Get Rules Value Definition Row
X4101 Validate and Retrieve Item Master

Related Tables

F3293 Assembly Inclusions Rules
F32942 Needed for upgrade from Xe and below
F32943 Needed for upgrade from Xe and below
F4102 Item Branch File