CheckForRecursiveComponents

Check For Recursive Components

Major Business Rule

Object Name: B3000480

Parent DLL: CMFGBASE

Location: Client/Server

Language: C

1.Functional Description

1.1Purpose

This business function checks for recursive components and modifies the item master low level codes.
.


2.Technical Specifications


2.4Processing 


1.0.  Retrieve the Parent Item Low Level Code (LLX) from the Item Master Table (F4101).

2.0.  Retrieve the Component Item Low Level Code (LLX) from the Item Master Table (F4101).


4.0.  Store DS Component Item and distance from Parent Item = '1'.


6.0.  Retrieve next lower level component until all lower level components have been processed or a 

recursive component is found.  Retrieve from bill of material where Parent Item = previous level 

component.

6.1.  Retrieve next lower level component from the Bill of Material Table.
6.2.  If the F3002 Component Item is equal to DS Parent Item or DS Component, then the component 
is recursive.

6.3.  If Component is recursive, assign DS Error Message ID = '0897'.  If Component is recursive 

and Suppress Error Messages is not equal to '1',  SetGBRErrror = '0897' and highlight DS Component 

Item.  Exit the application.

6.4.  Store the F3002 Component and maximum distance from parent item.

7.0.  If no recursive components are found, update the low level codes.

7.1.  Retrieve Time, Date, User ID, Program ID, and Work Station.
7.2.  Update the Parent Item Low Level Code if needed.  If the Parent Item Low Level Code is equal 
to zero, assign the Parent Item Low Level Code = 1 and update the Parent Item Low Level Code in 

the Item Master Table and Item Branch Table.  More than one record may be updated in the Item Branch 

Table.

7.3.  Update the Component Item Low Level Code.

7.3.1.  Calculate new component low level code = Parent Low Level Code +1.
7.3.2..  If New Low Level Code is greater than the Item Master low level code, update the Low 
Level code in the Item Master Table (F4101).  Update the Item Master Low Level Code, Program 

ID, Job Number, Date Updated, and Time of Day.

7.3.3.   If the New Low Level Code is greater than the Item Branch low level code, update the 

Low Level code in the Item Branch Table (F4102) using Item Number.  More then one record may 

exisit per item number in the Item Branch Table.  Update the Item Branch Low Level Code, Program 

ID, Job Number, Date Updated, and Time of Day.


7.4.  Update the low level codes of all lower level bill of material components.
7.4.1.  Calculate new component low level code = Parent Low Level Code + Component level
7.4.2.  If the new low level code is greater than the Item Master low level code, update the 
Low Level code in the Item Master Table (F4101).  Update the Item Master Low Level Code, Program 

ID, Job Number, Date Updated, and Time of Day.

7.4.3.  If the new low level code is greater than the Item Branch low level code, update the 

Low Level code in the Item Branch Table (F4102) using Item Number.  More than one record may 

exist per item number in the Item Branch Table.  Update the Item Branch Low Level Code, Program 

ID, Job Number, Date Updated, and Time of Day.



Data Structure

D3000480 - Check For Recursive Components

Parameter NameData ItemData TypeReq/OptI/O/Both
szParentBranchMMCUcharNONENONE

A code that represents a high-level business unit. Use this code to refer to a branch or plant that might have departments or jobs, which 
represent lower-level business units, subordinate to it. For example:     o Branch/Plant (MMCU)     o Dept A (MCU)     o Dept B (MCU)     o Job 123 
(MCU) Business unit security is based on the higher-level business unit.

mnParentItemKITMATH_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.

szComponentBranchMCUcharNONENONE

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.

mnComponentITMMATH_NUMERICNONENONE

An inventory item number. The system provides three separate item numbers plus an extensive cross-reference capability to other item 
numbers (see data item XRT) to accommodate substitute item numbers, replacements, bar codes, customer numbers, supplier numbers, and 
so forth. The item numbers are as follows:   o Item Number (short) - An eight-digit, computer-assigned item number     o 2nd Item Number - The 
25-digit, free-form, user defined alphanumeric item number     o 3rd Item Number - Another 25-digit, free-form, user defined alphanumeric item 
number

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.

Related Functions

B9800100 Get Audit Information

Related Tables

F3002 Bill of Material Master File
F4101 Item Master
F4102 Item Branch File