1.Functional Description
This business function will generate the Component requirements using the Bill of Materials and the 
requirements for the Parent. Then it will write the requirements to the Pegging table F3412. This 
function is used to generate lower level Pegging records for MRP Planning.
1.1Purpose
This function is used to write Pegging records for Components based on the Bill of Materials in Multi 
Level Planning, based on the Parent Item Requirements. R3483(MultiPlant MRP) uses this function to 
perform the same function as in R3482.
1.2Setup Notes and Prerequisites
The Parent Item F4101 data and the F4102 data must be obtained before invoking the function.
The Unique Id for F3412 must be determined by calling the function (B3100490). 
1.3Special Logic
None
2.Technical Specifications
The following actions have to be performed by the Business Function.
1. Open Tables and Initialise Data
 Open F3002, F3412, F4101 and F4102 Tables
 If Error in Opening, Exit with an Error Code = '1'.
2. Check in Bill of Materials
 IXTBM = Input TBM. IXBQTY = Input UORG, IXMMCU=Input Parent Branch
 If IXTBM = ' '
 IXTBM = 'M'
 Endif.
 Read F3002 using Input KIT, MMCU, IXTBM and IXBQTY
 If not found
 IXBQTY = 0
 Read F3002 using Input KIT, MMCU, IXTBM and IXBQTY
 If not found
 IXTBM = 'M'. IXBQTY = Input UORG
 Read F3002 using Input KIT, MMCU, IXTBM, IXBQTY
 If not found
 IXBQTY = 0
 Read F3002 using Input KIT, MMCU, IXTBM, IXBQTY
 If not found
 Error Code = '2'
 Exit the Business function after Closing All Tables
 Endif
 Endif
 Endif
 Endif
3. Calculate Requested Date
 If Input DCTO = 'WO'
 Wk Req Date = Input Start Date
 Else
 If Input $$CONS = '1' then
 Read F3002 using Input KIT, IXMMCU, IXTBM and IXBQTY
 End If
 If SVMRPP = 'F'
 Wk Lead Time = SVLTLV
  Endif
 If SVMRPP = 'V'
 Wk Lead time = SVLTPU * Input UORG
 If Input SVRATE <> 0
 Wk Lead Time = Wk Lead Time/SVRATE
 Endif
 Wk Lead time = Wk Lead Time + SVSETL + SVQUED
 If Input Work Hours <> 0
 Wk Lead Time = Ceiling (Wk Lead Time/ Input Work Hours, 0)
 Endif
 If $SVSTK <> '0'
 Endif
 If SVSTKT = M and PO $$MSLT <> 0
 Wk Lead Time = Wk Lead Time + PO $$MSLT
 EndIf
 If Wk Lead Time = 0
 Wk Req Date = Input Start Date
 Else
 Call B3400540 to Back Schedule flag = 'B'/Wk Lead Time/Inp Start Date 
and Calculate Wk Req Date, and Input Date Branch
 Input F3411 UKID = B3400540 F3411 UKID
 Input Date Error Flag = B3400540 Date Error Flag
 Endif
 Endif
4. Calculate Qty with Shrinkage
 If SVSRKF = '%'
 Wk Qty with Shrink  = Input UORG * ( 1 + SVSRNK/100)
 Else
 Wk Qty with Shrink = Input UORG + SVSRNK
 Endif
 If SVSNS = 'R'
 Wk Qty with Shrink = Round(Wk Qty with Shrink)
 Endif
5. Get Unit of Measure Conversion Factor
 Wk Conv Factor = 1
 If IXUOM <> SVUOM1 or SVOT1Y = 'Y'
 Get Wk Conv Factor using B4000520 with IXUOM and Input SVUOM, Inp KIT and 
IXMMCU, SVOT1Y,
6. Process records in the Bill of Materials
 Do While Wk Exit flag <> '1'
 If Wk Req Date >= IXEFFF and Wk Req Date <= IXEFFT and  IXSBNT = 0 and IXQNTY <> 0
 If IXLOVD <> 0
 If IXLOVD < 0
 Back Schedule flag = 'B'
 Wk Lead time = -1 * IXLOVD
 Else
 Back Schedule flag = 'F'
 Wk Lead Time = IXLOVD
 Endif
 Ceiling (Wk Lead Time, 0)
