BOM Integrity Report

The Integrity Analysis program (R30601) generates a report that identifies any processes or Bill of Material (BOM) structures that must be corrected to properly generate production costs (R30812) and successfully obtain MRP output (R3482/R3483).  If the report indicates errors, correct the processes or BOMs and run the Integrity Analysis program again.  When the program does not find errors in the processes, it updates the low-level codes (IMLLX) in both the Item Master (F4101/LL CD column) and the Item Branch File (IBLLX- F4102).  Low-level codes are commonly referred to as LLX, IMLLX, IBLLX, or lower level codes.


Purpose of BOM Integrity Report

To assign correct low-level codes, run the Bill of Material Structure Analysis program (R30601) with the processing option that is set to consider items in projects. Run the BOM Integrity (R30601) regularly to check for recursive BOMs, missing item branch records and to set low level codes.  Correct any errors.


Troubleshooting Integrity Analysis Output and Errors (Doc ID 639397.1)

BOM Integrity Performance (Doc ID 625986.1)


How to run BOM Integrity Report

Set all low level codes (LLX) to 0.  The file must be backed up, and the R30601 must  be run after setting to zeros.  This process is necessary as the Low Level Codes for an item (LLX) may have become misaligned between the F4101 and F4102. This process is documented in Low Level Code LLX is Different Between Branch Plants (Doc ID 828438.1).


Output from BOM Integrity Report

If all LLXs are correctly set between branches, there is no output from this SQL script.  If the integrity of  LLX is questioned, SQL F4102.IBLLX to '0' and then re-run R30601 followed by the SQL script again.


MRP (R3482 or R3483) and LLX

Low level codes provide MRP direction when exploding parent demand down to component demand, across all branch plants. Items which are at top level (Level 0 at BOM) across branches are planned first and each level is planned sequentially. When low level codes are not set up correctly, MRP will not create proper pegging records (P3412) or generate Detailed Messages (P3411).


The Low Level Code LLX should never be different between various Branch Plants in the same instance of EnterpriseOne, for details see Low Level Code LLX is Different Between Branch Plants (Doc ID 828438.1).


Not having correct low level codes will prevent parallel processing from completing correctly, for details see Parallel Processing for MRP R3482/R3483 (Doc ID 626115.1).



Project is for ETO, specifically when using Project Requirements Planning (PRP). PRP uses the low-level code to identify the lowest level at which an item resides in a bill of material structure. The low-level code is assigned to an item when the item is added to a manufacturing BOM. An item can reside on a manufacturing BOM, the project work breakdown structure, or both. Because the work breakdown structure is similar to a BOM structure but is not a BOM, the system requires a way to assign an item's low-level code when you use it on a given project.


Parallel Processing and LLX

Without parallel processing, MRP reads each record in the F4102 and processes them one by one, according to data selection and low-level code.


With parallel processing, multiple items can be processed at the same time.  Items within the same low-level code(LLX) can be planned concurrently, since they do not depend on one another. The master UBE is called, which will in turn submit as many child UBEs as the number entered in the 'Number of Processors' processing option on the Parallel tab of R3482/R3483 minus one. The reason for 'minus one' is that the parent job counts as one of the jobs being Each UBE will submit an entry in the Job Control Status Master table (F986110).

When viewing submitted jobs, note the Parent + Child Subsystem UBEs.  Each of these UBEs will write to, process and delete records from the Subsystem Job Master table (F986113).