DBA Data[Home] [Help]

PACKAGE: APPS.BOM_VALIDATE_BOM_COMPONENT

Source


1 PACKAGE BOM_Validate_Bom_Component AS
2 /* $Header: BOMLCMPS.pls 120.2 2006/02/15 11:42:05 seradhak ship $ */
3 /*#
4  * This API contains Attribute and Entity level validation for the Bill of Materials Component Records.
5  * This contains procedures for
6  *	 Checking the existence of the component record in case of create,update or delete.
7  *       Checking the acces rights of the user to the Assembly Item's BOM Item Type.
8  *	 Checking the validity of all Component Attributes
9  * 	 Checking the required fields in the BOM Component Record.
10  * 	 Checking the Business Logic validation for the BOM Component Entity.
11  *  	 Checking the Delete Constraints for BOM Component.
12  * @rep:scope private
13  * @rep:product BOM
14  * @rep:lifecycle active
15  * @rep:displayname Validate Component
16  * @rep:compatibility S
17  */
18 
19 /*************************************************************************
20 --
21 --  Copyright (c) 1996 Oracle Corporation, Redwood Shores, CA, USA
22 --  All rights reserved.
23 --
24 --  FILENAME
25 --
26 --      BOMLCMPS.pls
27 --
28 --  DESCRIPTION
29 --
30 --      Spec of package BOM_Validate_Bom_Component
31 --
32 --  NOTES
33 --
34 --  HISTORY
35 --
36 --  11-JUN-99 Rahul Chitko	Initial Creation
37 --
38 **************************************************************************/
39 
40 --  Procedure Entity
41 
42 	/*#
43 	 * This is where the whole record is checked. The following are checked
44 	 *	Non-updatable columns (UPDATEs): Certain columns must not be changed by the user when updating the record
45 	 *	Cross-attribute checking: The validity of attributes may be checked, based on factors external to it
46 	 *	Business logic: The record must comply with business logic rules.
47 	 * It raises
48 	 *	1 Severe Error IV for Create transaction type.
49 	 *	2 Standard Error for Update transaction type.
50 	 * @param x_return_status IN OUT NOCOPY Return Status
51 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
52 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
53 	 * @param p_bom_component_rec IN BOM component Exposed Column Record
54 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
55 	 * @param p_bom_Comp_Unexp_Rec IN BOM Component Unexposed Column Record
56 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
57 	 * @param p_old_bom_Component_Rec IN BOM Component Old Record Exposed Column Record
58 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
59 	 * @param p_old_bom_Comp_Unexp_Rec IN BOM Component Old Record Unexposed Column Record
60 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
61 	 * @rep:scope private
62 	 * @rep:displayname Check Component Entity
63 	 * @rep:compatibility S
64 	 * @rep:lifecycle active
65 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
66  	 */
67 
68 PROCEDURE Check_Entity
69 ( x_return_status		IN OUT NOCOPY VARCHAR2
70 , x_Mesg_Token_Tbl		IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
71 , p_bom_component_rec		IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
72 , p_bom_Comp_Unexp_Rec		IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
73 , p_old_bom_Component_Rec	IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
74 , p_old_bom_Comp_Unexp_Rec	IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
75 );
76 
77 
78 /*#
79 * This procedure will actually check if any component type rule exists
80 * between the two item types of the item which are to be associated.
81 * If such any component type  rule exists then the procedure checks
82 * if these items can be associated according to the rule.If not the
83 * procedure returns the error staus and error message.If the items
84 * can be associated then it returns success.
85 * @param x_return_status IN OUT NOCOPY Return Status
86 * @param x_error_message OUT  VARCHAR2 Error message
87 * @param p_init_msg_list IN BOOLEAN := TRUE Flag to initialize
88 *                                     error handler
89 * @param p_parent_item_id IN NUMBER parent_item_id
90 * @param p_child_item_id  IN NUMBER child_item_id is component_item_id
91 * @param p_organization_id IN NUMBER
92 * @rep:displayname Check Component Type Rules
93 * @rep:compatibility S
94 * @rep:lifecycle active
95 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
96 */
97 
98 PROCEDURE Check_Component_Type_Rule
99 (
100   x_return_status    IN OUT NOCOPY VARCHAR2
101 , x_error_message    IN OUT NOCOPY /* file.sql.39 change */  VARCHAR2
102 , p_init_msg_list    IN BOOLEAN := TRUE
103 , p_parent_item_id   IN NUMBER
104 , p_child_item_id    IN NUMBER
105 , p_organization_id  IN NUMBER
106 );
107 
108 --  Procedure Attributes
109 	/*#
110 	 * This method checks for each of the attribute/field individually for validity.
111 	 * Examples of these checks are: range checks, checks against lookups etc.It checks
112 	 * whether user-entered attributes are valid and it also checks each attribute independently of the others
113 	 * It raises
114 	 *	1 Severe Error IV in case of Create transaction type
115 	 *	2 Standard Error in case of other transaction types.
116 	 * @param x_return_status IN OUT NOCOPY Return Status
117 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
118 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
119 	 * @param p_bom_component_Rec IN BOM Component Exposed Column Record
120 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
121 	 * @param p_bom_Comp_Unexp_Rec IN BOM Component Unexposed Column Record
122 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
123 	 * @rep:scope private
124 	 * @rep:displayname Check Component Attributes
125 	 * @rep:compatibility S
126 	 * @rep:lifecycle active
127 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
128  	 */
129 
130 PROCEDURE Check_Attributes
131 ( x_return_status		IN OUT NOCOPY VARCHAR2
132 , x_Mesg_Token_Tbl		IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
133 , p_bom_component_rec		IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
134 , p_bom_Comp_Unexp_Rec		IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
135 );
136 
137 --  Procedure Entity_Delete
138 
139 	/*#
140 	 * This method checks for the validity of the delete group entity in the BOM Component Record
141 	 * This checks whether the delete group is valid,whether it is a duplicate delete group and also
142 	 * whether the delete group is a newly created one.This procedure will be called before submitting
143 	 * entities in a delete group for deletion.
144 	 * @param x_return_status IN OUT NOCOPY Return Status
145 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
146 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
147 	 * @param p_bom_component_rec IN BOM Component Exposed Column Record
148 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
149 	 * @param p_bom_Comp_Unexp_Rec IN BOM Component Unexposed Column Record
150 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
151 	 * @rep:scope private
152 	 * @rep:displayname Check Component Delete Entity
153 	 * @rep:compatibility S
154 	 * @rep:lifecycle active
155 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
156  	 */
157 
158 PROCEDURE Check_Entity_Delete
159 ( x_return_status		IN OUT NOCOPY VARCHAR2
160 , x_Mesg_Token_Tbl		IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
161 , p_bom_component_rec		IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
162 , p_bom_Comp_Unexp_Rec		IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
163 );
164 
165 
166 	/*#
167 	 * This method does the required fields checking for the BOM Component Record.
168 	 * Some fields are required for an operation to be performed. Without them,
169 	 * the operation cannot go through. The user must enter values for these fields.
170 	 * This method checks whether the required field columns are NULL or not.It raises
171 	 *    1 Severe Error IV for create transaction type
172 	 *    2 Standard Error for other transaction types.
173 	 * @param x_return_status IN OUT NOCOPY Return Status
174 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
175 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
176 	 * @param p_bom_component_rec IN BOM Component Exposed Column Record
177 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Head_Rec_Type}
178 	 * @rep:scope private
179 	 * @rep:displayname Check Component Required Fields
180 	 * @rep:compatibility S
181 	 * @rep:lifecycle active
182 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
183  	 */
184 PROCEDURE Check_Required
185 ( x_return_status		IN OUT NOCOPY VARCHAR2
186 , x_Mesg_Token_Tbl              IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
187 , p_bom_component_rec           IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
188 );
189 	/*#
190 	 * This method checks for the existence of the component record based on the transaction type.
191 	 * The record being updated or deleted in the database must already exist.
192 	 * But a record being created must not. Such an error must cause all children
193 	 * to error out, since they are referencing an invalid parent.This raises a Severe Error III.
194 	 * It also queries up the database record into the corresponding Old Record.
195 	 * @param p_bom_component_rec IN BOM Component Exposed Column Record
196 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
197 	 * @param p_bom_comp_unexp_rec IN BOM Component Unexposed Column Record
198 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
199 	 * @param x_old_bom_component_rec IN OUT NOCOPY queried BOM Components Old Record Exposed Column Record.
200 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
201 	 * @param x_old_bom_comp_unexp_rec IN OUT NOCOPY queried BOM Components Old Record Unexposed Column Record.
202 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
203  	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY Message Token Table
204 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
205 	 * @param x_return_status IN OUT NOCOPY Return Status
206 	 * @rep:scope private
207 	 * @rep:displayname Check Component Existence
208 	 * @rep:compatibility S
209 	 * @rep:lifecycle active
210 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
211  	 */
212 PROCEDURE Check_Existence
213 (  p_bom_component_rec		IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
214  , p_bom_comp_unexp_rec		IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
215  , x_old_bom_component_rec	IN OUT NOCOPY Bom_Bo_Pub.Bom_Comps_Rec_Type
216  , x_old_bom_comp_unexp_rec	IN OUT NOCOPY Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
217  , x_Mesg_Token_Tbl		IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
218  , x_return_status		IN OUT NOCOPY VARCHAR2
219 );
220 
221 	/*#
222 	 * This method checks whether the linkage of records is correct in the business object.
223 	 * That is, child records must reference valid parents. A valid parent is one that exists
224 	 * and is truly the current record's parent in the database.Based on the transaction type
225 	 * it performs
226 	 *	1 Create:No check required. (Check to see if parent assembly item exists in bill of
227 	 *	  materials production table has already been performed)
228 	 * 	2 Update/Delete: Production table component must reference the same parent item that the business
229 	 *	  object component does. Compare parent assembly item unique key in current component
230 	 *	  record against assembly item unique key in assembly item record that has already been queried up
231 	 * It raises Severe Error III.
232 	 * @param  p_bom_component_rec IN BOM Component Exposed Column Record
233 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
234 	 * @param p_bom_comp_unexp_rec IN BOM Component Unexposed Column Record
235 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
236 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY Message Token Table
237 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
238 	 * @param x_Return_Status IN OUT NOCOPY Return Status
239 	 * @rep:scope private
240 	 * @rep:displayname Check Component Lineage
241 	 * @rep:compatibility S
242 	 * @rep:lifecycle active
243 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
244  	 */
245 PROCEDURE Check_Lineage
246 (  p_bom_component_rec          IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
247  , p_bom_comp_unexp_rec         IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
248  , x_Mesg_Token_Tbl             IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
249  , x_Return_Status              IN OUT NOCOPY VARCHAR2
250 );
251 	/*#
252 	 * This method checks for the access rights of the user.An assembly item and any of its
253 	 * components cannot be operated upon if the user does not have access to the assembly item type.
254 	 * The user should have proper access to
255 	 * the Assembly Item's BOM Item Type and also to component's BOM_Item_Type.
256 	 * It looks up STD_Item_Access or MDL_Item_Access or PLN_Item_Access
257 	 * in the System_Information record, depending on item's BOM Item Type
258 	 * It also checks whether BOM_Item_Type is not Product Family.If the check fails either
259 	 * Fatal Error III or Fatal Error II is raised depending on  the affected entity.
260 	 * @param p_organization_id IN Organiation Id for the item
261 	 * @param p_component_item_id IN Component Item Id
262 	 * @param p_component_name IN Component Item Name
263 	 * @param p_Mesg_Token_Tbl IN Message Token Table
264 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
265 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table
266 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
267 	 * @param x_Return_Status IN OUT NOCOPY Return Status
268 	 * @rep:scope private
269 	 * @rep:displayname Check Component Access
270 	 * @rep:compatibility S
271 	 * @rep:lifecycle active
272 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
273  	 */
274 PROCEDURE Check_Access
275 (  p_organization_id            IN  NUMBER
276  , p_component_item_id          IN  NUMBER
277  , p_component_name             IN  VARCHAR2
278  , p_Mesg_Token_Tbl             IN  Error_Handler.Mesg_Token_Tbl_Type :=
279                                     Error_Handler.G_MISS_MESG_TOKEN_TBL
280  , x_Mesg_Token_Tbl             IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
281  , x_Return_Status              IN OUT NOCOPY VARCHAR2
282 );
283 
284 	/*#
285 	 * This method checks the number of componets under a bill.
286  	 * The total number of components under a bill  should not exceed 9999.
287 	 * When the limit is exceeded it raises proper error messages.
288 	 * @param p_bom_component_rec IN BOM Component Exposed Column Record
289 	 * @paraminfo {@rep:innertype  Bom_Bo_Pub.Bom_Comps_Rec_Type}
290 	 * @param  p_bom_comp_unexp_rec IN BOM Component Unexposed Column Record
291 	 * @paraminfo {@rep:innertype  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
292 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table
293 	 * @paramInfo {@rep:innertpye Error_Handler.Mesg_Token_Tbl_Type}
294 	 * @param x_Return_Status IN OUT NOCOPY Return Status
295 	 * @rep:scope private
296 	 * @rep:displayname Check Component Count
297 	 * @rep:compatibility S
298 	 * @rep:lifecycle active
299 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
300  	 */
301 PROCEDURE Check_ComponentCount
302 (  p_bom_component_rec         IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
303    , p_bom_comp_unexp_rec      IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
304    , x_Mesg_Token_Tbl          IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
305    , x_Return_Status           IN OUT NOCOPY VARCHAR2
306 );
307 
308 /*
309 ** Procedures used by ECO BO and internally called by BOM BO
310 */
311 
312 	/*#
313 	 * This method is used by ECO Business Object while keeping track of the revisions and
314 	 * this is where the whole record is checked. The following are checked
315 	 *	Cross-attribute checking: The validity of attributes may be checked, based on factors external to it
316 	 *	Business logic: The record must comply with business logic rules.
317 	 * It raises Standard Error.
318 	 * @param x_return_status IN OUT NOCOPY Return Status
319 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
320 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
321 	 * @param p_rev_component_rec IN  Revision Component Exposed Column Record
322 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
323 	 * @param p_Rev_Comp_Unexp_Rec IN Revision Component Unexposed Column Record
324 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
325 	 * @param p_Old_Rev_Component_Rec IN Revision Component Old Record Exposed Column Record
326 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
327 	 * @param p_Old_Rev_Comp_Unexp_Rec IN Revision Component Old Record Unexposed Column Record
328 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
329 	 * @param p_control_rec IN Revision Control Record
330 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Control_Rec_Type}
331 	 * @rep:scope private
332 	 * @rep:displayname Check Revision Component Entity
333 	 * @rep:compatibility S
334 	 * @rep:lifecycle active
335 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
336  	 */
337 PROCEDURE Check_Entity
338 ( x_return_status         IN OUT NOCOPY  VARCHAR2
339 , x_Mesg_Token_Tbl        IN OUT NOCOPY  Error_Handler.Mesg_Token_Tbl_Type
340 , p_rev_component_rec      IN  Bom_Bo_Pub.Rev_Component_Rec_Type
341 , p_Rev_Comp_Unexp_Rec     IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
342 , p_control_rec            IN  BOM_BO_PUB.Control_Rec_Type
343 			:= BOM_BO_PUB.G_DEFAULT_CONTROL_REC
344 , p_Old_Rev_Component_Rec  IN  Bom_Bo_Pub.Rev_Component_Rec_Type
345 , p_Old_Rev_Comp_Unexp_Rec IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
346 );
347 
348 	/*#
349 	 * This method is used by ECO Business Object while keeping track of the revisions and
350 	 * checks for Each of the attribute/field individually for validity.
351 	 * Examples of these checks are: range checks, checks against lookups etc.It checks
352 	 * whether user-entered attributes are valid and it checks each attribute independently of the others
353 	 * It raises
354 	 *	1 Severe Error IV in case of Create transaction type
355 	 *	2 Standard Error in case of other transaction types.
356 	 * @param x_return_status IN OUT NOCOPY Return Status
357 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
358 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
359 	 * @param p_rev_component_Rec IN Revision Component Exposed Column Record
360 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
361 	 * @param p_Rev_Comp_Unexp_Rec IN Revision Component Unexposed Column Record
362 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
363 	 * @rep:scope private
364 	 * @rep:displayname Check Revision Component Attributes
365 	 * @rep:compatibility S
366 	 * @rep:lifecycle active
367 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
368  	 */
369 
370 PROCEDURE Check_Attributes
371 ( x_return_status               IN OUT NOCOPY VARCHAR2
372 , x_Mesg_Token_Tbl              IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
373 , p_rev_component_rec           IN  Bom_Bo_Pub.Rev_Component_Rec_Type
374 , p_Rev_Comp_Unexp_Rec          IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
375 );
376 
377 	/*#
378 	 * This method is used by ECO Business Object while keeping track of the revisions and
379 	 * checks for the validity of the delete group entity in the BOM Revision Component Record
380 	 * This checks whether the delete group is valid,whether it is a duplicate delete group and also
381 	 * whether the delete group is a newly created one.This procedure will be called before submitting
382 	 * entities in a delete group for deletion.
383 	 * @param x_return_status IN OUT NOCOPY Return Status
384 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
385 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
386 	 * @param p_rev_component_rec IN Revision Component Exposed Column Record
387 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
388 	 * @param p_Rev_Comp_Unexp_Rec IN Revision Component Unexposed Column Record
389 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
390 	 * @rep:scope private
391 	 * @rep:displayname Check Revision Component Delete Entity
392 	 * @rep:compatibility S
393 	 * @rep:lifecycle active
394 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
395  	 */
399 , x_Mesg_Token_Tbl              IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
396 
397 PROCEDURE Check_Entity_Delete
398 ( x_return_status               IN OUT NOCOPY VARCHAR2
400 , p_rev_component_rec           IN  Bom_Bo_Pub.Rev_Component_Rec_Type
401 , p_Rev_Comp_Unexp_Rec          IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
402 );
403 
404 	/*#
405 	 * This method is used by ECO Business Object while keeping track of the revisions and
406 	 * does the required fields checking for the Revision Component Record.
407 	 * Some fields are required for an operation to be performed. Without them,
408 	 * the operation cannot go through. The user must enter values for these fields.
409 	 * This procedure checks whether the required field columns are not NULL.It raises
410 	 *    1 Severe Error IV for create transaction type
411 	 *    2 Standard Error for other transaction types.
412 	 * @param x_return_status IN OUT NOCOPY Return Status
413 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table with proper error or warning messages
414 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
415 	 * @param p_rev_component_rec IN Revision Component Exposed Column Record
416 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
417 	 * @rep:scope private
418 	 * @rep:displayname Check Revision Component Required Fields
419 	 * @rep:compatibility S
420 	 * @rep:lifecycle active
421 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
422  	 */
423 
424 PROCEDURE Check_Required
425 ( x_return_status               IN OUT NOCOPY VARCHAR2
426 , x_Mesg_Token_Tbl              IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
427 , p_rev_component_rec           IN  Bom_Bo_Pub.Rev_Component_Rec_Type
428 );
429 
430 	/*#
431 	 * This procedure is used by ECO Business Object while keeping track of the revisions and
432 	 * checks for the existence of the revision record based on the transaction type.
433 	 * The record being updated or deleted in the database must already exist.
434 	 * But a record being created must not. Such an error in a record must cause all children
435 	 * to error out, since they are referencing an invalid parent.This raises a Severe Error III.
436 	 * It also queries up the database record into the corresponding Old Record.
437 	 * @param p_rev_component_rec IN Revision Component Exposed Column Record
438 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
439 	 * @param p_rev_comp_unexp_rec IN Revision Component Unexposed Column Record
440 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
441 	 * @param x_old_rev_component_rec IN OUT NOCOPY queried Revision Components Old Record Exposed Column Record.
442 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
443 	 * @param x_old_rev_comp_unexp_rec IN OUT NOCOPY queried Revision Components Old Record Unexposed Column Record.
444 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
445  	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY Message Token Table
446 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
447 	 * @param x_return_status IN OUT NOCOPY Return Status
448 	 * @rep:scope private
449 	 * @rep:displayname Check Revision Component Existence
450 	 * @rep:compatibility S
451 	 * @rep:lifecycle active
452 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
453  	 */
454 
455 PROCEDURE Check_Existence
456 (  p_rev_component_rec          IN  Bom_Bo_Pub.Rev_Component_Rec_Type
457  , p_rev_comp_unexp_rec         IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
458  , x_old_rev_component_rec      IN OUT NOCOPY Bom_Bo_Pub.Rev_Component_Rec_Type
459  , x_old_rev_comp_unexp_rec     IN OUT NOCOPY Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
460  , x_Mesg_Token_Tbl             IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
461  , x_return_status              IN OUT NOCOPY VARCHAR2
462 );
463 
464 	/*#
465 	 * This method is used by ECO Business Object while keeping track of the revisions and
466 	 * checks whether the linkage of records is correct in the business object.
467 	 * That is, child records must reference valid parents. A valid parent is one that exists
468 	 * and is truly the current record's parent in the database.Based on the transaction type
469 	 * it performs
470 	 *	1 Create:No check required. (Check to see if parent assembly item exists in bill of
471 	 *	  materials production table has already been performed)
472 	 * 	2 Update/Delete: Production table component must reference the same parent item that the business
473 	 *	  object component does. Compare parent assembly item unique key in current component
474 	 *	  record against assembly item unique key in assembly item record that has already been queried up
475 	 * It raises Severe Error III.
476 	 * @param  p_rev_component_rec IN Revision Component Exposed Column Record
477 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Component_Rec_Type}
478 	 * @param p_rev_comp_unexp_rec IN Revision Component Unexposed Column Record
479 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type}
480 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY Message Token Table
481 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
482 	 * @param x_Return_Status IN OUT NOCOPY Return Status
483 	 * @rep:scope private
484 	 * @rep:displayname Check Revision Component Lineage
485 	 * @rep:compatibility S
486 	 * @rep:lifecycle active
487 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
488  	 */
489 PROCEDURE Check_Lineage
490 (  p_rev_component_rec          IN  Bom_Bo_Pub.Rev_Component_Rec_Type
491  , p_rev_comp_unexp_rec         IN  Bom_Bo_Pub.Rev_Comp_Unexposed_Rec_Type
492  , x_Mesg_Token_Tbl             IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
493  , x_Return_Status              IN OUT NOCOPY VARCHAR2
494 );
495 
496 	/*#
497 	 * This method is used by ECO Business Object while keeping track of the revisions and
498 	 * checks for the access rights of the user.An assembly item revision and any of its
499 	 * component revision  cannot be operated upon if the user does not have access to the assembly item type.
500 	 * The user should have proper access to
501 	 * the Assembly Item's BOM Item Type.It Compare assembly item BOM_Item_Type against the
502 	 * assembly item access fields in the System_Information record.If the check fails either
503 	 * Fatal Error III or Fatal Error II is raised depending on  the affected entity.
504 	 * @param p_revised_item_name IN Revised Item Name
505 	 * @param p_revised_item_id IN Revised Item Id
506 	 * @param p_organization_id IN Organization Id
507 	 * @param p_change_notice IN Change Notice
508 	 * @param p_new_item_revision IN New Item Revision
509 	 * @param p_effectivity_date IN Component Effectvity Date
510 	 * @param p_new_routing_revsion IN New Routing Revision
511 	 * @param p_from_end_item_number End Item Number from which it is revised
512 	 * @param p_component_item_id IN Component Item Id
513 	 * @param p_operation_seq_num IN Operation Sequence Id for Routing
514 	 * @param p_bill_sequence_id IN Bill Sequence Id
515 	 * @param p_component_name IN Component Name
516 	 * @param p_Mesg_Token_Tbl IN Message Token Table
517 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
521 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
518 	 * @param p_entity_processed IN Processed Entity
519 	 * @param p_rfd_sbc_name IN
520 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY output Message Token Table
522 	 * @param x_Return_Status IN OUT NOCOPY Return Status
523 	 * @rep:scope private
524 	 * @rep:displayname Check Revised Component  Access
525 	 * @rep:compatibility S
526 	 * @rep:lifecycle active
527 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
528  	 */
529 
530 PROCEDURE Check_Access
531 (  p_revised_item_name          IN  VARCHAR2
532  , p_revised_item_id            IN  NUMBER
533  , p_organization_id            IN  NUMBER
534  , p_change_notice              IN  VARCHAR2
535  , p_new_item_revision          IN  VARCHAR2
536  , p_effectivity_date           IN  DATE
537  , p_new_routing_revsion        IN  VARCHAR2 := NULL -- Added by MK on 11/02/00
538  , p_from_end_item_number       IN  VARCHAR2 := NULL -- Added by MK on 11/02/00
539  , p_component_item_id          IN  NUMBER
540  , p_operation_seq_num          IN  NUMBER
541  , p_bill_sequence_id           IN  NUMBER
542  , p_component_name             IN  VARCHAR2
543  , p_Mesg_Token_Tbl             IN  Error_Handler.Mesg_Token_Tbl_Type :=
544                                     Error_Handler.G_MISS_MESG_TOKEN_TBL
545  , p_entity_processed           IN  VARCHAR2 := 'RC'
546  , p_rfd_sbc_name               IN  VARCHAR2 := NULL
547  , x_Mesg_Token_Tbl             IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
548  , x_Return_Status              IN OUT NOCOPY VARCHAR2
549 );
550 
551 	/*#
552 	 * This method will check if a component record is a direct item component its for EAM BOMs only.
553 	 * It will also verify that the component has correct values for direct item specific
554 	 * attributes.For normal item components these attributes should be ignored.
555 	 * @param p_bom_component_rec IN BOM Component Exposed Column Record
556 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
557 	 * @param p_bom_comp_unexp_rec IN BOM Component Unexposed Column Record
558 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type}
559 	 * @param x_bom_component_rec IN OUT NOCOPY processed BOM Component Exposed Column Record
560 	 * @paraminfo {@rep:innertype Bom_Bo_Pub.Bom_Comps_Rec_Type}
561 	 * @param x_Mesg_Token_Tbl IN OUT NOCOPY Message Token Table
562 	 * @paraminfo {@rep:innertype Error_Handler.Mesg_Token_Tbl_Type}
563 	 * @param x_Return_Status IN OUT NOCOPY Return Status
564 	 * @rep:scope private
565 	 * @rep:compatibility S
566 	 * @rep:lifecycle active
567 	 * @rep:displayname Check Direct Components
568 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
569 	 */
570 
571 PROCEDURE Check_Direct_item_comps
572 (    p_bom_component_rec       IN  Bom_Bo_Pub.Bom_Comps_Rec_Type
573    , p_bom_comp_unexp_rec      IN  Bom_Bo_Pub.Bom_Comps_Unexposed_Rec_Type
574    , x_bom_component_rec       IN OUT NOCOPY Bom_Bo_Pub.Bom_Comps_Rec_Type
575    , x_Mesg_Token_Tbl          IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
576    , x_Return_Status           IN OUT NOCOPY VARCHAR2
577 );
578 
579 	/*#
580 	 * This method sets the global attribute flags.This is called only by
581 	 * ECO Form.The Open Interfaces will perform this step in the entity validation
582 	 * procedure
583 	 * @param p_RI_bom_item_type IN Revised Item BOM Item Type
584 	 * @param  p_RC_bom_item_type IN Revised COmponent BOM Item Type
585 	 * @param p_RC_replenish_to_order_flag IN Revsed Component Replenish to Order Flag
586 	 * @param p_RI_replenish_to_order_flag IN Revsed Item  Replenish to Order Flag
587 	 * @param p_RC_base_item_id Revised IN Component Base Item Id
588 	 * @param p_RC_pick_components_flag IN Revised Component Pick To Order Flag
589 	 * @param p_RI_pick_components_flag IN Revised Item Pick To Order Flag
590 	 * @param p_RC_ato_forecast_control IN
591 	 * @param p_RI_base_item_id IN Revised Item Base Item Id
592 	 * @param p_RC_eng_item_flag IN Revised Component Engineering Item Flag
593 	 * @param p_RI_eng_item_flag IN Revised Item  Engineering Item Flag
594 	 * @param p_RC_atp_components_flag IN Revised Component ATP componetns flag
595 	 * @param p_RI_atp_components_flag IN Revised Item  ATP componetns flag
596 	 * @param  p_RC_atp_flag IN Revised Component ATP flag
597 	 * @param p_RC_wip_supply_type IN Revised Component WIP Supply Type
598  	 * @param p_RI_wip_supply_type IN Revised Item WIP Supply Type
599 	 * @param p_RI_bom_enabled_flag IN Revised Item Bom Enabled Flag
600 	 * @param  p_RC_bom_enabled_flag IN Revised Component Bom Enabled Flag
601 	 * @rep:scope private
602 	 * @rep:lifecycle active
603 	 * @rep:compatibility S
604  	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
605 	 * @rep:displayname Set Item Attribute
606 	 */
607 PROCEDURE Set_Item_Attributes
608 ( p_RI_bom_item_type            NUMBER
609 , p_RC_bom_item_type            NUMBER
610 , p_RC_replenish_to_order_flag  CHAR
611 , p_RI_replenish_to_order_flag  CHAR
612 , p_RC_pick_components_flag     CHAR
613 , p_RI_pick_components_flag     CHAR
614 , p_RC_base_item_id             NUMBER
615 , p_RC_ato_forecast_control     NUMBER
616 , p_RI_base_item_id             NUMBER
617 , p_RC_eng_item_flag            CHAR
618 , p_RI_eng_item_flag            CHAR
619 , p_RC_atp_components_flag      CHAR
620 , p_RI_atp_components_flag      CHAR
621 , p_RC_atp_flag                 CHAR
622 , p_RI_wip_supply_type          NUMBER
623 , p_RC_wip_supply_type          NUMBER
624 , p_RI_bom_enabled_flag         CHAR
625 , p_RC_bom_enabled_flag         CHAR
626 );
627 
628 	/*#
629 	 * This method will create Component Record from the attributes given and will
630 	 * perform Check_Access for both parent and component item.It will also
631 	 * perform Attribute Validation and Entity Validation for the component
632 	 * record.
633 	 * @param p_bo_identifier IN Business Object Identifier
637 	 * @param p_organization_code IN Organization Code
634 	 * @param p_transaction_type IN Transaction Type
635 	 * @param p_revised_item_id IN Revised Item Id
636 	 * @param p_organization_id IN Organization Id
638 	 * @param p_alternate_bom_code IN BOM Alternate Designator
639 	 * @param p_bill_sequence_id IN Bill Sequence Id
640 	 * @param p_bom_implementation_date IN Implementation Date
641 	 * @param p_component_sequence_id IN Component Sequence ID
642 	 * @param p_item_sequence_number IN Item Sequence Number
643 	 * @param p_operation_sequence_number IN Operation Sequence Number
644 	 * @param p_new_operation_sequence_num IN New Operation Sequence Number
645 	 * @param p_component_item_id IN Component Item Id
646 	 * @param p_from_end_item_unit_number IN From End Item Unit Number
647 	 * @param p_to_end_item_unit_number IN To End Item Unit Number
648 	 * @param p_new_from_end_item_unit_num IN New From End Item Unit Number
649 	 * @param p_start_effective_date IN Effectivity Start Date
650 	 * @param p_new_effectivity_date IN New Effectivity Date
651 	 * @param p_disable_date IN Disable Date
652 	 * @param p_quantity_per_assembly IN Quantity Per Assembly
653 	 * @param p_projected_yield IN Projected Yield
654 	 * @param p_planning_percent IN Planning Percent
655 	 * @param p_quantity_related IN Quantity Related
656 	 * @param p_include_in_cost_rollup IN Include In Cost Rollup
657 	 * @param p_check_atp In Check ATP
658 	 * @param p_acd_type IN ACD Type
659 	 * @param p_auto_request_material IN Auto Request Material
660 	 * @param p_wip_supply_type IN WIP Supply Type
661 	 * @param p_Supply_SubInventory IN Supply Subinventory
662 	 * @param p_supply_locator_id IN Supply Locator Id
663 	 * @param p_location_name IN Location Name
664 	 * @param  p_SO_Basis IN SO Basis
665 	 * @param p_Optional IN Optional
666 	 * @param  p_mutually_exclusive IN Mutually Exclusive
667 	 * @param p_shipping_allowed IN Shipping Allowed
668 	 * @param p_required_to_ship IN Required TO Ship
669 	 * @param p_required_for_revenue IN Required For Revenue
670 	 * @param p_include_on_ship_docs IN Include On Ship Docs
671 	 * @param p_enforce_int_reqs_code IN Enforce Int Reqs Code
672 	 * @param p_revised_item_name  IN revised Item Name
673 	 * @param p_component_item_name IN Component Item Name
674 	 * @param p_minimum_allowed_quantity IN Minimum Allowed Quantity
675 	 * @param p_maximum_allowed_quantity IN Maximum Allowed Quanitity
676 	 * @param p_Delete_Group_Name IN Delete Group Name
677 	 * @param p_eco_name ECO Name
678 	 * @param p_comments IN Comments
679 	 * @param p_pick_components IN Pick Component
680 	 * @param p_revised_item_sequence_id IN Revised Item Sequence Id
681 	 * @param p_old_operation_sequence_num IN Old Operation Sequence Number
682 	 * @param p_old_component_sequence_id IN Old Component Sequence Id
683 	 * @param p_old_effectivity_date IN Old Effectvity Date
684 	 * @param p_old_rec_item_sequence_number IN Old Record Item Sequence Number
685 	 * @param p_Old_Rec_shipping_Allowed IN Old Record Shipping Allowed
686 	 * @param p_Old_rec_supply_locator_id IN Old Record Supply Locator Id
687 	 * @param p_Old_rec_supply_subinventory IN Old Record Supply Subinventory
688 	 * @param p_old_rec_check_atp IN Old Record Check ATP
689 	 * @param p_old_rec_acd_type IN Old Record acs Type
690 	 * @param p_old_rec_to_end_item_unit_num IN Old Record To End Item Unit Number
691 	 * @param p_original_system_reference  IN Old Record Original System reference
692 	 * @param p_rowid IN Rowid
693 	 * @param x_return_status IN OUT NOCOPY Return Status
694 	 * @param x_error_message IN OUT NOCOPY Error Message
695 	 * @rep:scope private
696 	 * @rep:compatibility S
697 	 * @rep:lifecycle active
698 	 * @rep:displayname Validaet All Attribute
699 	 * @rep:category BUSINESS_ENTITY BOM_BILL_OF_MATERIAL
700 	 */
701 
702 PROCEDURE Validate_All_Attributes
703 (       p_bo_identifier                   IN VARCHAR2 := 'BOM',
704         p_transaction_type                IN  VARCHAR2,
705         p_revised_item_id                 IN  NUMBER,
706         p_organization_id                 IN  NUMBER,
707         p_organization_code               IN  VARCHAR2,
708         p_alternate_bom_code              IN  VARCHAR2,
709         p_bill_sequence_id                IN  NUMBER,
710         p_bom_implementation_date         IN  DATE,
711         p_component_sequence_id           IN  NUMBER,
712         p_item_sequence_number            IN  NUMBER,
713         p_operation_sequence_number       IN  NUMBER,
714         p_new_operation_sequence_num      IN  NUMBER := NULL,
715         p_component_item_id               IN  NUMBER,
716         p_from_end_item_unit_number       IN  VARCHAR2 := NULL,
717         p_to_end_item_unit_number         IN  VARCHAR2 := NULL,
718         p_new_from_end_item_unit_num      IN  VARCHAR2 := NULL,
719         p_start_effective_date            IN  DATE,
720         p_new_effectivity_date            IN  DATE := NULL,
721         p_disable_date                    IN  DATE := NULL,
722         p_basis_type			  IN  NUMBER := NULL,
723         p_quantity_per_assembly           IN  NUMBER := NULL,
724         p_projected_yield                 IN  NUMBER := NULL,
725         p_planning_percent                IN  NUMBER := NULL,
726         p_quantity_related                IN  NUMBER := NULL,
727         p_include_in_cost_rollup          IN  NUMBER := NULL,
728         p_check_atp                       IN  NUMBER := NULL,
729         p_acd_type                        IN  NUMBER := NULL,
730         p_auto_request_material           IN  VARCHAR2 := NULL,
731         p_wip_supply_type                 IN  NUMBER := NULL,
732         p_Supply_SubInventory             IN  VARCHAR2 := NULL,
733         p_supply_locator_id               IN  NUMBER := NULL,
734         p_location_name                   IN  VARCHAR2 := NULL,
735         p_SO_Basis                        IN  NUMBER := NULL,
736         p_Optional                        IN  NUMBER := NULL,
737         p_mutually_exclusive              IN  NUMBER := NULL,
738         p_shipping_allowed                IN  NUMBER := NULL,
739         p_required_to_ship                IN  NUMBER := NULL,
740         p_required_for_revenue            IN  NUMBER := NULL,
741         p_include_on_ship_docs            IN  NUMBER := NULL,
742         p_enforce_int_reqs_code           IN  NUMBER := NULL,
743         p_revised_item_name               IN  VARCHAR2 := NULL,
744         p_component_item_name             IN  VARCHAR2 := NULL,
745         p_minimum_allowed_quantity        IN  NUMBER := NULL,
746         p_maximum_allowed_quantity        IN  NUMBER := NULL,
747         p_Delete_Group_Name               IN  VARCHAR2 := NULL,
748         p_eco_name                        IN  VARCHAR2 := NULL,
749         p_comments                        IN  VARCHAR2 := NULL,
750         p_pick_components                 IN  NUMBER := NULL,
751         p_revised_item_sequence_id        IN  NUMBER := NULL,
752         p_old_operation_sequence_num      IN  NUMBER := NULL,
753         p_old_component_sequence_id       IN  NUMBER := NULL,
754         p_old_effectivity_date            IN  DATE := NULL,
755         p_old_rec_item_sequence_number    IN  NUMBER := NULL,
756         p_Old_Rec_shipping_Allowed        IN  NUMBER := NULL,
757         p_Old_rec_supply_locator_id       IN  NUMBER := NULL,
758         p_Old_rec_supply_subinventory     IN  VARCHAR2 := NULL,
759         p_old_rec_check_atp               IN  NUMBER := NULL,
760         p_old_rec_acd_type                IN  NUMBER := NULL,
761         p_old_rec_to_end_item_unit_num    IN  VARCHAR2 := NULL,
762         p_original_system_reference       IN  VARCHAR2 := NULL,
763         p_rowid                           IN  VARCHAR2 := NULL,
764         x_return_status                  IN OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
765         x_error_message                  IN OUT NOCOPY /* file.sql.39 change */  VARCHAR2);
766 
767 
768 	 /*****************************************************************
769 	 * Function	: Control
770 	 * Parameter IN	: Org Level Control
771 	 *		  Subinventory Level Control
772 	 *		  Item Level Control
773 	 * Returns	: Number
774 	 * Purpose	: Control procedure will take the various level control
775 	 *		  values and decide if the Locator is controlled at the
776          *		  org,subinventory or item level. It will also decide
777 	 *		  if the locator is pre-specified or dynamic.
778 	 *******************************************************************/
779 
780    FUNCTION CONTROL(org_control      IN    number,
781                     sub_control      IN    number,
782                     item_control     IN    number default NULL)
783                     RETURN NUMBER  ;
784 
785 
786 END BOM_Validate_Bom_Component;