and Calculate Wk Req Date as well as Input Date Branch
 Input Date Error Flag = B3400540 Date Error Flag
 If Input DCTO <> 'RS' and Input DRQJ < Wk Req Date
 Wk Req Date = Input DRQJ
 Endif
 Endif
 Read F4101 using  IXITM as key.
 Read F4102 using  IXITM and IXCMCU as key
 If not found
 Continue
 Endif
 Wk Conv Factor 1 = 1
 If  IXUM <> IMUOM1 or IBOT1Y = 'Y'
 Get Wk Conv Factor 1 using B4000520 with IXUM and IMUOM1, IXITM 
and IXCMCU, IBOT1Y,
 Wk Quantity = IXQNTY * Wk Conv Factor 1
 Wk Quantity = Wk Quantity * (IXFTRP/100) * (1 + (IXSTPP/100)) * (1 + 
(IXSCRP/100))
 If IXFORQ = '%'
 Wk Quantity = Wk Quantity/100
 Endif
 If IXFORQ <> '%'/ 'F' 
 Wk Quantity = Wk Quantity * Wk Qty with Shrink /Wk Conv Factor
 Endif
 If IMSNS = 'R'
 Wk Quantity = Round ( Wk Quantity)
 Endif
 If Wk Quantity > 0
 If Input $$PROC = '1' And Input $$CONS <> '1' And Input $$CONS 
<> '2'
 MWRORN = 'PROCESS'
 Endif
 Write F3412 with MWKIT(IXKIT), MWMMCU(IXMMCU), MWDRQJ(WkReq 
Date),MWUORG(Wk Quantity), MWITM( IXITM), MWMCU(IXCMCU), MWDOCO(Input 
DOCO),MWDCTO(Input DCTO), MWLOVD(IXLOVD), MWRORN and  MWUKID
 Input UKID = Input UKID + 1
 Endif
 Endif
 Read next F3002 record with Input KIT,MMCU,IXTBM and IXBQTY
 If not found
 Break
 Endif
 Enddo
7.Close Tables and Exit Routine
 Close all the Tables and Release Requests
^
D3400450 - MRP, Write Lower Level Pegging Records from BOM
| Parameter Name | Data Item | Data Type | Req/Opt | I/O/Both | 
|---|---|---|---|---|
| mnParentItemNumber | KIT | MATH_NUMERIC | NONE | NONE | 
The system provides for three separate item numbers.
   1.   Item Number (short) - An eight-digit, computer assigned, completely 
  | ||||
| szParentBranch | MMCU | char | NONE | NONE | 
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 
  | ||||
| szTypeOfBill | TBM | char | NONE | NONE | 
A user defined code (40/TB) that designates the type of bill of material. You can define different types of bills of material for different uses. 
  | ||||
| mnBatchQuantity | BQTY | MATH_NUMERIC | NONE | NONE | 
The quantity of finished units that you expect this bill of material or routing to produce. You can specify varying quantities of components 
  | ||||
| mnDocumentNo | DOCO | MATH_NUMERIC | NONE | NONE | 
A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
  | ||||
| szDocumentType | DCTO | char | NONE | NONE | 
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 
  | ||||
| jdStartDate | STRT | JDEDATE | NONE | NONE | 
The start date for the order. You can enter this date manually, or have the system calculate it using a backscheduling routine. The routine 
  | ||||
| jdRequestedDate | DRQJ | JDEDATE | NONE | NONE | 
The date that an item is scheduled to arrive or that an action is scheduled for completion.  | ||||
| mnOrderQuantityPrimary | UORG | MATH_NUMERIC | NONE | NONE | 
The quantity of units affected by this transaction.  | ||||
| szParentPrimaryUOM | UOM1 | char | NONE | NONE | 
A user defined code (00/UM) that identifies the unit of measure that the system uses to express the quantity of an item, for example, EA 
  | ||||
| cLeadTimeType | MRPP | char | NONE | NONE | 
A code that determines whether the system uses fixed or variable leadtimes.
This code works in conjunction with the value from either the 
  | ||||
| mnLeadTimeLevel | LTLV | MATH_NUMERIC | NONE | NONE | 
A value that represents the leadtime for an item at its assigned level in the production process, as defined on Plant Manufacturing Data. 
  | ||||
