1.Functional Description
This function will take the F3002 pointer passed in for a parent/component item combination and
determine the quantity of the component needed to produce the parent item. The component quantity will
then be multiplied by the cost of the component item and that cost will be rolled up into the parent.
Component scrap will also be calculated and rolled up into the parent.
1.1Purpose
This function will take a BOM record retrieved in Business Function B3000670 and roll the component
cost into the cost of the parent item.
1.2Setup Notes and Prerequisites
This function is called from business function UpdateWhereUsed B3000670.C
1.3Special Logic
the structure for the two linked lists to be used in this business function.
Cost Rollup Linked List
COSTCost Type (i.e. A1,B1) (CT)
XSCRCost Amount (CA)
XSMCManufactured Cost
XSCRRolled Costs
2.Technical Specifications
2.4Processing
1. Use business function VerifyAndGetItemMaster for ITM. Get UOM1 for component item (F3002 ITM).
2. Calculate Component Quantity
Use Business function CalculateComponentQuantity call with
ITM from F3002pointer
CMCU from F3002pointer
QNTY from F3002pointer
UM from F3002pointer
UOM1 from step 1
FORQ from F3002pointer
BQTY from F3002pointer
DS CONV
STPP from F3002pointer
F_RP from F3002pointer
TRQT = '1'
you will get back QNTY
save QNTY into work field $$QNTY(9 decimals)
3. Calculate Percent of Scrap
IF SCRP from F3002pointer NE zeros
divide SCRP by 100 and multiply by $$QNTY put into work field $$SCRP(9decimals)
4. If DS Process Item != 'R' and DS ProcessCoByProducts = '1'
DS F3002Pointer KIT > DS Parent Item
DS F3002Pointer MMCU> DS Branch
DS AsOfDate> DS As of Date
'1'> DS Suppress Error Messages
WK Parent Cost Percent< DS Parent Cost Percent
move zeros to $$AMT(29 big, 9 decimals)
Do While nodes exist in the CostRollupLinkedList
move KIT to ITM
move MMCU to MMCU
move blanks to LOCN
move blanks to LOTN
move LEDG to LEDG
move Cost Type from CostRollupLinkedList to COST (you will walk through the linked list
with the counter)
4.a Fetch to F30026 with key set in step 4.
if(fetch was unsuccessful)
move '1' to PFLG
4.b Calculate cost
4.b.2 If DS ProcessCoByProducts = '1' and DS ProcessItem != 'R' and $$QTY != zeros, and WK
ParentCostPercent != 1.00
4.c Update simulated cost rollup amount for A1
add $$CC to F30026 XSCR
4.d Accumulate amount for scrap calculation A2
SCRP from F3002pointer if NE zeros
add XSCR (Cost Amount) from Cost RollupLinkedList to $$AMT
4.e Either Update or Create a new cost rollup record (F30026)
move KITA from F3002pointer to AITM of F30026
move KITL from F3002pointer to LITM of F30026
move MMCU from F3002pointer to MMCU of F30026
move blanks to LOCN of F30026
move blanks to LOTN of F30026
move DS LEDG to LEDG of F30026
if fetch in 4.a was successful then update F30026 table
if fetch in 4.a was unsuccessful then write F30026 table
******Process******
4.f. Update Cost Component records for CoByProducts
If CoByProductFound = '1'
DS CostMethod>DS CostMethod
WK IngredientCost>DS IngredientCost
CostType in COST (Step 4)>DS CostType
F3002BatchQuantity(BQTY)>DS ProcessBatchQty
UOM ConversionFactor>DS CONV
DS JOBS> DS JOBS
increment counter for do while
end(to step 4 do while )
5. If scrap, update/write scrap cost type record(A2)
if SCRP from F3002pointer NE zeros
5.a Get cost component record
move blanks to LOCN
move blanks to LOTN
move DS LEDG to LEDG
move A2 to COST
fetch F30026 record
if(fetch was unsuccessful)
move '1' to PFLG
end
5.b Calculate Percent of Scrap
5.b.2. If DS ProcessCoByProducts = '1', and DS ProcessItem = 'R', and $WK156 != 0, and WK
Parent Cost Percent != 1.00
5.b.4. Get $WK156 into 15.0 decimals and Add $WK156 to XSMC(F30026 table field)
5.c Either update or Create a new Cost Rollup Record (F30026)
move KITA from F3002pointer to AITM of F30026
move KITL from F3002pointer to LITM of F30026
move MMCU from F3002pointer to MMCU of F30026
move blanks to LOCN of F30026
move blanks to LOTN of F30026
move DS LEDG to LEDG of F30026
if fetch in 5.a was successful then update F30026 table
if fetch in 5.a was unsuccessful then write F30026 table
******Process******
5.d Update Cost Component Records for CoByProducts
If CoByProductFound = '1'
DS CostMethod> DS CostMethod
WK Scrap Cost> DS Ingredient Cost
F30026 COST(step 5.a) > DS Cost Type
F3002BatchQuantity(BQTY)> DSProcessBatchQty
DS CONV> DS UOMConversionFactor
DS JOBS> DS JOBS
end(to if in step 5)
^
D3000680 - Update Total Cost Information
Parameter Name | Data Item | Data Type | Req/Opt | I/O/Both |
---|---|---|---|---|
idParentChildCachePointer | GENLNG | ID | NONE | NONE |
General purpose ID variable. | ||||
mnUOMConvertionFactor | CONV | MATH_NUMERIC | NONE | NONE |
The factor that the system uses to convert one unit of measure to another unit of measure. | ||||
idCostRollupLinkedList | GENLNG | ID | NONE | NONE |
General purpose ID variable. | ||||
szCostMethod | LEDG | char | NONE | NONE |
A user defined code (40/CM) that specifies the basis for calculating item costs. Cost methods 01 through 19 are reserved for J.D. Edwards
| ||||
cSuppressErrorMessage | EV01 | char | NONE | NONE |
An option that specifies the type of processing for an event. | ||||
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
| ||||
cCoByProductFound | EV01 | char | NONE | NONE |
An option that specifies the type of processing for an event. | ||||
szProcessItem | SPHD | char | NONE | NONE |
A code that indicates special processing requirements for certain user defined code values. The value that you enter in this field is unique
| ||||
jdAsOfDate | ASDE1 | JDEDATE | NONE | NONE |
The date used for effectivity checking. Enter a specific date to display documents (orders, bills of material, routings, as applicable) that are
| ||||
cProcessCoByProducts | EV01 | char | NONE | NONE |
An option that specifies the type of processing for an event. | ||||
mnJobNumber | JOBS | MATH_NUMERIC | NONE | NONE |
The job number (work station ID) which executed the particular job. | ||||
mnAcctingCostQty | ACQ | MATH_NUMERIC | NONE | NONE |
An amount that the system uses in the Cost Rollup program to determine the allocation of setup costs. The system totals the setup costs
|
B3000580 Calculate Component Quantity | ||||
B3001470 Calculate Factor And Rate | ||||
B3001640 Costing Process Where Used | ||||
B3001670 Costing, Calculate Parent Cost Percent | ||||
B3003780 Cache Process Cost Parent And Child | ||||
B9800100 Get Audit Information |
F3002 Bill of Material Master File | ||||
F30026 Item Cost Component Add-Ons | ||||
F300261 Item Cost Component Detail |