DBA Data[Home] [Help]

PACKAGE BODY: APPS.BOM_BPEL_SYNCBILLOFMATERIALSLI

Source


1 PACKAGE BODY BOM_BPEL_SYNCBILLOFMATERIALSLI AS
2 /* $Header: BOMAIASB.pls 120.1 2011/12/07 09:13:10 jawan noship $ */
3 /****************************************************************************
4 --
5 --  Copyright (c) 2008 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      BOMAIASB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package  BOM_BPEL_SYNCBILLOFMATERIALSLI
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  02-OCT-2008 Kashif Suleman      Initial Creation
21 --
22 ****************************************************************************/
23 
24   g_org_code VARCHAR2(3) := NULL;
25   g_org_id   NUMBER      := NULL;
26 FUNCTION Get_Org_Code
27   (
28     P_organization_id IN NUMBER)
29   RETURN VARCHAR2
30 IS
31   l_org_code VARCHAR2(3);
32 BEGIN
33   IF g_org_code IS NULL THEN
34      SELECT organization_code
35        INTO l_org_code
36        FROM mtl_parameters
37       WHERE organization_id = P_organization_id;
38       g_org_code := l_org_code;
39   ELSE
40     l_org_code := g_org_code;
41   END IF;
42   RETURN l_org_code;
43 END;
44 FUNCTION Get_Org_Id
45   (
46     P_organization_code IN VARCHAR2)
47   RETURN NUMBER
48 IS
49   l_org_id NUMBER;
50 BEGIN
51   IF g_org_id IS NULL THEN
52      SELECT organization_id
53        INTO l_org_id
54        FROM mtl_parameters
55       WHERE organization_code = P_organization_code;
56       g_org_id := l_org_id;
57   ELSE
58     l_org_id := g_org_id;
59   END IF;
60   RETURN l_org_id;
61 END;
62 FUNCTION PL_TO_SQL_HEAD_REC
63   (
64     aPlsqlItem BOM_BO_PUB.BOM_HEAD_REC_TYPE)
65   RETURN BOM_BO_PUB_BOM_HEAD_REC_TYPE
66 IS
67   aSqlItem BOM_BO_PUB_BOM_HEAD_REC_TYPE;
68 BEGIN
69   -- initialize the object
70   aSqlItem                           := BOM_BO_PUB_BOM_HEAD_REC_TYPE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
71   aSqlItem.ASSEMBLY_ITEM_NAME        := aPlsqlItem.ASSEMBLY_ITEM_NAME;
72   aSqlItem.ORGANIZATION_ID           := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
73   aSqlItem.ALTERNATE_BOM_CODE        := aPlsqlItem.ALTERNATE_BOM_CODE;
74   aSqlItem.COMMON_ASSEMBLY_ITEM_NAME := aPlsqlItem.COMMON_ASSEMBLY_ITEM_NAME;
75   aSqlItem.COMMON_ORGANIZATION_CODE  := aPlsqlItem.COMMON_ORGANIZATION_CODE;
76   aSqlItem.ASSEMBLY_COMMENT          := aPlsqlItem.ASSEMBLY_COMMENT;
77   aSqlItem.ASSEMBLY_TYPE             := aPlsqlItem.ASSEMBLY_TYPE;
78   aSqlItem.TRANSACTION_TYPE          := aPlsqlItem.TRANSACTION_TYPE;
79   aSqlItem.RETURN_STATUS             := aPlsqlItem.RETURN_STATUS;
80   aSqlItem.ATTRIBUTE_CATEGORY        := aPlsqlItem.ATTRIBUTE_CATEGORY;
81   aSqlItem.ATTRIBUTE1                := aPlsqlItem.ATTRIBUTE1;
82   aSqlItem.ATTRIBUTE2                := aPlsqlItem.ATTRIBUTE2;
83   aSqlItem.ATTRIBUTE3                := aPlsqlItem.ATTRIBUTE3;
84   aSqlItem.ATTRIBUTE4                := aPlsqlItem.ATTRIBUTE4;
85   aSqlItem.ATTRIBUTE5                := aPlsqlItem.ATTRIBUTE5;
86   aSqlItem.ATTRIBUTE6                := aPlsqlItem.ATTRIBUTE6;
87   aSqlItem.ATTRIBUTE7                := aPlsqlItem.ATTRIBUTE7;
88   aSqlItem.ATTRIBUTE8                := aPlsqlItem.ATTRIBUTE8;
89   aSqlItem.ATTRIBUTE9                := aPlsqlItem.ATTRIBUTE9;
90   aSqlItem.ATTRIBUTE10               := aPlsqlItem.ATTRIBUTE10;
91   aSqlItem.ATTRIBUTE11               := aPlsqlItem.ATTRIBUTE11;
92   aSqlItem.ATTRIBUTE12               := aPlsqlItem.ATTRIBUTE12;
93   aSqlItem.ATTRIBUTE13               := aPlsqlItem.ATTRIBUTE13;
94   aSqlItem.ATTRIBUTE14               := aPlsqlItem.ATTRIBUTE14;
95   aSqlItem.ATTRIBUTE15               := aPlsqlItem.ATTRIBUTE15;
96   aSqlItem.ORIGINAL_SYSTEM_REFERENCE := aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE;
97   aSqlItem.DELETE_GROUP_NAME         := aPlsqlItem.DELETE_GROUP_NAME;
98   aSqlItem.DG_DESCRIPTION            := aPlsqlItem.DG_DESCRIPTION;
99   aSqlItem.ROW_IDENTIFIER            := aPlsqlItem.ROW_IDENTIFIER;
100   aSqlItem.BOM_IMPLEMENTATION_DATE   := aPlsqlItem.BOM_IMPLEMENTATION_DATE;
101   RETURN aSqlItem;
102 END PL_TO_SQL_HEAD_REC;
103 FUNCTION SQL_TO_PL_HEAD_REC
104   (
105     aSqlItem BOM_BO_PUB_BOM_HEAD_REC_TYPE)
106   RETURN BOM_BO_PUB.BOM_HEAD_REC_TYPE
107 IS
108   aPlsqlItem BOM_BO_PUB.BOM_HEAD_REC_TYPE;
109 BEGIN
110   aPlsqlItem.ASSEMBLY_ITEM_NAME        := aSqlItem.ASSEMBLY_ITEM_NAME;
111   aPlsqlItem.ORGANIZATION_CODE         := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
112   aPlsqlItem.ALTERNATE_BOM_CODE        := aSqlItem.ALTERNATE_BOM_CODE;
113   aPlsqlItem.COMMON_ASSEMBLY_ITEM_NAME := aSqlItem.COMMON_ASSEMBLY_ITEM_NAME;
114   aPlsqlItem.COMMON_ORGANIZATION_CODE  := aSqlItem.COMMON_ORGANIZATION_CODE;
115   aPlsqlItem.ASSEMBLY_COMMENT          := aSqlItem.ASSEMBLY_COMMENT;
116   aPlsqlItem.ASSEMBLY_TYPE             := aSqlItem.ASSEMBLY_TYPE;
117   aPlsqlItem.TRANSACTION_TYPE          := aSqlItem.TRANSACTION_TYPE;
118   aPlsqlItem.RETURN_STATUS             := aSqlItem.RETURN_STATUS;
119   aPlsqlItem.ATTRIBUTE_CATEGORY        := aSqlItem.ATTRIBUTE_CATEGORY;
120   aPlsqlItem.ATTRIBUTE1                := aSqlItem.ATTRIBUTE1;
121   aPlsqlItem.ATTRIBUTE2                := aSqlItem.ATTRIBUTE2;
122   aPlsqlItem.ATTRIBUTE3                := aSqlItem.ATTRIBUTE3;
123   aPlsqlItem.ATTRIBUTE4                := aSqlItem.ATTRIBUTE4;
124   aPlsqlItem.ATTRIBUTE5                := aSqlItem.ATTRIBUTE5;
125   aPlsqlItem.ATTRIBUTE6                := aSqlItem.ATTRIBUTE6;
126   aPlsqlItem.ATTRIBUTE7                := aSqlItem.ATTRIBUTE7;
127   aPlsqlItem.ATTRIBUTE8                := aSqlItem.ATTRIBUTE8;
128   aPlsqlItem.ATTRIBUTE9                := aSqlItem.ATTRIBUTE9;
129   aPlsqlItem.ATTRIBUTE10               := aSqlItem.ATTRIBUTE10;
130   aPlsqlItem.ATTRIBUTE11               := aSqlItem.ATTRIBUTE11;
131   aPlsqlItem.ATTRIBUTE12               := aSqlItem.ATTRIBUTE12;
132   aPlsqlItem.ATTRIBUTE13               := aSqlItem.ATTRIBUTE13;
133   aPlsqlItem.ATTRIBUTE14               := aSqlItem.ATTRIBUTE14;
134   aPlsqlItem.ATTRIBUTE15               := aSqlItem.ATTRIBUTE15;
135   aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE := aSqlItem.ORIGINAL_SYSTEM_REFERENCE;
136   aPlsqlItem.DELETE_GROUP_NAME         := aSqlItem.DELETE_GROUP_NAME;
137   aPlsqlItem.DG_DESCRIPTION            := aSqlItem.DG_DESCRIPTION;
138   aPlsqlItem.ROW_IDENTIFIER            := aSqlItem.ROW_IDENTIFIER;
139   aPlsqlItem.BOM_IMPLEMENTATION_DATE   := aSqlItem.BOM_IMPLEMENTATION_DATE;
140   RETURN aPlsqlItem;
141 END SQL_TO_PL_HEAD_REC;
142 FUNCTION PL_TO_SQL_REV_REC
143   (
144     aPlsqlItem BOM_BO_PUB.BOM_REVISION_REC_TYPE)
145   RETURN BOM_BO_PUB_BOM_REV_REC_TYPE
146 IS
147   aSqlItem BOM_BO_PUB_BOM_REV_REC_TYPE;
148 BEGIN
149   -- initialize the object
150   aSqlItem                           := BOM_BO_PUB_BOM_REV_REC_TYPE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
151   aSqlItem.ASSEMBLY_ITEM_NAME        := aPlsqlItem.ASSEMBLY_ITEM_NAME;
152   aSqlItem.ORGANIZATION_ID           := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
153   aSqlItem.REVISION                  := aPlsqlItem.REVISION;
154   aSqlItem.REVISION_LABEL            := aPlsqlItem.REVISION_LABEL;
155   aSqlItem.REVISION_REASON           := aPlsqlItem.REVISION_REASON;
156   aSqlItem.ALTERNATE_BOM_CODE        := aPlsqlItem.ALTERNATE_BOM_CODE;
157   aSqlItem.DESCRIPTION               := aPlsqlItem.DESCRIPTION;
158   aSqlItem.START_EFFECTIVE_DATE      := aPlsqlItem.START_EFFECTIVE_DATE;
159   aSqlItem.TRANSACTION_TYPE          := aPlsqlItem.TRANSACTION_TYPE;
160   aSqlItem.RETURN_STATUS             := aPlsqlItem.RETURN_STATUS;
161   aSqlItem.ATTRIBUTE_CATEGORY        := aPlsqlItem.ATTRIBUTE_CATEGORY;
162   aSqlItem.ATTRIBUTE1                := aPlsqlItem.ATTRIBUTE1;
163   aSqlItem.ATTRIBUTE2                := aPlsqlItem.ATTRIBUTE2;
164   aSqlItem.ATTRIBUTE3                := aPlsqlItem.ATTRIBUTE3;
165   aSqlItem.ATTRIBUTE4                := aPlsqlItem.ATTRIBUTE4;
166   aSqlItem.ATTRIBUTE5                := aPlsqlItem.ATTRIBUTE5;
167   aSqlItem.ATTRIBUTE6                := aPlsqlItem.ATTRIBUTE6;
168   aSqlItem.ATTRIBUTE7                := aPlsqlItem.ATTRIBUTE7;
169   aSqlItem.ATTRIBUTE8                := aPlsqlItem.ATTRIBUTE8;
170   aSqlItem.ATTRIBUTE9                := aPlsqlItem.ATTRIBUTE9;
171   aSqlItem.ATTRIBUTE10               := aPlsqlItem.ATTRIBUTE10;
172   aSqlItem.ATTRIBUTE11               := aPlsqlItem.ATTRIBUTE11;
173   aSqlItem.ATTRIBUTE12               := aPlsqlItem.ATTRIBUTE12;
174   aSqlItem.ATTRIBUTE13               := aPlsqlItem.ATTRIBUTE13;
175   aSqlItem.ATTRIBUTE14               := aPlsqlItem.ATTRIBUTE14;
176   aSqlItem.ATTRIBUTE15               := aPlsqlItem.ATTRIBUTE15;
177   aSqlItem.ORIGINAL_SYSTEM_REFERENCE := aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE;
178   aSqlItem.ROW_IDENTIFIER            := aPlsqlItem.ROW_IDENTIFIER;
179   RETURN aSqlItem;
180 END PL_TO_SQL_REV_REC;
181 FUNCTION SQL_TO_PL_REV_REC
182   (
183     aSqlItem BOM_BO_PUB_BOM_REV_REC_TYPE)
184   RETURN BOM_BO_PUB.BOM_REVISION_REC_TYPE
185 IS
186   aPlsqlItem BOM_BO_PUB.BOM_REVISION_REC_TYPE;
187 BEGIN
188   aPlsqlItem.ASSEMBLY_ITEM_NAME        := aSqlItem.ASSEMBLY_ITEM_NAME;
189   aPlsqlItem.ORGANIZATION_CODE         := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
190   aPlsqlItem.REVISION                  := aSqlItem.REVISION;
191   aPlsqlItem.REVISION_LABEL            := aSqlItem.REVISION_LABEL;
192   aPlsqlItem.REVISION_REASON           := aSqlItem.REVISION_REASON;
193   aPlsqlItem.ALTERNATE_BOM_CODE        := aSqlItem.ALTERNATE_BOM_CODE;
194   aPlsqlItem.DESCRIPTION               := aSqlItem.DESCRIPTION;
195   aPlsqlItem.START_EFFECTIVE_DATE      := aSqlItem.START_EFFECTIVE_DATE;
196   aPlsqlItem.TRANSACTION_TYPE          := aSqlItem.TRANSACTION_TYPE;
197   aPlsqlItem.RETURN_STATUS             := aSqlItem.RETURN_STATUS;
198   aPlsqlItem.ATTRIBUTE_CATEGORY        := aSqlItem.ATTRIBUTE_CATEGORY;
199   aPlsqlItem.ATTRIBUTE1                := aSqlItem.ATTRIBUTE1;
200   aPlsqlItem.ATTRIBUTE2                := aSqlItem.ATTRIBUTE2;
201   aPlsqlItem.ATTRIBUTE3                := aSqlItem.ATTRIBUTE3;
202   aPlsqlItem.ATTRIBUTE4                := aSqlItem.ATTRIBUTE4;
203   aPlsqlItem.ATTRIBUTE5                := aSqlItem.ATTRIBUTE5;
204   aPlsqlItem.ATTRIBUTE6                := aSqlItem.ATTRIBUTE6;
205   aPlsqlItem.ATTRIBUTE7                := aSqlItem.ATTRIBUTE7;
206   aPlsqlItem.ATTRIBUTE8                := aSqlItem.ATTRIBUTE8;
207   aPlsqlItem.ATTRIBUTE9                := aSqlItem.ATTRIBUTE9;
208   aPlsqlItem.ATTRIBUTE10               := aSqlItem.ATTRIBUTE10;
209   aPlsqlItem.ATTRIBUTE11               := aSqlItem.ATTRIBUTE11;
210   aPlsqlItem.ATTRIBUTE12               := aSqlItem.ATTRIBUTE12;
211   aPlsqlItem.ATTRIBUTE13               := aSqlItem.ATTRIBUTE13;
212   aPlsqlItem.ATTRIBUTE14               := aSqlItem.ATTRIBUTE14;
213   aPlsqlItem.ATTRIBUTE15               := aSqlItem.ATTRIBUTE15;
214   aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE := aSqlItem.ORIGINAL_SYSTEM_REFERENCE;
215   aPlsqlItem.ROW_IDENTIFIER            := aSqlItem.ROW_IDENTIFIER;
216   RETURN aPlsqlItem;
217 END SQL_TO_PL_REV_REC;
218 FUNCTION PL_TO_SQL_REV_TBL
219   (
220     aPlsqlItem BOM_BO_PUB.BOM_REVISION_TBL_TYPE)
221   RETURN BOM_BO_PUB_BOM_REV_TBL_TYPE
222 IS
223   aSqlItem BOM_BO_PUB_BOM_REV_TBL_TYPE;
224 BEGIN
225   -- initialize the table
226   aSqlItem           := BOM_BO_PUB_BOM_REV_TBL_TYPE();
227   IF aPlsqlItem.COUNT > 0 THEN
228     aSqlItem.EXTEND(aPlsqlItem.COUNT);
229     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
230     LOOP
231       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_REV_REC(aPlsqlItem(I));
232     END LOOP;
233   END IF;
234   RETURN aSqlItem;
235 END PL_TO_SQL_REV_TBL;
236 FUNCTION SQL_TO_PL_REV_TBL
237   (
238     aSqlItem BOM_BO_PUB_BOM_REV_TBL_TYPE)
239   RETURN BOM_BO_PUB.BOM_REVISION_TBL_TYPE
240 IS
241   aPlsqlItem BOM_BO_PUB.BOM_REVISION_TBL_TYPE;
242 BEGIN
243   FOR I IN 1..aSqlItem.COUNT
244   LOOP
245     aPlsqlItem(I) := SQL_TO_PL_REV_REC(aSqlItem(I));
246   END LOOP;
247   RETURN aPlsqlItem;
248 END SQL_TO_PL_REV_TBL;
249 FUNCTION PL_TO_SQL_COMPS_REC
250   (
251     aPlsqlItem BOM_BO_PUB.BOM_COMPS_REC_TYPE)
252   RETURN BOM_BO_PUB_BOM_COMPS_REC_TYPE
253 IS
254   aSqlItem BOM_BO_PUB_BOM_COMPS_REC_TYPE;
255 BEGIN
256   -- initialize the object
257   aSqlItem                               := BOM_BO_PUB_BOM_COMPS_REC_TYPE(NULL,
258                                             NULL, NULL, NULL, NULL, NULL, NULL,
259                                             NULL, NULL, NULL, NULL, NULL, NULL,
260                                             NULL, NULL, NULL, NULL, NULL, NULL,
261                                             NULL, NULL, NULL, NULL, NULL, NULL,
262                                             NULL, NULL, NULL, NULL, NULL, NULL,
263                                             NULL, NULL, NULL, NULL, NULL, NULL,
264                                             NULL, NULL, NULL, NULL, NULL, NULL,
265                                             NULL, NULL, NULL, NULL, NULL, NULL,
266                                             NULL, NULL, NULL, NULL, NULL, NULL,
267                                             NULL, NULL, NULL);
268   aSqlItem.ORGANIZATION_ID               := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
269   aSqlItem.ASSEMBLY_ITEM_NAME            := aPlsqlItem.ASSEMBLY_ITEM_NAME;
270   aSqlItem.START_EFFECTIVE_DATE          := aPlsqlItem.START_EFFECTIVE_DATE;
271   aSqlItem.DISABLE_DATE                  := aPlsqlItem.DISABLE_DATE;
272   aSqlItem.OPERATION_SEQUENCE_NUMBER     := aPlsqlItem.OPERATION_SEQUENCE_NUMBER;
273   aSqlItem.COMPONENT_ITEM_NAME           := aPlsqlItem.COMPONENT_ITEM_NAME;
274   aSqlItem.ALTERNATE_BOM_CODE            := aPlsqlItem.ALTERNATE_BOM_CODE;
275   aSqlItem.NEW_EFFECTIVITY_DATE          := aPlsqlItem.NEW_EFFECTIVITY_DATE;
276   aSqlItem.NEW_OPERATION_SEQUENCE_NUMBER := aPlsqlItem.NEW_OPERATION_SEQUENCE_NUMBER;
277   aSqlItem.ITEM_SEQUENCE_NUMBER          := aPlsqlItem.ITEM_SEQUENCE_NUMBER;
278   aSqlItem.QUANTITY_PER_ASSEMBLY         := aPlsqlItem.QUANTITY_PER_ASSEMBLY;
279   aSqlItem.PLANNING_PERCENT              := aPlsqlItem.PLANNING_PERCENT;
280   aSqlItem.PROJECTED_YIELD               := aPlsqlItem.PROJECTED_YIELD;
281   aSqlItem.INCLUDE_IN_COST_ROLLUP        := aPlsqlItem.INCLUDE_IN_COST_ROLLUP;
282   aSqlItem.WIP_SUPPLY_TYPE               := aPlsqlItem.WIP_SUPPLY_TYPE;
283   aSqlItem.SO_BASIS                      := aPlsqlItem.SO_BASIS;
284   aSqlItem.OPTIONAL                      := aPlsqlItem.OPTIONAL;
285   aSqlItem.MUTUALLY_EXCLUSIVE            := aPlsqlItem.MUTUALLY_EXCLUSIVE;
286   aSqlItem.CHECK_ATP                     := aPlsqlItem.CHECK_ATP;
287   aSqlItem.SHIPPING_ALLOWED              := aPlsqlItem.SHIPPING_ALLOWED;
288   aSqlItem.REQUIRED_TO_SHIP              := aPlsqlItem.REQUIRED_TO_SHIP;
289   aSqlItem.REQUIRED_FOR_REVENUE          := aPlsqlItem.REQUIRED_FOR_REVENUE;
290   aSqlItem.INCLUDE_ON_SHIP_DOCS          := aPlsqlItem.INCLUDE_ON_SHIP_DOCS;
291   aSqlItem.QUANTITY_RELATED              := aPlsqlItem.QUANTITY_RELATED;
292   aSqlItem.SUPPLY_SUBINVENTORY           := aPlsqlItem.SUPPLY_SUBINVENTORY;
293   aSqlItem.LOCATION_NAME                 := aPlsqlItem.LOCATION_NAME;
294   aSqlItem.MINIMUM_ALLOWED_QUANTITY      := aPlsqlItem.MINIMUM_ALLOWED_QUANTITY;
295   aSqlItem.MAXIMUM_ALLOWED_QUANTITY      := aPlsqlItem.MAXIMUM_ALLOWED_QUANTITY;
296   aSqlItem.COMMENTS                      := aPlsqlItem.COMMENTS;
297   aSqlItem.ATTRIBUTE_CATEGORY            := aPlsqlItem.ATTRIBUTE_CATEGORY;
298   aSqlItem.ATTRIBUTE1                    := aPlsqlItem.ATTRIBUTE1;
299   aSqlItem.ATTRIBUTE2                    := aPlsqlItem.ATTRIBUTE2;
300   aSqlItem.ATTRIBUTE3                    := aPlsqlItem.ATTRIBUTE3;
301   aSqlItem.ATTRIBUTE4                    := aPlsqlItem.ATTRIBUTE4;
302   aSqlItem.ATTRIBUTE5                    := aPlsqlItem.ATTRIBUTE5;
303   aSqlItem.ATTRIBUTE6                    := aPlsqlItem.ATTRIBUTE6;
304   aSqlItem.ATTRIBUTE7                    := aPlsqlItem.ATTRIBUTE7;
305   aSqlItem.ATTRIBUTE8                    := aPlsqlItem.ATTRIBUTE8;
306   aSqlItem.ATTRIBUTE9                    := aPlsqlItem.ATTRIBUTE9;
307   aSqlItem.ATTRIBUTE10                   := aPlsqlItem.ATTRIBUTE10;
308   aSqlItem.ATTRIBUTE11                   := aPlsqlItem.ATTRIBUTE11;
309   aSqlItem.ATTRIBUTE12                   := aPlsqlItem.ATTRIBUTE12;
310   aSqlItem.ATTRIBUTE13                   := aPlsqlItem.ATTRIBUTE13;
311   aSqlItem.ATTRIBUTE14                   := aPlsqlItem.ATTRIBUTE14;
312   aSqlItem.ATTRIBUTE15                   := aPlsqlItem.ATTRIBUTE15;
313   aSqlItem.FROM_END_ITEM_UNIT_NUMBER     := aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER;
314   aSqlItem.NEW_FROM_END_ITEM_UNIT_NUMBER := aPlsqlItem.NEW_FROM_END_ITEM_UNIT_NUMBER;
315   aSqlItem.TO_END_ITEM_UNIT_NUMBER       := aPlsqlItem.TO_END_ITEM_UNIT_NUMBER;
316   aSqlItem.RETURN_STATUS                 := aPlsqlItem.RETURN_STATUS;
317   aSqlItem.TRANSACTION_TYPE              := aPlsqlItem.TRANSACTION_TYPE;
318   aSqlItem.ORIGINAL_SYSTEM_REFERENCE     := aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE;
319   aSqlItem.DELETE_GROUP_NAME             := aPlsqlItem.DELETE_GROUP_NAME;
320   aSqlItem.DG_DESCRIPTION                := aPlsqlItem.DG_DESCRIPTION;
321   aSqlItem.ENFORCE_INT_REQUIREMENTS      := aPlsqlItem.ENFORCE_INT_REQUIREMENTS;
322   aSqlItem.AUTO_REQUEST_MATERIAL         := aPlsqlItem.AUTO_REQUEST_MATERIAL;
323   aSqlItem.ROW_IDENTIFIER                := aPlsqlItem.ROW_IDENTIFIER;
324   aSqlItem.SUGGESTED_VENDOR_NAME         := aPlsqlItem.SUGGESTED_VENDOR_NAME;
325   aSqlItem.UNIT_PRICE                    := aPlsqlItem.UNIT_PRICE;
326   RETURN aSqlItem;
327 END PL_TO_SQL_COMPS_REC;
328 FUNCTION SQL_TO_PL_COMPS_REC
329   (
330     aSqlItem BOM_BO_PUB_BOM_COMPS_REC_TYPE)
331   RETURN BOM_BO_PUB.BOM_COMPS_REC_TYPE
332 IS
333   aPlsqlItem BOM_BO_PUB.BOM_COMPS_REC_TYPE;
334 BEGIN
335   aPlsqlItem.ORGANIZATION_CODE             := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
336   aPlsqlItem.ASSEMBLY_ITEM_NAME            := aSqlItem.ASSEMBLY_ITEM_NAME;
337   aPlsqlItem.START_EFFECTIVE_DATE          := aSqlItem.START_EFFECTIVE_DATE;
338   aPlsqlItem.DISABLE_DATE                  := aSqlItem.DISABLE_DATE;
339   aPlsqlItem.OPERATION_SEQUENCE_NUMBER     := aSqlItem.OPERATION_SEQUENCE_NUMBER;
340   aPlsqlItem.COMPONENT_ITEM_NAME           := aSqlItem.COMPONENT_ITEM_NAME;
341   aPlsqlItem.ALTERNATE_BOM_CODE            := aSqlItem.ALTERNATE_BOM_CODE;
342   aPlsqlItem.NEW_EFFECTIVITY_DATE          := aSqlItem.NEW_EFFECTIVITY_DATE;
343   aPlsqlItem.NEW_OPERATION_SEQUENCE_NUMBER := aSqlItem.NEW_OPERATION_SEQUENCE_NUMBER;
344   aPlsqlItem.ITEM_SEQUENCE_NUMBER          := aSqlItem.ITEM_SEQUENCE_NUMBER;
345   aPlsqlItem.QUANTITY_PER_ASSEMBLY         := aSqlItem.QUANTITY_PER_ASSEMBLY;
346   aPlsqlItem.PLANNING_PERCENT              := aSqlItem.PLANNING_PERCENT;
347   aPlsqlItem.PROJECTED_YIELD               := aSqlItem.PROJECTED_YIELD;
348   aPlsqlItem.INCLUDE_IN_COST_ROLLUP        := aSqlItem.INCLUDE_IN_COST_ROLLUP;
349   aPlsqlItem.WIP_SUPPLY_TYPE               := aSqlItem.WIP_SUPPLY_TYPE;
350   aPlsqlItem.SO_BASIS                      := aSqlItem.SO_BASIS;
351   aPlsqlItem.OPTIONAL                      := aSqlItem.OPTIONAL;
352   aPlsqlItem.MUTUALLY_EXCLUSIVE            := aSqlItem.MUTUALLY_EXCLUSIVE;
353   aPlsqlItem.CHECK_ATP                     := aSqlItem.CHECK_ATP;
354   aPlsqlItem.SHIPPING_ALLOWED              := aSqlItem.SHIPPING_ALLOWED;
355   aPlsqlItem.REQUIRED_TO_SHIP              := aSqlItem.REQUIRED_TO_SHIP;
356   aPlsqlItem.REQUIRED_FOR_REVENUE          := aSqlItem.REQUIRED_FOR_REVENUE;
357   aPlsqlItem.INCLUDE_ON_SHIP_DOCS          := aSqlItem.INCLUDE_ON_SHIP_DOCS;
358   aPlsqlItem.QUANTITY_RELATED              := aSqlItem.QUANTITY_RELATED;
359   aPlsqlItem.SUPPLY_SUBINVENTORY           := aSqlItem.SUPPLY_SUBINVENTORY;
360   aPlsqlItem.LOCATION_NAME                 := aSqlItem.LOCATION_NAME;
361   aPlsqlItem.MINIMUM_ALLOWED_QUANTITY      := aSqlItem.MINIMUM_ALLOWED_QUANTITY;
362   aPlsqlItem.MAXIMUM_ALLOWED_QUANTITY      := aSqlItem.MAXIMUM_ALLOWED_QUANTITY;
363   aPlsqlItem.COMMENTS                      := aSqlItem.COMMENTS;
364   aPlsqlItem.ATTRIBUTE_CATEGORY            := aSqlItem.ATTRIBUTE_CATEGORY;
365   aPlsqlItem.ATTRIBUTE1                    := aSqlItem.ATTRIBUTE1;
366   aPlsqlItem.ATTRIBUTE2                    := aSqlItem.ATTRIBUTE2;
367   aPlsqlItem.ATTRIBUTE3                    := aSqlItem.ATTRIBUTE3;
368   aPlsqlItem.ATTRIBUTE4                    := aSqlItem.ATTRIBUTE4;
369   aPlsqlItem.ATTRIBUTE5                    := aSqlItem.ATTRIBUTE5;
370   aPlsqlItem.ATTRIBUTE6                    := aSqlItem.ATTRIBUTE6;
371   aPlsqlItem.ATTRIBUTE7                    := aSqlItem.ATTRIBUTE7;
372   aPlsqlItem.ATTRIBUTE8                    := aSqlItem.ATTRIBUTE8;
373   aPlsqlItem.ATTRIBUTE9                    := aSqlItem.ATTRIBUTE9;
374   aPlsqlItem.ATTRIBUTE10                   := aSqlItem.ATTRIBUTE10;
375   aPlsqlItem.ATTRIBUTE11                   := aSqlItem.ATTRIBUTE11;
376   aPlsqlItem.ATTRIBUTE12                   := aSqlItem.ATTRIBUTE12;
377   aPlsqlItem.ATTRIBUTE13                   := aSqlItem.ATTRIBUTE13;
378   aPlsqlItem.ATTRIBUTE14                   := aSqlItem.ATTRIBUTE14;
379   aPlsqlItem.ATTRIBUTE15                   := aSqlItem.ATTRIBUTE15;
380   aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER     := aSqlItem.FROM_END_ITEM_UNIT_NUMBER;
381   aPlsqlItem.NEW_FROM_END_ITEM_UNIT_NUMBER := aSqlItem.NEW_FROM_END_ITEM_UNIT_NUMBER;
382   aPlsqlItem.TO_END_ITEM_UNIT_NUMBER       := aSqlItem.TO_END_ITEM_UNIT_NUMBER;
383   aPlsqlItem.RETURN_STATUS                 := aSqlItem.RETURN_STATUS;
384   aPlsqlItem.TRANSACTION_TYPE              := aSqlItem.TRANSACTION_TYPE;
385   aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE     := aSqlItem.ORIGINAL_SYSTEM_REFERENCE;
386   aPlsqlItem.DELETE_GROUP_NAME             := aSqlItem.DELETE_GROUP_NAME;
387   aPlsqlItem.DG_DESCRIPTION                := aSqlItem.DG_DESCRIPTION;
388   aPlsqlItem.ENFORCE_INT_REQUIREMENTS      := aSqlItem.ENFORCE_INT_REQUIREMENTS;
389   aPlsqlItem.AUTO_REQUEST_MATERIAL         := aSqlItem.AUTO_REQUEST_MATERIAL;
390   aPlsqlItem.ROW_IDENTIFIER                := aSqlItem.ROW_IDENTIFIER;
391   aPlsqlItem.SUGGESTED_VENDOR_NAME         := aSqlItem.SUGGESTED_VENDOR_NAME;
392   aPlsqlItem.UNIT_PRICE                    := aSqlItem.UNIT_PRICE;
393   RETURN aPlsqlItem;
394 END SQL_TO_PL_COMPS_REC;
395 FUNCTION PL_TO_SQL_COMPS_TBL
396   (
397     aPlsqlItem BOM_BO_PUB.BOM_COMPS_TBL_TYPE)
398   RETURN BOM_BO_PUB_BOM_COMPS_TBL_TYPE
399 IS
400   aSqlItem BOM_BO_PUB_BOM_COMPS_TBL_TYPE;
401 BEGIN
402   -- initialize the table
403   aSqlItem           := BOM_BO_PUB_BOM_COMPS_TBL_TYPE();
404   IF aPlsqlItem.COUNT > 0 THEN
405     aSqlItem.EXTEND(aPlsqlItem.COUNT);
406     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
407     LOOP
408       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_COMPS_REC(aPlsqlItem(I));
409     END LOOP;
410   END IF;
411   RETURN aSqlItem;
412 END PL_TO_SQL_COMPS_TBL;
413 FUNCTION SQL_TO_PL_COMPS_TBL
414   (
415     aSqlItem BOM_BO_PUB_BOM_COMPS_TBL_TYPE)
416   RETURN BOM_BO_PUB.BOM_COMPS_TBL_TYPE
417 IS
418   aPlsqlItem BOM_BO_PUB.BOM_COMPS_TBL_TYPE;
419 BEGIN
420   FOR I IN 1..aSqlItem.COUNT
421   LOOP
422     aPlsqlItem(I) := SQL_TO_PL_COMPS_REC(aSqlItem(I));
423   END LOOP;
424   RETURN aPlsqlItem;
425 END SQL_TO_PL_COMPS_TBL;
426 FUNCTION PL_TO_SQL_RF_DES_REC
427   (
428     aPlsqlItem BOM_BO_PUB.BOM_REF_DESIGNATOR_REC_TYPE)
429   RETURN BOM_BO_PUB_BOM_RF_DES_REC_TYPE
430 IS
431   aSqlItem BOM_BO_PUB_BOM_RF_DES_REC_TYPE;
432 BEGIN
433   -- initialize the object
434   aSqlItem                           := BOM_BO_PUB_BOM_RF_DES_REC_TYPE(NULL, NULL,
435                                         NULL, NULL, NULL, NULL, NULL, NULL, NULL,
436                                         NULL, NULL, NULL, NULL, NULL, NULL, NULL,
437                                         NULL, NULL, NULL, NULL, NULL, NULL, NULL,
438                                         NULL, NULL, NULL, NULL, NULL, NULL, NULL);
439   aSqlItem.ORGANIZATION_ID           := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
440   aSqlItem.ASSEMBLY_ITEM_NAME        := aPlsqlItem.ASSEMBLY_ITEM_NAME;
441   aSqlItem.START_EFFECTIVE_DATE      := aPlsqlItem.START_EFFECTIVE_DATE;
442   aSqlItem.OPERATION_SEQUENCE_NUMBER := aPlsqlItem.OPERATION_SEQUENCE_NUMBER;
443   aSqlItem.COMPONENT_ITEM_NAME       := aPlsqlItem.COMPONENT_ITEM_NAME;
444   aSqlItem.ALTERNATE_BOM_CODE        := aPlsqlItem.ALTERNATE_BOM_CODE;
445   aSqlItem.REFERENCE_DESIGNATOR_NAME := aPlsqlItem.REFERENCE_DESIGNATOR_NAME;
446   aSqlItem.REF_DESIGNATOR_COMMENT    := aPlsqlItem.REF_DESIGNATOR_COMMENT;
447   aSqlItem.ATTRIBUTE_CATEGORY        := aPlsqlItem.ATTRIBUTE_CATEGORY;
448   aSqlItem.ATTRIBUTE1                := aPlsqlItem.ATTRIBUTE1;
449   aSqlItem.ATTRIBUTE2                := aPlsqlItem.ATTRIBUTE2;
450   aSqlItem.ATTRIBUTE3                := aPlsqlItem.ATTRIBUTE3;
451   aSqlItem.ATTRIBUTE4                := aPlsqlItem.ATTRIBUTE4;
452   aSqlItem.ATTRIBUTE5                := aPlsqlItem.ATTRIBUTE5;
453   aSqlItem.ATTRIBUTE6                := aPlsqlItem.ATTRIBUTE6;
454   aSqlItem.ATTRIBUTE7                := aPlsqlItem.ATTRIBUTE7;
455   aSqlItem.ATTRIBUTE8                := aPlsqlItem.ATTRIBUTE8;
456   aSqlItem.ATTRIBUTE9                := aPlsqlItem.ATTRIBUTE9;
457   aSqlItem.ATTRIBUTE10               := aPlsqlItem.ATTRIBUTE10;
458   aSqlItem.ATTRIBUTE11               := aPlsqlItem.ATTRIBUTE11;
459   aSqlItem.ATTRIBUTE12               := aPlsqlItem.ATTRIBUTE12;
460   aSqlItem.ATTRIBUTE13               := aPlsqlItem.ATTRIBUTE13;
461   aSqlItem.ATTRIBUTE14               := aPlsqlItem.ATTRIBUTE14;
462   aSqlItem.ATTRIBUTE15               := aPlsqlItem.ATTRIBUTE15;
463   aSqlItem.FROM_END_ITEM_UNIT_NUMBER := aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER;
464   aSqlItem.ORIGINAL_SYSTEM_REFERENCE := aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE;
465   aSqlItem.NEW_REFERENCE_DESIGNATOR  := aPlsqlItem.NEW_REFERENCE_DESIGNATOR;
466   aSqlItem.RETURN_STATUS             := aPlsqlItem.RETURN_STATUS;
467   aSqlItem.TRANSACTION_TYPE          := aPlsqlItem.TRANSACTION_TYPE;
468   aSqlItem.ROW_IDENTIFIER            := aPlsqlItem.ROW_IDENTIFIER;
469   RETURN aSqlItem;
470 END PL_TO_SQL_RF_DES_REC;
471 FUNCTION SQL_TO_PL_RF_DES_REC
472   (
473     aSqlItem BOM_BO_PUB_BOM_RF_DES_REC_TYPE)
474   RETURN BOM_BO_PUB.BOM_REF_DESIGNATOR_REC_TYPE
475 IS
476   aPlsqlItem BOM_BO_PUB.BOM_REF_DESIGNATOR_REC_TYPE;
477 BEGIN
478   aPlsqlItem.ORGANIZATION_CODE         := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
479   aPlsqlItem.ASSEMBLY_ITEM_NAME        := aSqlItem.ASSEMBLY_ITEM_NAME;
480   aPlsqlItem.START_EFFECTIVE_DATE      := aSqlItem.START_EFFECTIVE_DATE;
481   aPlsqlItem.OPERATION_SEQUENCE_NUMBER := aSqlItem.OPERATION_SEQUENCE_NUMBER;
482   aPlsqlItem.COMPONENT_ITEM_NAME       := aSqlItem.COMPONENT_ITEM_NAME;
483   aPlsqlItem.ALTERNATE_BOM_CODE        := aSqlItem.ALTERNATE_BOM_CODE;
484   aPlsqlItem.REFERENCE_DESIGNATOR_NAME := aSqlItem.REFERENCE_DESIGNATOR_NAME;
485   aPlsqlItem.REF_DESIGNATOR_COMMENT    := aSqlItem.REF_DESIGNATOR_COMMENT;
486   aPlsqlItem.ATTRIBUTE_CATEGORY        := aSqlItem.ATTRIBUTE_CATEGORY;
487   aPlsqlItem.ATTRIBUTE1                := aSqlItem.ATTRIBUTE1;
488   aPlsqlItem.ATTRIBUTE2                := aSqlItem.ATTRIBUTE2;
489   aPlsqlItem.ATTRIBUTE3                := aSqlItem.ATTRIBUTE3;
490   aPlsqlItem.ATTRIBUTE4                := aSqlItem.ATTRIBUTE4;
491   aPlsqlItem.ATTRIBUTE5                := aSqlItem.ATTRIBUTE5;
492   aPlsqlItem.ATTRIBUTE6                := aSqlItem.ATTRIBUTE6;
493   aPlsqlItem.ATTRIBUTE7                := aSqlItem.ATTRIBUTE7;
494   aPlsqlItem.ATTRIBUTE8                := aSqlItem.ATTRIBUTE8;
495   aPlsqlItem.ATTRIBUTE9                := aSqlItem.ATTRIBUTE9;
496   aPlsqlItem.ATTRIBUTE10               := aSqlItem.ATTRIBUTE10;
497   aPlsqlItem.ATTRIBUTE11               := aSqlItem.ATTRIBUTE11;
498   aPlsqlItem.ATTRIBUTE12               := aSqlItem.ATTRIBUTE12;
499   aPlsqlItem.ATTRIBUTE13               := aSqlItem.ATTRIBUTE13;
500   aPlsqlItem.ATTRIBUTE14               := aSqlItem.ATTRIBUTE14;
501   aPlsqlItem.ATTRIBUTE15               := aSqlItem.ATTRIBUTE15;
502   aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER := aSqlItem.FROM_END_ITEM_UNIT_NUMBER;
503   aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE := aSqlItem.ORIGINAL_SYSTEM_REFERENCE;
504   aPlsqlItem.NEW_REFERENCE_DESIGNATOR  := aSqlItem.NEW_REFERENCE_DESIGNATOR;
505   aPlsqlItem.RETURN_STATUS             := aSqlItem.RETURN_STATUS;
506   aPlsqlItem.TRANSACTION_TYPE          := aSqlItem.TRANSACTION_TYPE;
507   aPlsqlItem.ROW_IDENTIFIER            := aSqlItem.ROW_IDENTIFIER;
508   RETURN aPlsqlItem;
509 END SQL_TO_PL_RF_DES_REC;
510 FUNCTION PL_TO_SQL_RF_DES_TBL
511   (
512     aPlsqlItem BOM_BO_PUB.BOM_REF_DESIGNATOR_TBL_TYPE)
513   RETURN BOM_BO_PUB_BOM_RF_DES_TBL_TYPE
514 IS
515   aSqlItem BOM_BO_PUB_BOM_RF_DES_TBL_TYPE;
516 BEGIN
517   -- initialize the table
518   aSqlItem           := BOM_BO_PUB_BOM_RF_DES_TBL_TYPE();
519   IF aPlsqlItem.COUNT > 0 THEN
520     aSqlItem.EXTEND(aPlsqlItem.COUNT);
521     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
522     LOOP
523       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_RF_DES_REC(aPlsqlItem(I));
524     END LOOP;
525   END IF;
526   RETURN aSqlItem;
527 END PL_TO_SQL_RF_DES_TBL;
528 FUNCTION SQL_TO_PL_RF_DES_TBL
529   (
530     aSqlItem BOM_BO_PUB_BOM_RF_DES_TBL_TYPE)
531   RETURN BOM_BO_PUB.BOM_REF_DESIGNATOR_TBL_TYPE
532 IS
533   aPlsqlItem BOM_BO_PUB.BOM_REF_DESIGNATOR_TBL_TYPE;
534 BEGIN
535   FOR I IN 1..aSqlItem.COUNT
536   LOOP
537     aPlsqlItem(I) := SQL_TO_PL_RF_DES_REC(aSqlItem(I));
538   END LOOP;
539   RETURN aPlsqlItem;
540 END SQL_TO_PL_RF_DES_TBL;
541 FUNCTION PL_TO_SQL_SUB_COMP_REC
542   (
543     aPlsqlItem BOM_BO_PUB.BOM_SUB_COMPONENT_REC_TYPE)
544   RETURN BOM_BO_PUB_BOM_SUBCMP_REC_TYPE
545 IS
546   aSqlItem BOM_BO_PUB_BOM_SUBCMP_REC_TYPE;
547 BEGIN
548   -- initialize the object
549   aSqlItem                               := BOM_BO_PUB_BOM_SUBCMP_REC_TYPE(NULL,
550                                             NULL, NULL, NULL, NULL, NULL, NULL,
551                                             NULL, NULL, NULL, NULL, NULL, NULL,
552                                             NULL, NULL, NULL, NULL, NULL, NULL,
553                                             NULL, NULL, NULL, NULL, NULL, NULL,
554                                             NULL, NULL, NULL, NULL, NULL, NULL,
555                                             NULL);
556   aSqlItem.ORGANIZATION_ID               := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
557   aSqlItem.ASSEMBLY_ITEM_NAME            := aPlsqlItem.ASSEMBLY_ITEM_NAME;
558   aSqlItem.START_EFFECTIVE_DATE          := aPlsqlItem.START_EFFECTIVE_DATE;
559   aSqlItem.OPERATION_SEQUENCE_NUMBER     := aPlsqlItem.OPERATION_SEQUENCE_NUMBER;
560   aSqlItem.COMPONENT_ITEM_NAME           := aPlsqlItem.COMPONENT_ITEM_NAME;
561   aSqlItem.ALTERNATE_BOM_CODE            := aPlsqlItem.ALTERNATE_BOM_CODE;
562   aSqlItem.SUBSTITUTE_COMPONENT_NAME     := aPlsqlItem.SUBSTITUTE_COMPONENT_NAME;
563   aSqlItem.NEW_SUBSTITUTE_COMPONENT_NAME := aPlsqlItem.NEW_SUBSTITUTE_COMPONENT_NAME;
564   aSqlItem.SUBSTITUTE_ITEM_QUANTITY      := aPlsqlItem.SUBSTITUTE_ITEM_QUANTITY;
565   aSqlItem.ATTRIBUTE_CATEGORY            := aPlsqlItem.ATTRIBUTE_CATEGORY;
566   aSqlItem.ATTRIBUTE1                    := aPlsqlItem.ATTRIBUTE1;
567   aSqlItem.ATTRIBUTE2                    := aPlsqlItem.ATTRIBUTE2;
568   aSqlItem.ATTRIBUTE4                    := aPlsqlItem.ATTRIBUTE4;
569   aSqlItem.ATTRIBUTE5                    := aPlsqlItem.ATTRIBUTE5;
570   aSqlItem.ATTRIBUTE6                    := aPlsqlItem.ATTRIBUTE6;
571   aSqlItem.ATTRIBUTE8                    := aPlsqlItem.ATTRIBUTE8;
572   aSqlItem.ATTRIBUTE9                    := aPlsqlItem.ATTRIBUTE9;
573   aSqlItem.ATTRIBUTE10                   := aPlsqlItem.ATTRIBUTE10;
574   aSqlItem.ATTRIBUTE12                   := aPlsqlItem.ATTRIBUTE12;
575   aSqlItem.ATTRIBUTE13                   := aPlsqlItem.ATTRIBUTE13;
576   aSqlItem.ATTRIBUTE14                   := aPlsqlItem.ATTRIBUTE14;
577   aSqlItem.ATTRIBUTE15                   := aPlsqlItem.ATTRIBUTE15;
578   aSqlItem.PROGRAM_ID                    := aPlsqlItem.PROGRAM_ID;
579   aSqlItem.ATTRIBUTE3                    := aPlsqlItem.ATTRIBUTE3;
580   aSqlItem.ATTRIBUTE7                    := aPlsqlItem.ATTRIBUTE7;
581   aSqlItem.ATTRIBUTE11                   := aPlsqlItem.ATTRIBUTE11;
582   aSqlItem.FROM_END_ITEM_UNIT_NUMBER     := aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER;
583   aSqlItem.ENFORCE_INT_REQUIREMENTS      := aPlsqlItem.ENFORCE_INT_REQUIREMENTS;
584   aSqlItem.ORIGINAL_SYSTEM_REFERENCE     := aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE;
585   aSqlItem.RETURN_STATUS                 := aPlsqlItem.RETURN_STATUS;
586   aSqlItem.TRANSACTION_TYPE              := aPlsqlItem.TRANSACTION_TYPE;
587   aSqlItem.ROW_IDENTIFIER                := aPlsqlItem.ROW_IDENTIFIER;
588   RETURN aSqlItem;
589 END PL_TO_SQL_SUB_COMP_REC;
590 FUNCTION SQL_TO_PL_SUB_COMP_REC
591   (
592     aSqlItem BOM_BO_PUB_BOM_SUBCMP_REC_TYPE)
593   RETURN BOM_BO_PUB.BOM_SUB_COMPONENT_REC_TYPE
594 IS
595   aPlsqlItem BOM_BO_PUB.BOM_SUB_COMPONENT_REC_TYPE;
596 BEGIN
597   aPlsqlItem.ORGANIZATION_CODE             := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
598   aPlsqlItem.ASSEMBLY_ITEM_NAME            := aSqlItem.ASSEMBLY_ITEM_NAME;
599   aPlsqlItem.START_EFFECTIVE_DATE          := aSqlItem.START_EFFECTIVE_DATE;
600   aPlsqlItem.OPERATION_SEQUENCE_NUMBER     := aSqlItem.OPERATION_SEQUENCE_NUMBER;
601   aPlsqlItem.COMPONENT_ITEM_NAME           := aSqlItem.COMPONENT_ITEM_NAME;
602   aPlsqlItem.ALTERNATE_BOM_CODE            := aSqlItem.ALTERNATE_BOM_CODE;
603   aPlsqlItem.SUBSTITUTE_COMPONENT_NAME     := aSqlItem.SUBSTITUTE_COMPONENT_NAME;
604   aPlsqlItem.NEW_SUBSTITUTE_COMPONENT_NAME := aSqlItem.NEW_SUBSTITUTE_COMPONENT_NAME;
605   aPlsqlItem.SUBSTITUTE_ITEM_QUANTITY      := aSqlItem.SUBSTITUTE_ITEM_QUANTITY;
606   aPlsqlItem.ATTRIBUTE_CATEGORY            := aSqlItem.ATTRIBUTE_CATEGORY;
607   aPlsqlItem.ATTRIBUTE1                    := aSqlItem.ATTRIBUTE1;
608   aPlsqlItem.ATTRIBUTE2                    := aSqlItem.ATTRIBUTE2;
609   aPlsqlItem.ATTRIBUTE4                    := aSqlItem.ATTRIBUTE4;
610   aPlsqlItem.ATTRIBUTE5                    := aSqlItem.ATTRIBUTE5;
611   aPlsqlItem.ATTRIBUTE6                    := aSqlItem.ATTRIBUTE6;
612   aPlsqlItem.ATTRIBUTE8                    := aSqlItem.ATTRIBUTE8;
613   aPlsqlItem.ATTRIBUTE9                    := aSqlItem.ATTRIBUTE9;
614   aPlsqlItem.ATTRIBUTE10                   := aSqlItem.ATTRIBUTE10;
615   aPlsqlItem.ATTRIBUTE12                   := aSqlItem.ATTRIBUTE12;
616   aPlsqlItem.ATTRIBUTE13                   := aSqlItem.ATTRIBUTE13;
617   aPlsqlItem.ATTRIBUTE14                   := aSqlItem.ATTRIBUTE14;
618   aPlsqlItem.ATTRIBUTE15                   := aSqlItem.ATTRIBUTE15;
619   aPlsqlItem.PROGRAM_ID                    := aSqlItem.PROGRAM_ID;
620   aPlsqlItem.ATTRIBUTE3                    := aSqlItem.ATTRIBUTE3;
621   aPlsqlItem.ATTRIBUTE7                    := aSqlItem.ATTRIBUTE7;
622   aPlsqlItem.ATTRIBUTE11                   := aSqlItem.ATTRIBUTE11;
623   aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER     := aSqlItem.FROM_END_ITEM_UNIT_NUMBER;
624   aPlsqlItem.ENFORCE_INT_REQUIREMENTS      := aSqlItem.ENFORCE_INT_REQUIREMENTS;
625   aPlsqlItem.ORIGINAL_SYSTEM_REFERENCE     := aSqlItem.ORIGINAL_SYSTEM_REFERENCE;
626   aPlsqlItem.RETURN_STATUS                 := aSqlItem.RETURN_STATUS;
627   aPlsqlItem.TRANSACTION_TYPE              := aSqlItem.TRANSACTION_TYPE;
628   aPlsqlItem.ROW_IDENTIFIER                := aSqlItem.ROW_IDENTIFIER;
629   RETURN aPlsqlItem;
630 END SQL_TO_PL_SUB_COMP_REC;
631 FUNCTION PL_TO_SQL_SUB_COMP_TBL
632   (
633     aPlsqlItem BOM_BO_PUB.BOM_SUB_COMPONENT_TBL_TYPE)
634   RETURN BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE
635 IS
636   aSqlItem BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE;
637 BEGIN
638   -- initialize the table
639   aSqlItem           := BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE();
640   IF aPlsqlItem.COUNT > 0 THEN
641     aSqlItem.EXTEND(aPlsqlItem.COUNT);
642     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
643     LOOP
644       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_SUB_COMP_REC(aPlsqlItem(I));
645     END LOOP;
646   END IF;
647   RETURN aSqlItem;
648 END PL_TO_SQL_SUB_COMP_TBL;
649 FUNCTION SQL_TO_PL_SUB_COMP_TBL
650   (
651     aSqlItem BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE)
652   RETURN BOM_BO_PUB.BOM_SUB_COMPONENT_TBL_TYPE
653 IS
654   aPlsqlItem BOM_BO_PUB.BOM_SUB_COMPONENT_TBL_TYPE;
655 BEGIN
656   FOR I IN 1..aSqlItem.COUNT
657   LOOP
658     aPlsqlItem(I) := SQL_TO_PL_SUB_COMP_REC(aSqlItem(I));
659   END LOOP;
660   RETURN aPlsqlItem;
661 END SQL_TO_PL_SUB_COMP_TBL;
662 FUNCTION PL_TO_SQL_COMP_OPS_REC
663   (
664     aPlsqlItem BOM_BO_PUB.BOM_COMP_OPS_REC_TYPE)
665   RETURN BOM_BO_PUB_BOM_COMPOP_REC_TYPE
666 IS
667   aSqlItem BOM_BO_PUB_BOM_COMPOP_REC_TYPE;
668 BEGIN
669   -- initialize the object
670   aSqlItem                              := BOM_BO_PUB_BOM_COMPOP_REC_TYPE(NULL,
671                                            NULL, NULL, NULL, NULL, NULL, NULL,
672                                            NULL, NULL, NULL, NULL, NULL, NULL,
673                                            NULL, NULL, NULL, NULL, NULL, NULL,
674                                            NULL, NULL, NULL, NULL, NULL, NULL,
675                                            NULL, NULL, NULL, NULL);
676   aSqlItem.ORGANIZATION_ID              := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
677   aSqlItem.ASSEMBLY_ITEM_NAME           := aPlsqlItem.ASSEMBLY_ITEM_NAME;
678   aSqlItem.START_EFFECTIVE_DATE         := aPlsqlItem.START_EFFECTIVE_DATE;
679   aSqlItem.FROM_END_ITEM_UNIT_NUMBER    := aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER;
680   aSqlItem.TO_END_ITEM_UNIT_NUMBER      := aPlsqlItem.TO_END_ITEM_UNIT_NUMBER;
681   aSqlItem.OPERATION_SEQUENCE_NUMBER    := aPlsqlItem.OPERATION_SEQUENCE_NUMBER;
682   aSqlItem.ADDITIONAL_OPERATION_SEQ_NUM := aPlsqlItem.ADDITIONAL_OPERATION_SEQ_NUM;
683   aSqlItem.NEW_ADDITIONAL_OP_SEQ_NUM    := aPlsqlItem.NEW_ADDITIONAL_OP_SEQ_NUM;
684   aSqlItem.COMPONENT_ITEM_NAME          := aPlsqlItem.COMPONENT_ITEM_NAME;
685   aSqlItem.ALTERNATE_BOM_CODE           := aPlsqlItem.ALTERNATE_BOM_CODE;
686   aSqlItem.ATTRIBUTE_CATEGORY           := aPlsqlItem.ATTRIBUTE_CATEGORY;
687   aSqlItem.ATTRIBUTE1                   := aPlsqlItem.ATTRIBUTE1;
688   aSqlItem.ATTRIBUTE2                   := aPlsqlItem.ATTRIBUTE2;
689   aSqlItem.ATTRIBUTE3                   := aPlsqlItem.ATTRIBUTE3;
690   aSqlItem.ATTRIBUTE4                   := aPlsqlItem.ATTRIBUTE4;
691   aSqlItem.ATTRIBUTE5                   := aPlsqlItem.ATTRIBUTE5;
692   aSqlItem.ATTRIBUTE6                   := aPlsqlItem.ATTRIBUTE6;
693   aSqlItem.ATTRIBUTE7                   := aPlsqlItem.ATTRIBUTE7;
694   aSqlItem.ATTRIBUTE8                   := aPlsqlItem.ATTRIBUTE8;
695   aSqlItem.ATTRIBUTE9                   := aPlsqlItem.ATTRIBUTE9;
696   aSqlItem.ATTRIBUTE10                  := aPlsqlItem.ATTRIBUTE10;
697   aSqlItem.ATTRIBUTE11                  := aPlsqlItem.ATTRIBUTE11;
698   aSqlItem.ATTRIBUTE12                  := aPlsqlItem.ATTRIBUTE12;
699   aSqlItem.ATTRIBUTE13                  := aPlsqlItem.ATTRIBUTE13;
700   aSqlItem.ATTRIBUTE14                  := aPlsqlItem.ATTRIBUTE14;
701   aSqlItem.ATTRIBUTE15                  := aPlsqlItem.ATTRIBUTE15;
702   aSqlItem.RETURN_STATUS                := aPlsqlItem.RETURN_STATUS;
703   aSqlItem.TRANSACTION_TYPE             := aPlsqlItem.TRANSACTION_TYPE;
704   aSqlItem.ROW_IDENTIFIER               := aPlsqlItem.ROW_IDENTIFIER;
705   RETURN aSqlItem;
706 END PL_TO_SQL_COMP_OPS_REC;
707 FUNCTION SQL_TO_PL_COMP_OPS_REC
708   (
709     aSqlItem BOM_BO_PUB_BOM_COMPOP_REC_TYPE)
710   RETURN BOM_BO_PUB.BOM_COMP_OPS_REC_TYPE
711 IS
712   aPlsqlItem BOM_BO_PUB.BOM_COMP_OPS_REC_TYPE;
713 BEGIN
714   aPlsqlItem.ORGANIZATION_CODE            := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
715   aPlsqlItem.ASSEMBLY_ITEM_NAME           := aSqlItem.ASSEMBLY_ITEM_NAME;
716   aPlsqlItem.START_EFFECTIVE_DATE         := aSqlItem.START_EFFECTIVE_DATE;
717   aPlsqlItem.FROM_END_ITEM_UNIT_NUMBER    := aSqlItem.FROM_END_ITEM_UNIT_NUMBER;
718   aPlsqlItem.TO_END_ITEM_UNIT_NUMBER      := aSqlItem.TO_END_ITEM_UNIT_NUMBER;
719   aPlsqlItem.OPERATION_SEQUENCE_NUMBER    := aSqlItem.OPERATION_SEQUENCE_NUMBER;
720   aPlsqlItem.ADDITIONAL_OPERATION_SEQ_NUM := aSqlItem.ADDITIONAL_OPERATION_SEQ_NUM;
721   aPlsqlItem.NEW_ADDITIONAL_OP_SEQ_NUM    := aSqlItem.NEW_ADDITIONAL_OP_SEQ_NUM;
722   aPlsqlItem.COMPONENT_ITEM_NAME          := aSqlItem.COMPONENT_ITEM_NAME;
723   aPlsqlItem.ALTERNATE_BOM_CODE           := aSqlItem.ALTERNATE_BOM_CODE;
724   aPlsqlItem.ATTRIBUTE_CATEGORY           := aSqlItem.ATTRIBUTE_CATEGORY;
725   aPlsqlItem.ATTRIBUTE1                   := aSqlItem.ATTRIBUTE1;
726   aPlsqlItem.ATTRIBUTE2                   := aSqlItem.ATTRIBUTE2;
727   aPlsqlItem.ATTRIBUTE3                   := aSqlItem.ATTRIBUTE3;
728   aPlsqlItem.ATTRIBUTE4                   := aSqlItem.ATTRIBUTE4;
729   aPlsqlItem.ATTRIBUTE5                   := aSqlItem.ATTRIBUTE5;
730   aPlsqlItem.ATTRIBUTE6                   := aSqlItem.ATTRIBUTE6;
731   aPlsqlItem.ATTRIBUTE7                   := aSqlItem.ATTRIBUTE7;
732   aPlsqlItem.ATTRIBUTE8                   := aSqlItem.ATTRIBUTE8;
733   aPlsqlItem.ATTRIBUTE9                   := aSqlItem.ATTRIBUTE9;
734   aPlsqlItem.ATTRIBUTE10                  := aSqlItem.ATTRIBUTE10;
735   aPlsqlItem.ATTRIBUTE11                  := aSqlItem.ATTRIBUTE11;
736   aPlsqlItem.ATTRIBUTE12                  := aSqlItem.ATTRIBUTE12;
737   aPlsqlItem.ATTRIBUTE13                  := aSqlItem.ATTRIBUTE13;
738   aPlsqlItem.ATTRIBUTE14                  := aSqlItem.ATTRIBUTE14;
739   aPlsqlItem.ATTRIBUTE15                  := aSqlItem.ATTRIBUTE15;
740   aPlsqlItem.RETURN_STATUS                := aSqlItem.RETURN_STATUS;
741   aPlsqlItem.TRANSACTION_TYPE             := aSqlItem.TRANSACTION_TYPE;
742   aPlsqlItem.ROW_IDENTIFIER               := aSqlItem.ROW_IDENTIFIER;
743   RETURN aPlsqlItem;
744 END SQL_TO_PL_COMP_OPS_REC;
745 FUNCTION PL_TO_SQL_COMP_OPS_TBL
746   (
747     aPlsqlItem BOM_BO_PUB.BOM_COMP_OPS_TBL_TYPE)
748   RETURN BOM_BO_PUB_BOM_COMPOP_TBL_TYPE
749 IS
750   aSqlItem BOM_BO_PUB_BOM_COMPOP_TBL_TYPE;
751 BEGIN
752   -- initialize the table
753   aSqlItem           := BOM_BO_PUB_BOM_COMPOP_TBL_TYPE();
754   IF aPlsqlItem.COUNT > 0 THEN
755     aSqlItem.EXTEND(aPlsqlItem.COUNT);
756     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
757     LOOP
758       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_COMP_OPS_REC(aPlsqlItem(I));
759     END LOOP;
760   END IF;
761   RETURN aSqlItem;
762 END PL_TO_SQL_COMP_OPS_TBL;
763 FUNCTION SQL_TO_PL_COMP_OPS_TBL
764   (
765     aSqlItem BOM_BO_PUB_BOM_COMPOP_TBL_TYPE)
766   RETURN BOM_BO_PUB.BOM_COMP_OPS_TBL_TYPE
767 IS
768   aPlsqlItem BOM_BO_PUB.BOM_COMP_OPS_TBL_TYPE;
769 BEGIN
770   FOR I IN 1..aSqlItem.COUNT
771   LOOP
772     aPlsqlItem(I) := SQL_TO_PL_COMP_OPS_REC(aSqlItem(I));
773   END LOOP;
774   RETURN aPlsqlItem;
775 END SQL_TO_PL_COMP_OPS_TBL;
776 FUNCTION PL_TO_SQL_PROD_REC
777   (
778     aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_REC_TYPE)
779   RETURN BOM_BO_PUB_BOM_PROD_REC_TYPE
780 IS
781   aSqlItem BOM_BO_PUB_BOM_PROD_REC_TYPE;
782 BEGIN
783   -- initialize the object
784   aSqlItem                    := BOM_BO_PUB_BOM_PROD_REC_TYPE(NULL, NULL, NULL,
785                                  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
786                                  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
787                                  NULL, NULL, NULL, NULL);
788   aSqlItem.ASSEMBLY_ITEM_NAME := aPlsqlItem.ASSEMBLY_ITEM_NAME;
789   aSqlItem.ORGANIZATION_ID    := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
790   aSqlItem.ATTRIBUTE_CATEGORY := aPlsqlItem.ATTRIBUTE_CATEGORY;
791   aSqlItem.ATTRIBUTE1         := aPlsqlItem.ATTRIBUTE1;
792   aSqlItem.ATTRIBUTE2         := aPlsqlItem.ATTRIBUTE2;
793   aSqlItem.ATTRIBUTE3         := aPlsqlItem.ATTRIBUTE3;
794   aSqlItem.ATTRIBUTE4         := aPlsqlItem.ATTRIBUTE4;
795   aSqlItem.ATTRIBUTE5         := aPlsqlItem.ATTRIBUTE5;
796   aSqlItem.ATTRIBUTE6         := aPlsqlItem.ATTRIBUTE6;
797   aSqlItem.ATTRIBUTE7         := aPlsqlItem.ATTRIBUTE7;
798   aSqlItem.ATTRIBUTE8         := aPlsqlItem.ATTRIBUTE8;
799   aSqlItem.ATTRIBUTE9         := aPlsqlItem.ATTRIBUTE9;
800   aSqlItem.ATTRIBUTE10        := aPlsqlItem.ATTRIBUTE10;
801   aSqlItem.ATTRIBUTE11        := aPlsqlItem.ATTRIBUTE11;
802   aSqlItem.ATTRIBUTE12        := aPlsqlItem.ATTRIBUTE12;
803   aSqlItem.ATTRIBUTE13        := aPlsqlItem.ATTRIBUTE13;
804   aSqlItem.ATTRIBUTE14        := aPlsqlItem.ATTRIBUTE14;
805   aSqlItem.ATTRIBUTE15        := aPlsqlItem.ATTRIBUTE15;
806   aSqlItem.DELETE_GROUP_NAME  := aPlsqlItem.DELETE_GROUP_NAME;
807   aSqlItem.DG_DESCRIPTION     := aPlsqlItem.DG_DESCRIPTION;
808   aSqlItem.ROW_IDENTIFIER     := aPlsqlItem.ROW_IDENTIFIER;
809   aSqlItem.TRANSACTION_TYPE   := aPlsqlItem.TRANSACTION_TYPE;
810   aSqlItem.RETURN_STATUS      := aPlsqlItem.RETURN_STATUS;
811   RETURN aSqlItem;
812 END PL_TO_SQL_PROD_REC;
813 FUNCTION SQL_TO_PL_PROD_REC
814   (
815     aSqlItem BOM_BO_PUB_BOM_PROD_REC_TYPE)
816   RETURN BOM_BO_PUB.BOM_PRODUCT_REC_TYPE
817 IS
818   aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_REC_TYPE;
819 BEGIN
820   aPlsqlItem.ASSEMBLY_ITEM_NAME := aSqlItem.ASSEMBLY_ITEM_NAME;
821   aPlsqlItem.ORGANIZATION_CODE  := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
822   aPlsqlItem.ATTRIBUTE_CATEGORY := aSqlItem.ATTRIBUTE_CATEGORY;
823   aPlsqlItem.ATTRIBUTE1         := aSqlItem.ATTRIBUTE1;
824   aPlsqlItem.ATTRIBUTE2         := aSqlItem.ATTRIBUTE2;
825   aPlsqlItem.ATTRIBUTE3         := aSqlItem.ATTRIBUTE3;
826   aPlsqlItem.ATTRIBUTE4         := aSqlItem.ATTRIBUTE4;
827   aPlsqlItem.ATTRIBUTE5         := aSqlItem.ATTRIBUTE5;
828   aPlsqlItem.ATTRIBUTE6         := aSqlItem.ATTRIBUTE6;
829   aPlsqlItem.ATTRIBUTE7         := aSqlItem.ATTRIBUTE7;
830   aPlsqlItem.ATTRIBUTE8         := aSqlItem.ATTRIBUTE8;
831   aPlsqlItem.ATTRIBUTE9         := aSqlItem.ATTRIBUTE9;
832   aPlsqlItem.ATTRIBUTE10        := aSqlItem.ATTRIBUTE10;
833   aPlsqlItem.ATTRIBUTE11        := aSqlItem.ATTRIBUTE11;
834   aPlsqlItem.ATTRIBUTE12        := aSqlItem.ATTRIBUTE12;
835   aPlsqlItem.ATTRIBUTE13        := aSqlItem.ATTRIBUTE13;
836   aPlsqlItem.ATTRIBUTE14        := aSqlItem.ATTRIBUTE14;
837   aPlsqlItem.ATTRIBUTE15        := aSqlItem.ATTRIBUTE15;
838   aPlsqlItem.DELETE_GROUP_NAME  := aSqlItem.DELETE_GROUP_NAME;
839   aPlsqlItem.DG_DESCRIPTION     := aSqlItem.DG_DESCRIPTION;
840   aPlsqlItem.ROW_IDENTIFIER     := aSqlItem.ROW_IDENTIFIER;
841   aPlsqlItem.TRANSACTION_TYPE   := aSqlItem.TRANSACTION_TYPE;
842   aPlsqlItem.RETURN_STATUS      := aSqlItem.RETURN_STATUS;
843   RETURN aPlsqlItem;
844 END SQL_TO_PL_PROD_REC;
845 FUNCTION PL_TO_SQL_PROD_MEM_REC
846   (
847     aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_MEMBER_REC_TYPE)
848   RETURN BOM_BO_PUB_BOM_PRDMEM_REC_TYPE
849 IS
850   aSqlItem BOM_BO_PUB_BOM_PRDMEM_REC_TYPE;
851 BEGIN
852   -- initialize the object
853   aSqlItem                      := BOM_BO_PUB_BOM_PRDMEM_REC_TYPE(NULL, NULL,
854                                    NULL, NULL, NULL, NULL, NULL, NULL, NULL,
855                                    NULL, NULL, NULL, NULL, NULL, NULL, NULL,
856                                    NULL, NULL, NULL, NULL, NULL, NULL, NULL,
857                                    NULL, NULL, NULL, NULL, NULL, NULL);
858   aSqlItem.ASSEMBLY_ITEM_NAME   := aPlsqlItem.ASSEMBLY_ITEM_NAME;
859   aSqlItem.ORGANIZATION_ID      := Get_Org_Id(aPlsqlItem.ORGANIZATION_CODE);
860   aSqlItem.COMPONENT_ITEM_NAME  := aPlsqlItem.COMPONENT_ITEM_NAME;
861   aSqlItem.PLANNING_PERCENT     := aPlsqlItem.PLANNING_PERCENT;
862   aSqlItem.OLD_EFFECTIVITY_DATE := aPlsqlItem.OLD_EFFECTIVITY_DATE;
863   aSqlItem.START_EFFECTIVE_DATE := aPlsqlItem.START_EFFECTIVE_DATE;
864   aSqlItem.NEW_EFFECTIVITY_DATE := aPlsqlItem.NEW_EFFECTIVITY_DATE;
865   aSqlItem.DISABLE_DATE         := aPlsqlItem.DISABLE_DATE;
866   aSqlItem.COMMENTS             := aPlsqlItem.COMMENTS;
867   aSqlItem.ATTRIBUTE_CATEGORY   := aPlsqlItem.ATTRIBUTE_CATEGORY;
868   aSqlItem.ATTRIBUTE1           := aPlsqlItem.ATTRIBUTE1;
869   aSqlItem.ATTRIBUTE2           := aPlsqlItem.ATTRIBUTE2;
870   aSqlItem.ATTRIBUTE3           := aPlsqlItem.ATTRIBUTE3;
871   aSqlItem.ATTRIBUTE4           := aPlsqlItem.ATTRIBUTE4;
872   aSqlItem.ATTRIBUTE5           := aPlsqlItem.ATTRIBUTE5;
873   aSqlItem.ATTRIBUTE6           := aPlsqlItem.ATTRIBUTE6;
874   aSqlItem.ATTRIBUTE7           := aPlsqlItem.ATTRIBUTE7;
875   aSqlItem.ATTRIBUTE8           := aPlsqlItem.ATTRIBUTE8;
876   aSqlItem.ATTRIBUTE9           := aPlsqlItem.ATTRIBUTE9;
877   aSqlItem.ATTRIBUTE10          := aPlsqlItem.ATTRIBUTE10;
878   aSqlItem.ATTRIBUTE11          := aPlsqlItem.ATTRIBUTE11;
879   aSqlItem.ATTRIBUTE12          := aPlsqlItem.ATTRIBUTE12;
880   aSqlItem.ATTRIBUTE13          := aPlsqlItem.ATTRIBUTE13;
881   aSqlItem.ATTRIBUTE14          := aPlsqlItem.ATTRIBUTE14;
882   aSqlItem.ATTRIBUTE15          := aPlsqlItem.ATTRIBUTE15;
883   aSqlItem.DELETE_GROUP_NAME    := aPlsqlItem.DELETE_GROUP_NAME;
884   aSqlItem.DG_DESCRIPTION       := aPlsqlItem.DG_DESCRIPTION;
885   aSqlItem.RETURN_STATUS        := aPlsqlItem.RETURN_STATUS;
886   aSqlItem.TRANSACTION_TYPE     := aPlsqlItem.TRANSACTION_TYPE;
887   RETURN aSqlItem;
888 END PL_TO_SQL_PROD_MEM_REC;
889 FUNCTION SQL_TO_PL_PROD_MEM_REC
890   (
891     aSqlItem BOM_BO_PUB_BOM_PRDMEM_REC_TYPE)
892   RETURN BOM_BO_PUB.BOM_PRODUCT_MEMBER_REC_TYPE
893 IS
894   aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_MEMBER_REC_TYPE;
895 BEGIN
896   aPlsqlItem.ASSEMBLY_ITEM_NAME   := aSqlItem.ASSEMBLY_ITEM_NAME;
897   aPlsqlItem.ORGANIZATION_CODE    := Get_Org_Code(aSqlItem.ORGANIZATION_ID);
898   aPlsqlItem.COMPONENT_ITEM_NAME  := aSqlItem.COMPONENT_ITEM_NAME;
899   aPlsqlItem.PLANNING_PERCENT     := aSqlItem.PLANNING_PERCENT;
900   aPlsqlItem.OLD_EFFECTIVITY_DATE := aSqlItem.OLD_EFFECTIVITY_DATE;
901   aPlsqlItem.START_EFFECTIVE_DATE := aSqlItem.START_EFFECTIVE_DATE;
902   aPlsqlItem.NEW_EFFECTIVITY_DATE := aSqlItem.NEW_EFFECTIVITY_DATE;
903   aPlsqlItem.DISABLE_DATE         := aSqlItem.DISABLE_DATE;
904   aPlsqlItem.COMMENTS             := aSqlItem.COMMENTS;
905   aPlsqlItem.ATTRIBUTE_CATEGORY   := aSqlItem.ATTRIBUTE_CATEGORY;
906   aPlsqlItem.ATTRIBUTE1           := aSqlItem.ATTRIBUTE1;
907   aPlsqlItem.ATTRIBUTE2           := aSqlItem.ATTRIBUTE2;
908   aPlsqlItem.ATTRIBUTE3           := aSqlItem.ATTRIBUTE3;
909   aPlsqlItem.ATTRIBUTE4           := aSqlItem.ATTRIBUTE4;
910   aPlsqlItem.ATTRIBUTE5           := aSqlItem.ATTRIBUTE5;
911   aPlsqlItem.ATTRIBUTE6           := aSqlItem.ATTRIBUTE6;
912   aPlsqlItem.ATTRIBUTE7           := aSqlItem.ATTRIBUTE7;
913   aPlsqlItem.ATTRIBUTE8           := aSqlItem.ATTRIBUTE8;
914   aPlsqlItem.ATTRIBUTE9           := aSqlItem.ATTRIBUTE9;
915   aPlsqlItem.ATTRIBUTE10          := aSqlItem.ATTRIBUTE10;
916   aPlsqlItem.ATTRIBUTE11          := aSqlItem.ATTRIBUTE11;
917   aPlsqlItem.ATTRIBUTE12          := aSqlItem.ATTRIBUTE12;
918   aPlsqlItem.ATTRIBUTE13          := aSqlItem.ATTRIBUTE13;
919   aPlsqlItem.ATTRIBUTE14          := aSqlItem.ATTRIBUTE14;
920   aPlsqlItem.ATTRIBUTE15          := aSqlItem.ATTRIBUTE15;
921   aPlsqlItem.DELETE_GROUP_NAME    := aSqlItem.DELETE_GROUP_NAME;
922   aPlsqlItem.DG_DESCRIPTION       := aSqlItem.DG_DESCRIPTION;
923   aPlsqlItem.RETURN_STATUS        := aSqlItem.RETURN_STATUS;
924   aPlsqlItem.TRANSACTION_TYPE     := aSqlItem.TRANSACTION_TYPE;
925   RETURN aPlsqlItem;
926 END SQL_TO_PL_PROD_MEM_REC;
927 FUNCTION PL_TO_SQL_PROD_MEM_TBL
928   (
929     aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_MEM_TAB_TYPE)
930   RETURN BOM_BO_PUB_BOM_PRDMEM_TBL_TYPE
931 IS
932   aSqlItem BOM_BO_PUB_BOM_PRDMEM_TBL_TYPE;
933 BEGIN
934   -- initialize the table
935   aSqlItem           := BOM_BO_PUB_BOM_PRDMEM_TBL_TYPE();
936   IF aPlsqlItem.COUNT > 0 THEN
937     aSqlItem.EXTEND(aPlsqlItem.COUNT);
938     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
939     LOOP
940       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_PROD_MEM_REC(aPlsqlItem(I));
941     END LOOP;
942   END IF;
943   RETURN aSqlItem;
944 END PL_TO_SQL_PROD_MEM_TBL;
945 FUNCTION SQL_TO_PL_PROD_MEM_TBL
946   (
947     aSqlItem BOM_BO_PUB_BOM_PRDMEM_TBL_TYPE)
948   RETURN BOM_BO_PUB.BOM_PRODUCT_MEM_TAB_TYPE
949 IS
950   aPlsqlItem BOM_BO_PUB.BOM_PRODUCT_MEM_TAB_TYPE;
951 BEGIN
952   FOR I IN 1..aSqlItem.COUNT
953   LOOP
954     aPlsqlItem(I) := SQL_TO_PL_PROD_MEM_REC(aSqlItem(I));
955   END LOOP;
956   RETURN aPlsqlItem;
957 END SQL_TO_PL_PROD_MEM_TBL;
958 FUNCTION PL_TO_SQL_HEADER_TBL
959   (
960     aPlsqlItem BOM_BO_PUB.BOM_HEADER_TBL_TYPE)
961   RETURN BOM_BO_PUB_BOM_HEADER_TBL_TYPE
962 IS
963   aSqlItem BOM_BO_PUB_BOM_HEADER_TBL_TYPE;
964 BEGIN
965   -- initialize the table
966   aSqlItem           := BOM_BO_PUB_BOM_HEADER_TBL_TYPE();
967   IF aPlsqlItem.COUNT > 0 THEN
968     aSqlItem.EXTEND(aPlsqlItem.COUNT);
969     FOR I IN aPlsqlItem.FIRST..aPlsqlItem.LAST
970     LOOP
971       aSqlItem(I + 1 - aPlsqlItem.FIRST) := PL_TO_SQL_HEAD_REC(aPlsqlItem(I));
972     END LOOP;
973   END IF;
974   RETURN aSqlItem;
975 END PL_TO_SQL_HEADER_TBL;
976 FUNCTION SQL_TO_PL_HEADER_TBL
977   (
978     aSqlItem BOM_BO_PUB_BOM_HEADER_TBL_TYPE)
979   RETURN BOM_BO_PUB.BOM_HEADER_TBL_TYPE
980 IS
981   aPlsqlItem BOM_BO_PUB.BOM_HEADER_TBL_TYPE;
982 BEGIN
983   FOR I IN 1..aSqlItem.COUNT
984   LOOP
985     aPlsqlItem(I) := SQL_TO_PL_HEAD_REC(aSqlItem(I));
986   END LOOP;
987   RETURN aPlsqlItem;
988 END SQL_TO_PL_HEADER_TBL;
989 PROCEDURE BOM_BO_PUB$PROCESS_BOM
990   (
991     P_BO_IDENTIFIER      VARCHAR2,
992     P_API_VERSION_NUMBER NUMBER,
993     P_INIT_MSG_LIST      INTEGER,
994     P_BOM_HEADER_TBL BOM_BO_PUB_BOM_HEADER_TBL_TYPE,
995     P_BOM_REVISION_TBL BOM_BO_PUB_BOM_REV_TBL_TYPE,
996     P_BOM_COMPONENT_TBL BOM_BO_PUB_BOM_COMPS_TBL_TYPE,
997     P_BOM_REF_DESIGNATOR_TBL BOM_BO_PUB_BOM_RF_DES_TBL_TYPE,
998     P_BOM_SUB_COMPONENT_TBL BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE,
999     P_BOM_COMP_OPS_TBL BOM_BO_PUB_BOM_COMPOP_TBL_TYPE,
1000     X_BOM_HEADER_TBL         IN OUT NOCOPY BOM_BO_PUB_BOM_HEADER_TBL_TYPE,
1001     X_BOM_REVISION_TBL       IN OUT NOCOPY BOM_BO_PUB_BOM_REV_TBL_TYPE,
1002     X_BOM_COMPONENT_TBL      IN OUT NOCOPY BOM_BO_PUB_BOM_COMPS_TBL_TYPE,
1003     X_BOM_REF_DESIGNATOR_TBL IN OUT NOCOPY BOM_BO_PUB_BOM_RF_DES_TBL_TYPE,
1004     X_BOM_SUB_COMPONENT_TBL  IN OUT NOCOPY BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE,
1005     X_BOM_COMP_OPS_TBL       IN OUT NOCOPY BOM_BO_PUB_BOM_COMPOP_TBL_TYPE,
1006     X_RETURN_STATUS          IN OUT NOCOPY VARCHAR2,
1007     X_MSG_COUNT              IN OUT NOCOPY NUMBER,
1008     X_ERROR_MESSAGE          IN OUT NOCOPY VARCHAR2,
1009     P_DEBUG          VARCHAR2,
1010     P_OUTPUT_DIR     VARCHAR2,
1011     P_DEBUG_FILENAME VARCHAR2)
1012 IS
1013   P_INIT_MSG_LIST_ BOOLEAN;
1014   P_BOM_HEADER_TBL_ BOM_BO_PUB.BOM_HEADER_TBL_TYPE                 := Bom_Bo_Pub.G_MISS_BOM_HEADER_TBL;
1015   P_BOM_REVISION_TBL_ BOM_BO_PUB.BOM_REVISION_TBL_TYPE             := Bom_Bo_Pub.G_MISS_BOM_REVISION_TBL;
1016   P_BOM_COMPONENT_TBL_ BOM_BO_PUB.BOM_COMPS_TBL_TYPE               := Bom_Bo_Pub.G_MISS_BOM_COMPONENT_TBL;
1017   P_BOM_REF_DESIGNATOR_TBL_ BOM_BO_PUB.BOM_REF_DESIGNATOR_TBL_TYPE := Bom_Bo_Pub.G_MISS_BOM_REF_DESIGNATOR_TBL;
1018   P_BOM_SUB_COMPONENT_TBL_ BOM_BO_PUB.BOM_SUB_COMPONENT_TBL_TYPE   := Bom_Bo_Pub.G_MISS_BOM_SUB_COMPONENT_TBL;
1019   P_BOM_COMP_OPS_TBL_ BOM_BO_PUB.BOM_COMP_OPS_TBL_TYPE             := Bom_Bo_Pub.G_MISS_BOM_COMP_OPS_TBL;
1020   X_BOM_HEADER_TBL_ BOM_BO_PUB.BOM_HEADER_TBL_TYPE;
1021   X_BOM_REVISION_TBL_ BOM_BO_PUB.BOM_REVISION_TBL_TYPE;
1022   X_BOM_COMPONENT_TBL_ BOM_BO_PUB.BOM_COMPS_TBL_TYPE;
1023   X_BOM_REF_DESIGNATOR_TBL_ BOM_BO_PUB.BOM_REF_DESIGNATOR_TBL_TYPE;
1024   X_BOM_SUB_COMPONENT_TBL_ BOM_BO_PUB.BOM_SUB_COMPONENT_TBL_TYPE;
1025   X_BOM_COMP_OPS_TBL_ BOM_BO_PUB.BOM_COMP_OPS_TBL_TYPE;
1026   L_ERROR_MESSAGE_LIST ERROR_HANDLER.ERROR_TBL_TYPE;
1027   L_ERROR_MESSAGE VARCHAR2(4000);
1028 BEGIN
1029   Error_Handler.Initialize;
1030 
1031   P_INIT_MSG_LIST_          := SYS.SQLJUTL.INT2BOOL(P_INIT_MSG_LIST);
1032   P_BOM_HEADER_TBL_         := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_HEADER_TBL(P_BOM_HEADER_TBL);
1033   P_BOM_REVISION_TBL_       := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_REV_TBL(P_BOM_REVISION_TBL);
1034   P_BOM_COMPONENT_TBL_      := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_COMPS_TBL(P_BOM_COMPONENT_TBL);
1035   P_BOM_REF_DESIGNATOR_TBL_ := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_RF_DES_TBL(P_BOM_REF_DESIGNATOR_TBL);
1036   P_BOM_SUB_COMPONENT_TBL_  := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_SUB_COMP_TBL(P_BOM_SUB_COMPONENT_TBL);
1037   P_BOM_COMP_OPS_TBL_       := BOM_BPEL_SYNCBILLOFMATERIALSLI.SQL_TO_PL_COMP_OPS_TBL(P_BOM_COMP_OPS_TBL);
1038   BOM_BO_PUB.PROCESS_BOM(P_BO_IDENTIFIER, P_API_VERSION_NUMBER, P_INIT_MSG_LIST_,
1039                               P_BOM_HEADER_TBL_, P_BOM_REVISION_TBL_, P_BOM_COMPONENT_TBL_,
1040                               P_BOM_REF_DESIGNATOR_TBL_, P_BOM_SUB_COMPONENT_TBL_, P_BOM_COMP_OPS_TBL_,
1041                               X_BOM_HEADER_TBL_, X_BOM_REVISION_TBL_, X_BOM_COMPONENT_TBL_,
1042                               X_BOM_REF_DESIGNATOR_TBL_, X_BOM_SUB_COMPONENT_TBL_, X_BOM_COMP_OPS_TBL_,
1043                               X_RETURN_STATUS, X_MSG_COUNT, P_DEBUG, P_OUTPUT_DIR, P_DEBUG_FILENAME);
1044 
1045   Error_Handler.Get_message_list(L_ERROR_MESSAGE_LIST);
1046 
1047   FOR i IN 1..x_msg_count
1048   LOOP
1049     L_ERROR_MESSAGE := L_ERROR_MESSAGE||l_error_message_list(i).message_text;
1050   END LOOP;
1051 
1052   g_org_id                 := NULL;
1053   g_org_code               := NULL;
1054   X_ERROR_MESSAGE          := L_ERROR_MESSAGE;
1055   X_BOM_HEADER_TBL         := BOM_BO_PUB_BOM_HEADER_TBL_TYPE();
1056   X_BOM_REVISION_TBL       := BOM_BO_PUB_BOM_REV_TBL_TYPE();
1057   X_BOM_COMPONENT_TBL      := BOM_BO_PUB_BOM_COMPS_TBL_TYPE();
1058   X_BOM_REF_DESIGNATOR_TBL := BOM_BO_PUB_BOM_RF_DES_TBL_TYPE();
1059   X_BOM_SUB_COMPONENT_TBL  := BOM_BO_PUB_BOM_SUBCMP_TBL_TYPE();
1060   X_BOM_COMP_OPS_TBL       := BOM_BO_PUB_BOM_COMPOP_TBL_TYPE();
1061   X_BOM_HEADER_TBL         := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_HEADER_TBL(X_BOM_HEADER_TBL_);
1062   X_BOM_REVISION_TBL       := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_REV_TBL(X_BOM_REVISION_TBL_);
1063   X_BOM_COMPONENT_TBL      := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_COMPS_TBL(X_BOM_COMPONENT_TBL_);
1064   X_BOM_REF_DESIGNATOR_TBL := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_RF_DES_TBL(X_BOM_REF_DESIGNATOR_TBL_);
1065   X_BOM_SUB_COMPONENT_TBL  := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_SUB_COMP_TBL(X_BOM_SUB_COMPONENT_TBL_);
1066   X_BOM_COMP_OPS_TBL       := BOM_BPEL_SYNCBILLOFMATERIALSLI.PL_TO_SQL_COMP_OPS_TBL(X_BOM_COMP_OPS_TBL_);
1067 END BOM_BO_PUB$PROCESS_BOM;
1068 
1069 
1070 
1071 
1072 END BOM_BPEL_SYNCBILLOFMATERIALSLI;