| mnLeadTimePerUnit | LTPU | MATH_NUMERIC | NONE | NONE | 
The total number of hours required to build one unit as specified on the routing. This value is factored by the time basis code.
You can enter 
  | ||||
| cParentStockingType | STKT | char | NONE | NONE | 
A user defined code (41/I) that indicates how you stock an item, for example, as finished goods or as raw materials. The following stocking 
  | ||||
| mnParentSetupLabor | SETL | MATH_NUMERIC | NONE | NONE | 
The standard setup hours that you expect to incur in the normal completion of this item. This value is not affected by crew size.  | ||||
| mnParentQueueTime | QUED | MATH_NUMERIC | NONE | NONE | 
The total hours that an order is expected to be in queue at work centers and moving between work centers.
The system stores this value in 
  | ||||
| mnParentTimeBasisRate | RATE | MATH_NUMERIC | NONE | NONE | 
A code used to define rate information in the General Rate/Message Records table (F00191).  | ||||
| cShrinkFactor | SRKF | char | NONE | NONE | 
A value that determines whether the shrink factor you enter for this item is a percentage or a fixed quantity. Valid values are:
   %   
  | ||||
| mnShrinkage | SRNK | MATH_NUMERIC | NONE | NONE | 
A fixed quantity or percentage that the system uses to determine inventory shrinkage for an item. The system increases the planned order 
  | ||||
| nMfgSafetyLeadTime | INT02 | integer | NONE | NONE | 
Number of Days in the Past to Query for Quote Requests Received.  | ||||
| nPurSafetyLeadTime | INT03 | integer | NONE | NONE | 
Event point for Integer.  | ||||
| cSuppressErrorMessage | EV02 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| cProcessFlag | EV01 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| mnUniqueID | UKID | MATH_NUMERIC | NONE | NONE | 
This field is a unique number used to identify a record in a file.  | ||||
| cErrorCode | ERRC | char | NONE | NONE | 
This error code indicates if any errors occurred during the creation of the Trip Document Detail (F4914) records by the Delivery Document 
  | ||||
| szErrorMessageID | DTAI | char | NONE | NONE | 
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 
  | ||||
| cStockNonStockFlag | SNS | char | NONE | NONE | 
A code that determines whether the system performs rounding for planning purposes. Valid values are:
   R Round either up or down to the 
  | ||||
| mnF3411UniqueID | UKID | MATH_NUMERIC | NONE | NONE | 
This field is a unique number used to identify a record in a file.  | ||||
| cDateErrorFlag | EV01 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| szDateErrorMsgDesc | DSC1 | char | NONE | NONE | 
Brief information about an item; a remark or an explanation.  | ||||
| szProgramID | PID | char | NONE | NONE | 
The number that identifies the batch or interactive program (batch or interactive object). For example, the number of the Sales Order Entry 
  | ||||
| mnWorkHours | WRHR | MATH_NUMERIC | NONE | NONE | 
The number of work hours that the manufacturing plant operates per day.  | ||||
| szStandardUOMConversion | TFLA | char | NONE | NONE | 
Allows you to bypass the item-specific unit of measure and use the standard unit of measure. Valid values are:
   blank Use the item-specific 
  | ||||
| mnStandardPotency | STDP | MATH_NUMERIC | NONE | NONE | 
The percentage of active ingredients normally found in an item.  | ||||
| cPotencyControl | OT1Y | char | NONE | NONE | 
A code that indicates whether you control the item by potency.  | ||||
| cActualStockingType | STKT | char | NONE | NONE | 
A user defined code (41/I) that indicates how you stock an item, for example, as finished goods or as raw materials. The following stocking 
  | ||||
| cConsolidationMethod | EV01 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| szDateBranch | MCU | char | NONE | NONE | 
An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
  | ||||
| szJobNumber | JOB | char | NONE | NONE | 
Job Number  | ||||
| mnUniqueKeyIDOffset | MATH01 | MATH_NUMERIC | OPT | NONE | 
- - - Good Performance Low Value.  | ||||
| B3400540 MRP, Calculate Schedule Dates for Planning | ||||
| B3401530 Cache, Process MRP Bill of Material | ||||
| B4000520 Get Item UoM Conversion Factor | 
| F3002 Bill of Material Master File | ||||
| F3412 MPS/MRP/DRP Lower Level Requirements File | ||||
| F4101 Item Master | ||||
| F4102 Item Branch File |