DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_TROLIN_UTIL

Source


1 PACKAGE BODY inv_trolin_util AS
2   /* $Header: INVUTRLB.pls 120.2.12000000.2 2007/01/25 11:45:44 pannapra ship $ */
3 
4   --  Global constant holding the package name
5 
6   g_pkg_name CONSTANT VARCHAR2(30) := 'INV_Trolin_Util';
7 
8   --  Procedure Clear_Dependent_Attr
9 
10   PROCEDURE clear_dependent_attr(
11     p_attr_id        IN     NUMBER := fnd_api.g_miss_num
12   , p_trolin_rec     IN     inv_move_order_pub.trolin_rec_type
13   , p_old_trolin_rec IN     inv_move_order_pub.trolin_rec_type := inv_move_order_pub.g_miss_trolin_rec
14   , x_trolin_rec     IN OUT    NOCOPY inv_move_order_pub.trolin_rec_type
15   ) IS
16     l_index        NUMBER                      := 0;
17     l_src_attr_tbl inv_globals.number_tbl_type;
18     l_dep_attr_tbl inv_globals.number_tbl_type;
19   BEGIN
20     --  Load out record
21 
22     x_trolin_rec  := p_trolin_rec;
23 
24     --  If attr_id is missing compare old and new records and for
25     --  every changed attribute clear its dependent fields.
26 
27     IF p_attr_id = fnd_api.g_miss_num THEN
28       IF NOT inv_globals.equal(p_trolin_rec.attribute1, p_old_trolin_rec.attribute1) THEN
29         l_index                  := l_index + 1;
30         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute1;
31       END IF;
32 
33       IF NOT inv_globals.equal(p_trolin_rec.attribute10, p_old_trolin_rec.attribute10) THEN
34         l_index                  := l_index + 1;
35         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute10;
36       END IF;
37 
38       IF NOT inv_globals.equal(p_trolin_rec.attribute11, p_old_trolin_rec.attribute11) THEN
39         l_index                  := l_index + 1;
40         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute11;
41       END IF;
42 
43       IF NOT inv_globals.equal(p_trolin_rec.attribute12, p_old_trolin_rec.attribute12) THEN
44         l_index                  := l_index + 1;
45         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute12;
46       END IF;
47 
48       IF NOT inv_globals.equal(p_trolin_rec.attribute13, p_old_trolin_rec.attribute13) THEN
49         l_index                  := l_index + 1;
50         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute13;
51       END IF;
52 
53       IF NOT inv_globals.equal(p_trolin_rec.attribute14, p_old_trolin_rec.attribute14) THEN
54         l_index                  := l_index + 1;
55         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute14;
56       END IF;
57 
58       IF NOT inv_globals.equal(p_trolin_rec.attribute15, p_old_trolin_rec.attribute15) THEN
59         l_index                  := l_index + 1;
60         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute15;
61       END IF;
62 
63       IF NOT inv_globals.equal(p_trolin_rec.attribute2, p_old_trolin_rec.attribute2) THEN
64         l_index                  := l_index + 1;
65         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute2;
66       END IF;
67 
68       IF NOT inv_globals.equal(p_trolin_rec.attribute3, p_old_trolin_rec.attribute3) THEN
69         l_index                  := l_index + 1;
70         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute3;
71       END IF;
72 
73       IF NOT inv_globals.equal(p_trolin_rec.attribute4, p_old_trolin_rec.attribute4) THEN
74         l_index                  := l_index + 1;
75         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute4;
76       END IF;
77 
78       IF NOT inv_globals.equal(p_trolin_rec.attribute5, p_old_trolin_rec.attribute5) THEN
79         l_index                  := l_index + 1;
80         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute5;
81       END IF;
82 
83       IF NOT inv_globals.equal(p_trolin_rec.attribute6, p_old_trolin_rec.attribute6) THEN
84         l_index                  := l_index + 1;
85         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute6;
86       END IF;
87 
88       IF NOT inv_globals.equal(p_trolin_rec.attribute7, p_old_trolin_rec.attribute7) THEN
89         l_index                  := l_index + 1;
90         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute7;
91       END IF;
92 
93       IF NOT inv_globals.equal(p_trolin_rec.attribute8, p_old_trolin_rec.attribute8) THEN
94         l_index                  := l_index + 1;
95         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute8;
96       END IF;
97 
98       IF NOT inv_globals.equal(p_trolin_rec.attribute9, p_old_trolin_rec.attribute9) THEN
99         l_index                  := l_index + 1;
100         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute9;
101       END IF;
102 
103       IF NOT inv_globals.equal(p_trolin_rec.attribute_category, p_old_trolin_rec.attribute_category) THEN
104         l_index                  := l_index + 1;
105         l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute_category;
106       END IF;
107 
108       IF NOT inv_globals.equal(p_trolin_rec.created_by, p_old_trolin_rec.created_by) THEN
109         l_index                  := l_index + 1;
110         l_src_attr_tbl(l_index)  := inv_trolin_util.g_created_by;
111       END IF;
112 
113       IF NOT inv_globals.equal(p_trolin_rec.creation_date, p_old_trolin_rec.creation_date) THEN
114         l_index                  := l_index + 1;
115         l_src_attr_tbl(l_index)  := inv_trolin_util.g_creation_date;
116       END IF;
117 
118       IF NOT inv_globals.equal(p_trolin_rec.date_required, p_old_trolin_rec.date_required) THEN
119         l_index                  := l_index + 1;
120         l_src_attr_tbl(l_index)  := inv_trolin_util.g_date_required;
121       END IF;
122 
123       IF NOT inv_globals.equal(p_trolin_rec.from_locator_id, p_old_trolin_rec.from_locator_id) THEN
124         l_index                  := l_index + 1;
125         l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_locator;
126       END IF;
127 
128       IF NOT inv_globals.equal(p_trolin_rec.from_subinventory_code, p_old_trolin_rec.from_subinventory_code) THEN
129         l_index                  := l_index + 1;
130         l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_subinventory;
131       END IF;
132 
133       IF NOT inv_globals.equal(p_trolin_rec.from_subinventory_id, p_old_trolin_rec.from_subinventory_id) THEN
134         l_index                  := l_index + 1;
135         l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_subinventory;
136       END IF;
137 
138       IF NOT inv_globals.equal(p_trolin_rec.header_id, p_old_trolin_rec.header_id) THEN
139         l_index                  := l_index + 1;
140         l_src_attr_tbl(l_index)  := inv_trolin_util.g_header;
141       END IF;
142 
143       IF NOT inv_globals.equal(p_trolin_rec.inventory_item_id, p_old_trolin_rec.inventory_item_id) THEN
144         l_index                  := l_index + 1;
145         l_src_attr_tbl(l_index)  := inv_trolin_util.g_inventory_item;
146       END IF;
147 
148       IF NOT inv_globals.equal(p_trolin_rec.last_updated_by, p_old_trolin_rec.last_updated_by) THEN
149         l_index                  := l_index + 1;
150         l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_updated_by;
151       END IF;
152 
153       IF NOT inv_globals.equal(p_trolin_rec.last_update_date, p_old_trolin_rec.last_update_date) THEN
154         l_index                  := l_index + 1;
155         l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_update_date;
156       END IF;
157 
158       IF NOT inv_globals.equal(p_trolin_rec.last_update_login, p_old_trolin_rec.last_update_login) THEN
159         l_index                  := l_index + 1;
160         l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_update_login;
161       END IF;
162 
163       IF NOT inv_globals.equal(p_trolin_rec.line_id, p_old_trolin_rec.line_id) THEN
164         l_index                  := l_index + 1;
165         l_src_attr_tbl(l_index)  := inv_trolin_util.g_line;
166       END IF;
167 
168       IF NOT inv_globals.equal(p_trolin_rec.line_number, p_old_trolin_rec.line_number) THEN
169         l_index                  := l_index + 1;
170         l_src_attr_tbl(l_index)  := inv_trolin_util.g_line_number;
171       END IF;
172 
173       IF NOT inv_globals.equal(p_trolin_rec.line_status, p_old_trolin_rec.line_status) THEN
174         l_index                  := l_index + 1;
175         l_src_attr_tbl(l_index)  := inv_trolin_util.g_line_status;
176       END IF;
177 
178       IF NOT inv_globals.equal(p_trolin_rec.lot_number, p_old_trolin_rec.lot_number) THEN
179         l_index                  := l_index + 1;
180         l_src_attr_tbl(l_index)  := inv_trolin_util.g_lot_number;
181       END IF;
182 
183       IF NOT inv_globals.equal(p_trolin_rec.organization_id, p_old_trolin_rec.organization_id) THEN
184         l_index                  := l_index + 1;
185         l_src_attr_tbl(l_index)  := inv_trolin_util.g_organization;
186       END IF;
187 
188       IF NOT inv_globals.equal(p_trolin_rec.program_application_id, p_old_trolin_rec.program_application_id) THEN
189         l_index                  := l_index + 1;
190         l_src_attr_tbl(l_index)  := inv_trolin_util.g_program_application;
191       END IF;
192 
193       IF NOT inv_globals.equal(p_trolin_rec.program_id, p_old_trolin_rec.program_id) THEN
194         l_index                  := l_index + 1;
195         l_src_attr_tbl(l_index)  := inv_trolin_util.g_program;
196       END IF;
197 
198       IF NOT inv_globals.equal(p_trolin_rec.program_update_date, p_old_trolin_rec.program_update_date) THEN
199         l_index                  := l_index + 1;
200         l_src_attr_tbl(l_index)  := inv_trolin_util.g_program_update_date;
201       END IF;
202 
203       IF NOT inv_globals.equal(p_trolin_rec.project_id, p_old_trolin_rec.project_id) THEN
204         l_index                  := l_index + 1;
205         l_src_attr_tbl(l_index)  := inv_trolin_util.g_project;
206       END IF;
207 
208       IF NOT inv_globals.equal(p_trolin_rec.quantity, p_old_trolin_rec.quantity) THEN
209         l_index                  := l_index + 1;
210         l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity;
211       END IF;
212 
213       IF NOT inv_globals.equal(p_trolin_rec.quantity_delivered, p_old_trolin_rec.quantity_delivered) THEN
214         l_index                  := l_index + 1;
215         l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity_delivered;
216       END IF;
217 
218       IF NOT inv_globals.equal(p_trolin_rec.quantity_detailed, p_old_trolin_rec.quantity_detailed) THEN
219         l_index                  := l_index + 1;
220         l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity_detailed;
221       END IF;
222 
223       IF NOT inv_globals.equal(p_trolin_rec.reason_id, p_old_trolin_rec.reason_id) THEN
224         l_index                  := l_index + 1;
225         l_src_attr_tbl(l_index)  := inv_trolin_util.g_reason;
226       END IF;
227 
228       IF NOT inv_globals.equal(p_trolin_rec.REFERENCE, p_old_trolin_rec.REFERENCE) THEN
229         l_index                  := l_index + 1;
230         l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference;
231       END IF;
232 
233       IF NOT inv_globals.equal(p_trolin_rec.reference_id, p_old_trolin_rec.reference_id) THEN
234         l_index                  := l_index + 1;
235         l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference;
236       END IF;
237 
238       IF NOT inv_globals.equal(p_trolin_rec.reference_type_code, p_old_trolin_rec.reference_type_code) THEN
239         l_index                  := l_index + 1;
240         l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference_type;
241       END IF;
242 
243       IF NOT inv_globals.equal(p_trolin_rec.request_id, p_old_trolin_rec.request_id) THEN
244         l_index                  := l_index + 1;
245         l_src_attr_tbl(l_index)  := inv_trolin_util.g_request;
246       END IF;
247 
248       IF NOT inv_globals.equal(p_trolin_rec.revision, p_old_trolin_rec.revision) THEN
249         l_index                  := l_index + 1;
250         l_src_attr_tbl(l_index)  := inv_trolin_util.g_revision;
251       END IF;
252 
253       IF NOT inv_globals.equal(p_trolin_rec.serial_number_end, p_old_trolin_rec.serial_number_end) THEN
254         l_index                  := l_index + 1;
255         l_src_attr_tbl(l_index)  := inv_trolin_util.g_serial_number_end;
256       END IF;
257 
258       IF NOT inv_globals.equal(p_trolin_rec.serial_number_start, p_old_trolin_rec.serial_number_start) THEN
259         l_index                  := l_index + 1;
260         l_src_attr_tbl(l_index)  := inv_trolin_util.g_serial_number_start;
261       END IF;
262 
263       IF NOT inv_globals.equal(p_trolin_rec.status_date, p_old_trolin_rec.status_date) THEN
264         l_index                  := l_index + 1;
265         l_src_attr_tbl(l_index)  := inv_trolin_util.g_status_date;
266       END IF;
267 
268       IF NOT inv_globals.equal(p_trolin_rec.task_id, p_old_trolin_rec.task_id) THEN
269         l_index                  := l_index + 1;
270         l_src_attr_tbl(l_index)  := inv_trolin_util.g_task;
271       END IF;
272 
273       IF NOT inv_globals.equal(p_trolin_rec.to_account_id, p_old_trolin_rec.to_account_id) THEN
274         l_index                  := l_index + 1;
275         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_account;
276       END IF;
277 
278       IF NOT inv_globals.equal(p_trolin_rec.to_locator_id, p_old_trolin_rec.to_locator_id) THEN
279         l_index                  := l_index + 1;
280         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_locator;
281       END IF;
282 
283       IF NOT inv_globals.equal(p_trolin_rec.to_subinventory_code, p_old_trolin_rec.to_subinventory_code) THEN
284         l_index                  := l_index + 1;
285         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_subinventory;
286       END IF;
287 
288       IF NOT inv_globals.equal(p_trolin_rec.to_subinventory_id, p_old_trolin_rec.to_subinventory_id) THEN
289         l_index                  := l_index + 1;
290         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_subinventory;
291       END IF;
292 
293       IF NOT inv_globals.equal(p_trolin_rec.transaction_header_id, p_old_trolin_rec.transaction_header_id) THEN
294         l_index                  := l_index + 1;
295         l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_header;
296       END IF;
297 
298       IF NOT inv_globals.equal(p_trolin_rec.uom_code, p_old_trolin_rec.uom_code) THEN
299         l_index                  := l_index + 1;
300         l_src_attr_tbl(l_index)  := inv_trolin_util.g_uom;
301       END IF;
302 
303       IF NOT inv_globals.equal(p_trolin_rec.transaction_type_id, p_old_trolin_rec.transaction_type_id) THEN
304         l_index                  := l_index + 1;
305         l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_type_id;
306       END IF;
307 
308       IF NOT inv_globals.equal(p_trolin_rec.to_organization_id, p_old_trolin_rec.to_organization_id) THEN
309         l_index                  := l_index + 1;
310         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_organization_id;
311       END IF;
312 
313       IF NOT inv_globals.equal(p_trolin_rec.primary_quantity, p_old_trolin_rec.primary_quantity) THEN
314         l_index                  := l_index + 1;
315         l_src_attr_tbl(l_index)  := inv_trolin_util.g_primary_quantity;
316       END IF;
317 
318       IF NOT inv_globals.equal(p_trolin_rec.txn_source_id, p_old_trolin_rec.txn_source_id) THEN
319         l_index                  := l_index + 1;
320         l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_id;
321       END IF;
322 
323       IF NOT inv_globals.equal(p_trolin_rec.txn_source_line_id, p_old_trolin_rec.txn_source_line_id) THEN
324         l_index                  := l_index + 1;
325         l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_line_id;
326       END IF;
327 
328       IF NOT inv_globals.equal(p_trolin_rec.txn_source_line_detail_id, p_old_trolin_rec.txn_source_line_detail_id) THEN
329         l_index                  := l_index + 1;
330         l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_line_detail_id;
331       END IF;
332 
333       IF NOT inv_globals.equal(p_trolin_rec.transaction_source_type_id, p_old_trolin_rec.transaction_source_type_id) THEN
334         l_index                  := l_index + 1;
335         l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_source_type_id;
336       END IF;
337 
338       IF NOT inv_globals.equal(p_trolin_rec.put_away_strategy_id, p_old_trolin_rec.put_away_strategy_id) THEN
339         l_index                  := l_index + 1;
340         l_src_attr_tbl(l_index)  := inv_trolin_util.g_put_away_strategy_id;
341       END IF;
342 
343       IF NOT inv_globals.equal(p_trolin_rec.pick_strategy_id, p_old_trolin_rec.pick_strategy_id) THEN
344         l_index                  := l_index + 1;
345         l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_strategy_id;
346       END IF;
347 
348       IF NOT inv_globals.equal(p_trolin_rec.unit_number, p_old_trolin_rec.unit_number) THEN
349         l_index                  := l_index + 1;
350         l_src_attr_tbl(l_index)  := inv_trolin_util.g_unit_number;
351       END IF;
352 
353       IF NOT inv_globals.equal(p_trolin_rec.ship_to_location_id, p_old_trolin_rec.ship_to_location_id) THEN
354         l_index                  := l_index + 1;
355         l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_to_location_id;
356       END IF;
357 
358       IF NOT inv_globals.equal(p_trolin_rec.from_cost_group_id, p_old_trolin_rec.from_cost_group_id) THEN
359         l_index                  := l_index + 1;
360         l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_cost_group_id;
361       END IF;
362 
363       IF NOT inv_globals.equal(p_trolin_rec.to_cost_group_id, p_old_trolin_rec.to_cost_group_id) THEN
364         l_index                  := l_index + 1;
365         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_cost_group_id;
366       END IF;
367 
368       IF NOT inv_globals.equal(p_trolin_rec.lpn_id, p_old_trolin_rec.lpn_id) THEN
369         l_index                  := l_index + 1;
370         l_src_attr_tbl(l_index)  := inv_trolin_util.g_lpn_id;
371       END IF;
372 
373       IF NOT inv_globals.equal(p_trolin_rec.to_lpn_id, p_old_trolin_rec.to_lpn_id) THEN
374         l_index                  := l_index + 1;
375         l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_lpn_id;
376       END IF;
377 
378       IF NOT inv_globals.equal(p_trolin_rec.pick_methodology_id, p_old_trolin_rec.pick_methodology_id) THEN
379         l_index                  := l_index + 1;
380         l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_methodology_id;
381       END IF;
382 
383       IF NOT inv_globals.equal(p_trolin_rec.container_item_id, p_old_trolin_rec.container_item_id) THEN
384         l_index                  := l_index + 1;
385         l_src_attr_tbl(l_index)  := inv_trolin_util.g_container_item_id;
386       END IF;
387 
388       IF NOT inv_globals.equal(p_trolin_rec.carton_grouping_id, p_old_trolin_rec.carton_grouping_id) THEN
389         l_index                  := l_index + 1;
390         l_src_attr_tbl(l_index)  := inv_trolin_util.g_carton_grouping_id;
391       END IF;
392 
393       IF NOT inv_globals.equal(p_trolin_rec.pick_slip_number, p_old_trolin_rec.pick_slip_number) THEN
394         l_index                  := l_index + 1;
395         l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_slip_number;
396       END IF;
397 
398       IF NOT inv_globals.equal(p_trolin_rec.pick_slip_date, p_old_trolin_rec.pick_slip_date) THEN
399         l_index                  := l_index + 1;
400         l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_slip_date;
401       END IF;
402 
403       IF NOT inv_globals.equal(p_trolin_rec.ship_set_id, p_old_trolin_rec.ship_set_id) THEN
404         l_index                  := l_index + 1;
405         l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_set_id;
406       END IF;
407 
408       IF NOT inv_globals.equal(p_trolin_rec.ship_model_id, p_old_trolin_rec.ship_model_id) THEN
409         l_index                  := l_index + 1;
410         l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_model_id;
411       END IF;
412 
413       IF NOT inv_globals.equal(p_trolin_rec.model_quantity, p_old_trolin_rec.model_quantity) THEN
414         l_index                  := l_index + 1;
415         l_src_attr_tbl(l_index)  := inv_trolin_util.g_model_quantity;
416       END IF;
417 
418       IF NOT inv_globals.equal(p_trolin_rec.required_quantity, p_old_trolin_rec.required_quantity) THEN
419         l_index                  := l_index + 1;
420         l_src_attr_tbl(l_index)  := inv_trolin_util.g_required_quantity;
421 END IF;
422 --INVCONV BEGIN
423       IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity, p_old_trolin_rec.secondary_quantity) THEN
424         l_index                  := l_index + 1;
425         l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity;
426       END IF;
427 
428       IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity_delivered, p_old_trolin_rec.secondary_quantity_delivered) THEN
429         l_index                  := l_index + 1;
430         l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity_delivered;
431       END IF;
432 
433       IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity_detailed, p_old_trolin_rec.secondary_quantity_detailed) THEN
434         l_index                  := l_index + 1;
435         l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity_detailed;
436       END IF;
437 
438       IF NOT inv_globals.equal(p_trolin_rec.secondary_uom, p_old_trolin_rec.secondary_uom) THEN
439         l_index                  := l_index + 1;
440         l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_uom;
441       END IF;
442 
443       IF NOT inv_globals.equal(p_trolin_rec.grade_code, p_old_trolin_rec.grade_code) THEN
444         l_index                  := l_index + 1;
445         l_src_attr_tbl(l_index)  := inv_trolin_util.g_grade_code;
446       END IF;
447 
448       IF NOT inv_globals.equal(p_trolin_rec.secondary_required_quantity, p_old_trolin_rec.secondary_required_quantity) THEN
449         l_index                  := l_index + 1;
450         l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_required_quantity;
451       END IF;
452 --INVCONV END;
453     ELSIF p_attr_id = g_attribute1 THEN
454       l_index                  := l_index + 1;
455       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute1;
456     ELSIF p_attr_id = g_attribute10 THEN
457       l_index                  := l_index + 1;
458       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute10;
459     ELSIF p_attr_id = g_attribute11 THEN
460       l_index                  := l_index + 1;
461       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute11;
462     ELSIF p_attr_id = g_attribute12 THEN
463       l_index                  := l_index + 1;
464       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute12;
465     ELSIF p_attr_id = g_attribute13 THEN
466       l_index                  := l_index + 1;
467       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute13;
468     ELSIF p_attr_id = g_attribute14 THEN
469       l_index                  := l_index + 1;
470       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute14;
471     ELSIF p_attr_id = g_attribute15 THEN
472       l_index                  := l_index + 1;
473       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute15;
474     ELSIF p_attr_id = g_attribute2 THEN
475       l_index                  := l_index + 1;
476       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute2;
477     ELSIF p_attr_id = g_attribute3 THEN
478       l_index                  := l_index + 1;
479       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute3;
480     ELSIF p_attr_id = g_attribute4 THEN
481       l_index                  := l_index + 1;
482       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute4;
483     ELSIF p_attr_id = g_attribute5 THEN
484       l_index                  := l_index + 1;
485       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute5;
486     ELSIF p_attr_id = g_attribute6 THEN
487       l_index                  := l_index + 1;
488       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute6;
489     ELSIF p_attr_id = g_attribute7 THEN
490       l_index                  := l_index + 1;
491       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute7;
492     ELSIF p_attr_id = g_attribute8 THEN
493       l_index                  := l_index + 1;
494       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute8;
495     ELSIF p_attr_id = g_attribute9 THEN
496       l_index                  := l_index + 1;
497       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute9;
498     ELSIF p_attr_id = g_attribute_category THEN
499       l_index                  := l_index + 1;
500       l_src_attr_tbl(l_index)  := inv_trolin_util.g_attribute_category;
501     ELSIF p_attr_id = g_created_by THEN
502       l_index                  := l_index + 1;
503       l_src_attr_tbl(l_index)  := inv_trolin_util.g_created_by;
504     ELSIF p_attr_id = g_creation_date THEN
505       l_index                  := l_index + 1;
506       l_src_attr_tbl(l_index)  := inv_trolin_util.g_creation_date;
507     ELSIF p_attr_id = g_date_required THEN
508       l_index                  := l_index + 1;
509       l_src_attr_tbl(l_index)  := inv_trolin_util.g_date_required;
510     ELSIF p_attr_id = g_from_locator THEN
511       l_index                  := l_index + 1;
512       l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_locator;
513     ELSIF p_attr_id = g_from_subinventory THEN
514       l_index                  := l_index + 1;
515       l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_subinventory;
516     ELSIF p_attr_id = g_from_subinventory THEN
517       l_index                  := l_index + 1;
518       l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_subinventory;
519     ELSIF p_attr_id = g_header THEN
520       l_index                  := l_index + 1;
521       l_src_attr_tbl(l_index)  := inv_trolin_util.g_header;
522     ELSIF p_attr_id = g_inventory_item THEN
523       l_index                  := l_index + 1;
524       l_src_attr_tbl(l_index)  := inv_trolin_util.g_inventory_item;
525     ELSIF p_attr_id = g_last_updated_by THEN
526       l_index                  := l_index + 1;
527       l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_updated_by;
528     ELSIF p_attr_id = g_last_update_date THEN
529       l_index                  := l_index + 1;
530       l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_update_date;
531     ELSIF p_attr_id = g_last_update_login THEN
532       l_index                  := l_index + 1;
533       l_src_attr_tbl(l_index)  := inv_trolin_util.g_last_update_login;
534     ELSIF p_attr_id = g_line THEN
535       l_index                  := l_index + 1;
536       l_src_attr_tbl(l_index)  := inv_trolin_util.g_line;
537     ELSIF p_attr_id = g_line_number THEN
538       l_index                  := l_index + 1;
539       l_src_attr_tbl(l_index)  := inv_trolin_util.g_line_number;
540     ELSIF p_attr_id = g_line_status THEN
541       l_index                  := l_index + 1;
542       l_src_attr_tbl(l_index)  := inv_trolin_util.g_line_status;
543     ELSIF p_attr_id = g_lot_number THEN
544       l_index                  := l_index + 1;
545       l_src_attr_tbl(l_index)  := inv_trolin_util.g_lot_number;
546     ELSIF p_attr_id = g_organization THEN
547       l_index                  := l_index + 1;
548       l_src_attr_tbl(l_index)  := inv_trolin_util.g_organization;
549     ELSIF p_attr_id = g_program_application THEN
550       l_index                  := l_index + 1;
551       l_src_attr_tbl(l_index)  := inv_trolin_util.g_program_application;
552     ELSIF p_attr_id = g_program THEN
553       l_index                  := l_index + 1;
554       l_src_attr_tbl(l_index)  := inv_trolin_util.g_program;
555     ELSIF p_attr_id = g_program_update_date THEN
556       l_index                  := l_index + 1;
557       l_src_attr_tbl(l_index)  := inv_trolin_util.g_program_update_date;
558     ELSIF p_attr_id = g_project THEN
559       l_index                  := l_index + 1;
560       l_src_attr_tbl(l_index)  := inv_trolin_util.g_project;
561     ELSIF p_attr_id = g_quantity THEN
562       l_index                  := l_index + 1;
563       l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity;
564     ELSIF p_attr_id = g_quantity_delivered THEN
565       l_index                  := l_index + 1;
566       l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity_delivered;
567     ELSIF p_attr_id = g_quantity_detailed THEN
568       l_index                  := l_index + 1;
569       l_src_attr_tbl(l_index)  := inv_trolin_util.g_quantity_detailed;
570     ELSIF p_attr_id = g_reason THEN
571       l_index                  := l_index + 1;
572       l_src_attr_tbl(l_index)  := inv_trolin_util.g_reason;
573     ELSIF p_attr_id = g_reference THEN
574       l_index                  := l_index + 1;
575       l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference;
576     ELSIF p_attr_id = g_reference THEN
577       l_index                  := l_index + 1;
578       l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference;
579     ELSIF p_attr_id = g_reference_type THEN
580       l_index                  := l_index + 1;
581       l_src_attr_tbl(l_index)  := inv_trolin_util.g_reference_type;
582     ELSIF p_attr_id = g_request THEN
583       l_index                  := l_index + 1;
584       l_src_attr_tbl(l_index)  := inv_trolin_util.g_request;
585     ELSIF p_attr_id = g_revision THEN
586       l_index                  := l_index + 1;
587       l_src_attr_tbl(l_index)  := inv_trolin_util.g_revision;
588     ELSIF p_attr_id = g_serial_number_end THEN
589       l_index                  := l_index + 1;
590       l_src_attr_tbl(l_index)  := inv_trolin_util.g_serial_number_end;
591     ELSIF p_attr_id = g_serial_number_start THEN
592       l_index                  := l_index + 1;
593       l_src_attr_tbl(l_index)  := inv_trolin_util.g_serial_number_start;
594     ELSIF p_attr_id = g_status_date THEN
595       l_index                  := l_index + 1;
596       l_src_attr_tbl(l_index)  := inv_trolin_util.g_status_date;
597     ELSIF p_attr_id = g_task THEN
598       l_index                  := l_index + 1;
599       l_src_attr_tbl(l_index)  := inv_trolin_util.g_task;
600     ELSIF p_attr_id = g_to_account THEN
601       l_index                  := l_index + 1;
602       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_account;
603     ELSIF p_attr_id = g_to_locator THEN
604       l_index                  := l_index + 1;
605       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_locator;
606     ELSIF p_attr_id = g_to_subinventory THEN
607       l_index                  := l_index + 1;
608       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_subinventory;
609     ELSIF p_attr_id = g_to_subinventory THEN
610       l_index                  := l_index + 1;
611       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_subinventory;
612     ELSIF p_attr_id = g_transaction_header THEN
613       l_index                  := l_index + 1;
614       l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_header;
615     ELSIF p_attr_id = g_uom THEN
616       l_index                  := l_index + 1;
617       l_src_attr_tbl(l_index)  := inv_trolin_util.g_uom;
618     ELSIF p_attr_id = g_txn_source_id THEN
619       l_index                  := l_index + 1;
620       l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_id;
621     ELSIF p_attr_id = g_txn_source_line_id THEN
622       l_index                  := l_index + 1;
623       l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_line_id;
624     ELSIF p_attr_id = g_txn_source_line_detail_id THEN
625       l_index                  := l_index + 1;
626       l_src_attr_tbl(l_index)  := inv_trolin_util.g_txn_source_line_detail_id;
627     ELSIF p_attr_id = g_transaction_type_id THEN
628       l_index                  := l_index + 1;
629       l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_type_id;
630     ELSIF p_attr_id = g_transaction_source_type_id THEN
631       l_index                  := l_index + 1;
632       l_src_attr_tbl(l_index)  := inv_trolin_util.g_transaction_source_type_id;
633     ELSIF p_attr_id = g_primary_quantity THEN
634       l_index                  := l_index + 1;
635       l_src_attr_tbl(l_index)  := inv_trolin_util.g_primary_quantity;
636     ELSIF p_attr_id = g_to_organization_id THEN
637       l_index                  := l_index + 1;
638       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_organization_id;
639     ELSIF p_attr_id = g_put_away_strategy_id THEN
640       l_index                  := l_index + 1;
641       l_src_attr_tbl(l_index)  := inv_trolin_util.g_put_away_strategy_id;
642     ELSIF p_attr_id = g_pick_strategy_id THEN
643       l_index                  := l_index + 1;
644       l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_strategy_id;
645     ELSIF p_attr_id = g_unit_number THEN
646       l_index                  := l_index + 1;
647       l_src_attr_tbl(l_index)  := inv_trolin_util.g_unit_number;
648     ELSIF p_attr_id = g_ship_to_location_id THEN
649       l_index                  := l_index + 1;
650       l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_to_location_id;
651     ELSIF p_attr_id = g_from_cost_group_id THEN
652       l_index                  := l_index + 1;
653       l_src_attr_tbl(l_index)  := inv_trolin_util.g_from_cost_group_id;
654     ELSIF p_attr_id = g_to_cost_group_id THEN
655       l_index                  := l_index + 1;
656       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_cost_group_id;
657     ELSIF p_attr_id = g_lpn_id THEN
658       l_index                  := l_index + 1;
659       l_src_attr_tbl(l_index)  := inv_trolin_util.g_lpn_id;
660     ELSIF p_attr_id = g_to_lpn_id THEN
661       l_index                  := l_index + 1;
662       l_src_attr_tbl(l_index)  := inv_trolin_util.g_to_lpn_id;
663     ELSIF p_attr_id = g_pick_methodology_id THEN
664       l_index                  := l_index + 1;
665       l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_methodology_id;
666     ELSIF p_attr_id = g_container_item_id THEN
667       l_index                  := l_index + 1;
668       l_src_attr_tbl(l_index)  := inv_trolin_util.g_container_item_id;
669     ELSIF p_attr_id = g_carton_grouping_id THEN
670       l_index                  := l_index + 1;
671       l_src_attr_tbl(l_index)  := inv_trolin_util.g_carton_grouping_id;
672     ELSIF p_attr_id = g_pick_slip_number THEN
673       l_index                  := l_index + 1;
674       l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_slip_number;
675     ELSIF p_attr_id = g_pick_slip_date THEN
676       l_index                  := l_index + 1;
677       l_src_attr_tbl(l_index)  := inv_trolin_util.g_pick_slip_date;
678     ELSIF p_attr_id = g_ship_set_id THEN
679       l_index                  := l_index + 1;
680       l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_set_id;
681     ELSIF p_attr_id = g_ship_model_id THEN
682       l_index                  := l_index + 1;
683       l_src_attr_tbl(l_index)  := inv_trolin_util.g_ship_model_id;
684     ELSIF p_attr_id = g_model_quantity THEN
685       l_index                  := l_index + 1;
686       l_src_attr_tbl(l_index)  := inv_trolin_util.g_model_quantity;
687     ELSIF p_attr_id = g_required_quantity THEN
688       l_index                  := l_index + 1;
689       l_src_attr_tbl(l_index)  := inv_trolin_util.g_required_quantity;
690 --INVCONV BEGIN
691     ELSIF p_attr_id = g_secondary_quantity THEN
692       l_index                  := l_index + 1;
693       l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity;
694     ELSIF p_attr_id = g_secondary_quantity_delivered THEN
695       l_index                  := l_index + 1;
696       l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity_delivered;
697     ELSIF p_attr_id = g_secondary_quantity_detailed THEN
698       l_index                  := l_index + 1;
699       l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_quantity_detailed;
700     ELSIF p_attr_id = g_secondary_required_quantity THEN
701       l_index                  := l_index + 1;
702       l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_required_quantity;
703     ELSIF p_attr_id = g_secondary_uom THEN
704       l_index                  := l_index + 1;
705       l_src_attr_tbl(l_index)  := inv_trolin_util.g_secondary_uom;
706     ELSIF p_attr_id = g_grade_code THEN
707       l_index                  := l_index + 1;
708       l_src_attr_tbl(l_index)  := inv_trolin_util.g_grade_code;
709 --INVCONV END
710     END IF;
711   END clear_dependent_attr;
712 
713   --  Procedure Apply_Attribute_Changes
714 
715   PROCEDURE apply_attribute_changes(p_trolin_rec IN inv_move_order_pub.trolin_rec_type, p_old_trolin_rec IN inv_move_order_pub.trolin_rec_type := inv_move_order_pub.g_miss_trolin_rec, x_trolin_rec IN OUT NOCOPY inv_move_order_pub.trolin_rec_type) IS
716   BEGIN
717     --  Load out record
718 
719     x_trolin_rec  := p_trolin_rec;
720 
721     IF NOT inv_globals.equal(p_trolin_rec.attribute1, p_old_trolin_rec.attribute1) THEN
722       NULL;
723     END IF;
724 
725     IF NOT inv_globals.equal(p_trolin_rec.attribute10, p_old_trolin_rec.attribute10) THEN
726       NULL;
727     END IF;
728 
729     IF NOT inv_globals.equal(p_trolin_rec.attribute11, p_old_trolin_rec.attribute11) THEN
730       NULL;
731     END IF;
732 
733     IF NOT inv_globals.equal(p_trolin_rec.attribute12, p_old_trolin_rec.attribute12) THEN
734       NULL;
735     END IF;
736 
737     IF NOT inv_globals.equal(p_trolin_rec.attribute13, p_old_trolin_rec.attribute13) THEN
738       NULL;
739     END IF;
740 
741     IF NOT inv_globals.equal(p_trolin_rec.attribute14, p_old_trolin_rec.attribute14) THEN
742       NULL;
743     END IF;
744 
745     IF NOT inv_globals.equal(p_trolin_rec.attribute15, p_old_trolin_rec.attribute15) THEN
746       NULL;
747     END IF;
748 
749     IF NOT inv_globals.equal(p_trolin_rec.attribute2, p_old_trolin_rec.attribute2) THEN
750       NULL;
751     END IF;
752 
753     IF NOT inv_globals.equal(p_trolin_rec.attribute3, p_old_trolin_rec.attribute3) THEN
754       NULL;
755     END IF;
756 
757     IF NOT inv_globals.equal(p_trolin_rec.attribute4, p_old_trolin_rec.attribute4) THEN
758       NULL;
759     END IF;
760 
761     IF NOT inv_globals.equal(p_trolin_rec.attribute5, p_old_trolin_rec.attribute5) THEN
762       NULL;
763     END IF;
764 
765     IF NOT inv_globals.equal(p_trolin_rec.attribute6, p_old_trolin_rec.attribute6) THEN
766       NULL;
767     END IF;
768 
769     IF NOT inv_globals.equal(p_trolin_rec.attribute7, p_old_trolin_rec.attribute7) THEN
770       NULL;
771     END IF;
772 
773     IF NOT inv_globals.equal(p_trolin_rec.attribute8, p_old_trolin_rec.attribute8) THEN
774       NULL;
775     END IF;
776 
777     IF NOT inv_globals.equal(p_trolin_rec.attribute9, p_old_trolin_rec.attribute9) THEN
778       NULL;
779     END IF;
780 
781     IF NOT inv_globals.equal(p_trolin_rec.attribute_category, p_old_trolin_rec.attribute_category) THEN
782       NULL;
783     END IF;
784 
785     IF NOT inv_globals.equal(p_trolin_rec.created_by, p_old_trolin_rec.created_by) THEN
786       NULL;
787     END IF;
788 
789     IF NOT inv_globals.equal(p_trolin_rec.creation_date, p_old_trolin_rec.creation_date) THEN
790       NULL;
791     END IF;
792 
793     IF NOT inv_globals.equal(p_trolin_rec.date_required, p_old_trolin_rec.date_required) THEN
794       NULL;
795     END IF;
796 
797     IF NOT inv_globals.equal(p_trolin_rec.from_locator_id, p_old_trolin_rec.from_locator_id) THEN
798       NULL;
799     END IF;
800 
801     IF NOT inv_globals.equal(p_trolin_rec.from_subinventory_code, p_old_trolin_rec.from_subinventory_code) THEN
802       NULL;
803     END IF;
804 
805     IF NOT inv_globals.equal(p_trolin_rec.from_subinventory_id, p_old_trolin_rec.from_subinventory_id) THEN
806       NULL;
807     END IF;
808 
809     IF NOT inv_globals.equal(p_trolin_rec.header_id, p_old_trolin_rec.header_id) THEN
810       NULL;
811     END IF;
812 
813     IF NOT inv_globals.equal(p_trolin_rec.inventory_item_id, p_old_trolin_rec.inventory_item_id) THEN
814       NULL;
815     END IF;
816 
817     IF NOT inv_globals.equal(p_trolin_rec.last_updated_by, p_old_trolin_rec.last_updated_by) THEN
818       NULL;
819     END IF;
820 
821     IF NOT inv_globals.equal(p_trolin_rec.last_update_date, p_old_trolin_rec.last_update_date) THEN
822       NULL;
823     END IF;
824 
825     IF NOT inv_globals.equal(p_trolin_rec.last_update_login, p_old_trolin_rec.last_update_login) THEN
826       NULL;
827     END IF;
828 
829     IF NOT inv_globals.equal(p_trolin_rec.line_id, p_old_trolin_rec.line_id) THEN
830       NULL;
831     END IF;
832 
833     IF NOT inv_globals.equal(p_trolin_rec.line_number, p_old_trolin_rec.line_number) THEN
834       NULL;
835     END IF;
836 
837     IF NOT inv_globals.equal(p_trolin_rec.line_status, p_old_trolin_rec.line_status) THEN
838       NULL;
839     END IF;
840 
841     IF NOT inv_globals.equal(p_trolin_rec.lot_number, p_old_trolin_rec.lot_number) THEN
842       NULL;
843     END IF;
844 
845     IF NOT inv_globals.equal(p_trolin_rec.organization_id, p_old_trolin_rec.organization_id) THEN
846       NULL;
847     END IF;
848 
849     IF NOT inv_globals.equal(p_trolin_rec.program_application_id, p_old_trolin_rec.program_application_id) THEN
850       NULL;
851     END IF;
852 
853     IF NOT inv_globals.equal(p_trolin_rec.program_id, p_old_trolin_rec.program_id) THEN
854       NULL;
855     END IF;
856 
857     IF NOT inv_globals.equal(p_trolin_rec.program_update_date, p_old_trolin_rec.program_update_date) THEN
858       NULL;
859     END IF;
860 
861     IF NOT inv_globals.equal(p_trolin_rec.project_id, p_old_trolin_rec.project_id) THEN
862       NULL;
863     END IF;
864 
865     IF NOT inv_globals.equal(p_trolin_rec.quantity, p_old_trolin_rec.quantity) THEN
866       NULL;
867     END IF;
868 
869     IF NOT inv_globals.equal(p_trolin_rec.quantity_delivered, p_old_trolin_rec.quantity_delivered) THEN
870       NULL;
871     END IF;
872 
873     IF NOT inv_globals.equal(p_trolin_rec.quantity_detailed, p_old_trolin_rec.quantity_detailed) THEN
874       NULL;
875     END IF;
876 
877     IF NOT inv_globals.equal(p_trolin_rec.reason_id, p_old_trolin_rec.reason_id) THEN
878       NULL;
879     END IF;
880 
881     IF NOT inv_globals.equal(p_trolin_rec.REFERENCE, p_old_trolin_rec.REFERENCE) THEN
882       NULL;
883     END IF;
884 
885     IF NOT inv_globals.equal(p_trolin_rec.reference_id, p_old_trolin_rec.reference_id) THEN
886       NULL;
887     END IF;
888 
889     IF NOT inv_globals.equal(p_trolin_rec.reference_type_code, p_old_trolin_rec.reference_type_code) THEN
890       NULL;
891     END IF;
892 
893     IF NOT inv_globals.equal(p_trolin_rec.request_id, p_old_trolin_rec.request_id) THEN
894       NULL;
895     END IF;
896 
897     IF NOT inv_globals.equal(p_trolin_rec.revision, p_old_trolin_rec.revision) THEN
898       NULL;
899     END IF;
900 
901     IF NOT inv_globals.equal(p_trolin_rec.serial_number_end, p_old_trolin_rec.serial_number_end) THEN
902       NULL;
903     END IF;
904 
905     IF NOT inv_globals.equal(p_trolin_rec.serial_number_start, p_old_trolin_rec.serial_number_start) THEN
906       NULL;
907     END IF;
908 
909     IF NOT inv_globals.equal(p_trolin_rec.status_date, p_old_trolin_rec.status_date) THEN
910       NULL;
911     END IF;
912 
913     IF NOT inv_globals.equal(p_trolin_rec.task_id, p_old_trolin_rec.task_id) THEN
914       NULL;
915     END IF;
916 
917     IF NOT inv_globals.equal(p_trolin_rec.to_account_id, p_old_trolin_rec.to_account_id) THEN
918       NULL;
919     END IF;
920 
921     IF NOT inv_globals.equal(p_trolin_rec.to_locator_id, p_old_trolin_rec.to_locator_id) THEN
922       NULL;
923     END IF;
924 
925     IF NOT inv_globals.equal(p_trolin_rec.to_subinventory_code, p_old_trolin_rec.to_subinventory_code) THEN
926       NULL;
927     END IF;
928 
929     IF NOT inv_globals.equal(p_trolin_rec.to_subinventory_id, p_old_trolin_rec.to_subinventory_id) THEN
930       NULL;
931     END IF;
932 
933     IF NOT inv_globals.equal(p_trolin_rec.transaction_header_id, p_old_trolin_rec.transaction_header_id) THEN
934       NULL;
935     END IF;
936 
937     IF NOT inv_globals.equal(p_trolin_rec.uom_code, p_old_trolin_rec.uom_code) THEN
938       NULL;
939     END IF;
940 
941     IF NOT inv_globals.equal(p_trolin_rec.transaction_type_id, p_old_trolin_rec.transaction_type_id) THEN
942       NULL;
943     END IF;
944 
945     IF NOT inv_globals.equal(p_trolin_rec.transaction_source_type_id, p_old_trolin_rec.transaction_source_type_id) THEN
946       NULL;
947     END IF;
948 
949     IF NOT inv_globals.equal(p_trolin_rec.txn_source_id, p_old_trolin_rec.txn_source_id) THEN
950       NULL;
951     END IF;
952 
953     IF NOT inv_globals.equal(p_trolin_rec.txn_source_line_id, p_old_trolin_rec.txn_source_line_id) THEN
954       NULL;
955     END IF;
956 
957     IF NOT inv_globals.equal(p_trolin_rec.txn_source_line_detail_id, p_old_trolin_rec.txn_source_line_detail_id) THEN
958       NULL;
959     END IF;
960 
961     IF NOT inv_globals.equal(p_trolin_rec.to_organization_id, p_old_trolin_rec.to_organization_id) THEN
962       NULL;
963     END IF;
964 
965     IF NOT inv_globals.equal(p_trolin_rec.primary_quantity, p_old_trolin_rec.primary_quantity) THEN
966       NULL;
967     END IF;
968 
969     IF NOT inv_globals.equal(p_trolin_rec.pick_strategy_id, p_old_trolin_rec.pick_strategy_id) THEN
970       NULL;
971     END IF;
972 
973     IF NOT inv_globals.equal(p_trolin_rec.put_away_strategy_id, p_old_trolin_rec.put_away_strategy_id) THEN
974       NULL;
975     END IF;
976 
977     IF NOT inv_globals.equal(p_trolin_rec.unit_number, p_old_trolin_rec.unit_number) THEN
978       NULL;
979     END IF;
980 
981     IF NOT inv_globals.equal(p_trolin_rec.ship_to_location_id, p_old_trolin_rec.ship_to_location_id) THEN
982       NULL;
983     END IF;
984 
985     IF NOT inv_globals.equal(p_trolin_rec.from_cost_group_id, p_old_trolin_rec.from_cost_group_id) THEN
986       NULL;
987     END IF;
988 
989     IF NOT inv_globals.equal(p_trolin_rec.to_cost_group_id, p_old_trolin_rec.to_cost_group_id) THEN
990       NULL;
991     END IF;
992 
993     IF NOT inv_globals.equal(p_trolin_rec.lpn_id, p_old_trolin_rec.lpn_id) THEN
994       NULL;
995     END IF;
996 
997     IF NOT inv_globals.equal(p_trolin_rec.to_lpn_id, p_old_trolin_rec.to_lpn_id) THEN
998       NULL;
999     END IF;
1000 
1001     IF NOT inv_globals.equal(p_trolin_rec.pick_methodology_id, p_old_trolin_rec.pick_methodology_id) THEN
1002       NULL;
1003     END IF;
1004 
1005     IF NOT inv_globals.equal(p_trolin_rec.container_item_id, p_old_trolin_rec.container_item_id) THEN
1006       NULL;
1007     END IF;
1008 
1009     IF NOT inv_globals.equal(p_trolin_rec.carton_grouping_id, p_old_trolin_rec.carton_grouping_id) THEN
1010       NULL;
1011     END IF;
1012 
1013     IF NOT inv_globals.equal(p_trolin_rec.pick_slip_number, p_old_trolin_rec.pick_slip_number) THEN
1014       NULL;
1015     END IF;
1016 
1017     IF NOT inv_globals.equal(p_trolin_rec.pick_slip_date, p_old_trolin_rec.pick_slip_date) THEN
1018       NULL;
1019     END IF;
1020 
1021     IF NOT inv_globals.equal(p_trolin_rec.ship_set_id, p_old_trolin_rec.ship_set_id) THEN
1022       NULL;
1023     END IF;
1024 
1025     IF NOT inv_globals.equal(p_trolin_rec.ship_model_id, p_old_trolin_rec.ship_model_id) THEN
1026       NULL;
1027     END IF;
1028 
1029     IF NOT inv_globals.equal(p_trolin_rec.model_quantity, p_old_trolin_rec.model_quantity) THEN
1030       NULL;
1031     END IF;
1032 
1033     IF NOT inv_globals.equal(p_trolin_rec.required_quantity, p_old_trolin_rec.required_quantity) THEN
1034       NULL;
1035 END IF;
1036 --INVCONV BEGIN
1037    IF NOT inv_globals.equal(p_trolin_rec.secondary_uom, p_old_trolin_rec.secondary_uom) THEN
1038       NULL;
1039     END IF;
1040 
1041     IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity, p_old_trolin_rec.secondary_quantity) THEN
1042       NULL;
1043     END IF;
1044 
1045     IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity_delivered, p_old_trolin_rec.secondary_quantity_delivered) THEN
1046       NULL;
1047     END IF;
1048 
1049     IF NOT inv_globals.equal(p_trolin_rec.secondary_quantity_detailed, p_old_trolin_rec.secondary_quantity_detailed) THEN
1050       NULL;
1051     END IF;
1052 
1053     IF NOT inv_globals.equal(p_trolin_rec.grade_code, p_old_trolin_rec.grade_code) THEN
1054       NULL;
1055     END IF;
1056 
1057     IF NOT inv_globals.equal(p_trolin_rec.secondary_required_quantity, p_old_trolin_rec.secondary_required_quantity) THEN
1058       NULL;
1059     END IF;
1060 
1061 --INVCONV END;
1062 
1063   END apply_attribute_changes;
1064 
1065   --  Function Complete_Record
1066 
1067   FUNCTION complete_record(p_trolin_rec IN inv_move_order_pub.trolin_rec_type, p_old_trolin_rec IN inv_move_order_pub.trolin_rec_type)
1068     RETURN inv_move_order_pub.trolin_rec_type IS
1069     l_trolin_rec inv_move_order_pub.trolin_rec_type := p_trolin_rec;
1070   BEGIN
1071     IF l_trolin_rec.attribute1 = fnd_api.g_miss_char THEN
1072       l_trolin_rec.attribute1  := p_old_trolin_rec.attribute1;
1073     END IF;
1074 
1075     IF l_trolin_rec.attribute10 = fnd_api.g_miss_char THEN
1076       l_trolin_rec.attribute10  := p_old_trolin_rec.attribute10;
1077     END IF;
1078 
1079     IF l_trolin_rec.attribute11 = fnd_api.g_miss_char THEN
1080       l_trolin_rec.attribute11  := p_old_trolin_rec.attribute11;
1081     END IF;
1082 
1083     IF l_trolin_rec.attribute12 = fnd_api.g_miss_char THEN
1084       l_trolin_rec.attribute12  := p_old_trolin_rec.attribute12;
1085     END IF;
1086 
1087     IF l_trolin_rec.attribute13 = fnd_api.g_miss_char THEN
1088       l_trolin_rec.attribute13  := p_old_trolin_rec.attribute13;
1089     END IF;
1090 
1091     IF l_trolin_rec.attribute14 = fnd_api.g_miss_char THEN
1092       l_trolin_rec.attribute14  := p_old_trolin_rec.attribute14;
1093     END IF;
1094 
1095     IF l_trolin_rec.attribute15 = fnd_api.g_miss_char THEN
1096       l_trolin_rec.attribute15  := p_old_trolin_rec.attribute15;
1097     END IF;
1098 
1099     IF l_trolin_rec.attribute2 = fnd_api.g_miss_char THEN
1100       l_trolin_rec.attribute2  := p_old_trolin_rec.attribute2;
1101     END IF;
1102 
1103     IF l_trolin_rec.attribute3 = fnd_api.g_miss_char THEN
1104       l_trolin_rec.attribute3  := p_old_trolin_rec.attribute3;
1105     END IF;
1106 
1107     IF l_trolin_rec.attribute4 = fnd_api.g_miss_char THEN
1108       l_trolin_rec.attribute4  := p_old_trolin_rec.attribute4;
1109     END IF;
1110 
1111     IF l_trolin_rec.attribute5 = fnd_api.g_miss_char THEN
1112       l_trolin_rec.attribute5  := p_old_trolin_rec.attribute5;
1113     END IF;
1114 
1115     IF l_trolin_rec.attribute6 = fnd_api.g_miss_char THEN
1116       l_trolin_rec.attribute6  := p_old_trolin_rec.attribute6;
1117     END IF;
1118 
1119     IF l_trolin_rec.attribute7 = fnd_api.g_miss_char THEN
1120       l_trolin_rec.attribute7  := p_old_trolin_rec.attribute7;
1121     END IF;
1122 
1123     IF l_trolin_rec.attribute8 = fnd_api.g_miss_char THEN
1124       l_trolin_rec.attribute8  := p_old_trolin_rec.attribute8;
1125     END IF;
1126 
1127     IF l_trolin_rec.attribute9 = fnd_api.g_miss_char THEN
1128       l_trolin_rec.attribute9  := p_old_trolin_rec.attribute9;
1129     END IF;
1130 
1131     IF l_trolin_rec.attribute_category = fnd_api.g_miss_char THEN
1132       l_trolin_rec.attribute_category  := p_old_trolin_rec.attribute_category;
1133     END IF;
1134 
1135     IF l_trolin_rec.created_by = fnd_api.g_miss_num THEN
1136       l_trolin_rec.created_by  := p_old_trolin_rec.created_by;
1137     END IF;
1138 
1139     IF l_trolin_rec.creation_date = fnd_api.g_miss_date THEN
1140       l_trolin_rec.creation_date  := p_old_trolin_rec.creation_date;
1141     END IF;
1142 
1143     IF l_trolin_rec.date_required = fnd_api.g_miss_date THEN
1144       l_trolin_rec.date_required  := p_old_trolin_rec.date_required;
1145     END IF;
1146 
1147     IF l_trolin_rec.from_locator_id = fnd_api.g_miss_num THEN
1148       l_trolin_rec.from_locator_id  := p_old_trolin_rec.from_locator_id;
1149     END IF;
1150 
1151     IF l_trolin_rec.from_subinventory_code = fnd_api.g_miss_char THEN
1152       l_trolin_rec.from_subinventory_code  := p_old_trolin_rec.from_subinventory_code;
1153     END IF;
1154 
1155     IF l_trolin_rec.from_subinventory_id = fnd_api.g_miss_num THEN
1156       l_trolin_rec.from_subinventory_id  := p_old_trolin_rec.from_subinventory_id;
1157     END IF;
1158 
1159     IF l_trolin_rec.header_id = fnd_api.g_miss_num THEN
1160       l_trolin_rec.header_id  := p_old_trolin_rec.header_id;
1161     END IF;
1162 
1163     IF l_trolin_rec.inventory_item_id = fnd_api.g_miss_num THEN
1164       l_trolin_rec.inventory_item_id  := p_old_trolin_rec.inventory_item_id;
1165     END IF;
1166 
1167     IF l_trolin_rec.last_updated_by = fnd_api.g_miss_num THEN
1168       l_trolin_rec.last_updated_by  := p_old_trolin_rec.last_updated_by;
1169     END IF;
1170 
1171     IF l_trolin_rec.last_update_date = fnd_api.g_miss_date THEN
1172       l_trolin_rec.last_update_date  := p_old_trolin_rec.last_update_date;
1173     END IF;
1174 
1175     IF l_trolin_rec.last_update_login = fnd_api.g_miss_num THEN
1176       l_trolin_rec.last_update_login  := p_old_trolin_rec.last_update_login;
1177     END IF;
1178 
1179     IF l_trolin_rec.line_id = fnd_api.g_miss_num THEN
1180       l_trolin_rec.line_id  := p_old_trolin_rec.line_id;
1181     END IF;
1182 
1183     IF l_trolin_rec.line_number = fnd_api.g_miss_num THEN
1184       l_trolin_rec.line_number  := p_old_trolin_rec.line_number;
1185     END IF;
1186 
1187     IF l_trolin_rec.line_status = fnd_api.g_miss_num THEN
1188       l_trolin_rec.line_status  := p_old_trolin_rec.line_status;
1189     END IF;
1190 
1191     IF l_trolin_rec.lot_number = fnd_api.g_miss_char THEN
1192       l_trolin_rec.lot_number  := p_old_trolin_rec.lot_number;
1193     END IF;
1194 
1195     IF l_trolin_rec.organization_id = fnd_api.g_miss_num THEN
1196       l_trolin_rec.organization_id  := p_old_trolin_rec.organization_id;
1197     END IF;
1198 
1199     IF l_trolin_rec.program_application_id = fnd_api.g_miss_num THEN
1200       l_trolin_rec.program_application_id  := p_old_trolin_rec.program_application_id;
1201     END IF;
1202 
1203     IF l_trolin_rec.program_id = fnd_api.g_miss_num THEN
1204       l_trolin_rec.program_id  := p_old_trolin_rec.program_id;
1205     END IF;
1206 
1207     IF l_trolin_rec.program_update_date = fnd_api.g_miss_date THEN
1208       l_trolin_rec.program_update_date  := p_old_trolin_rec.program_update_date;
1209     END IF;
1210 
1211     IF l_trolin_rec.project_id = fnd_api.g_miss_num THEN
1212       l_trolin_rec.project_id  := p_old_trolin_rec.project_id;
1213     END IF;
1214 
1215     IF l_trolin_rec.quantity = fnd_api.g_miss_num THEN
1216       l_trolin_rec.quantity  := p_old_trolin_rec.quantity;
1217     END IF;
1218 
1219     IF l_trolin_rec.quantity_delivered = fnd_api.g_miss_num THEN
1220       l_trolin_rec.quantity_delivered  := p_old_trolin_rec.quantity_delivered;
1221     END IF;
1222 
1223     IF l_trolin_rec.quantity_detailed = fnd_api.g_miss_num THEN
1224       l_trolin_rec.quantity_detailed  := p_old_trolin_rec.quantity_detailed;
1225     END IF;
1226 
1227     IF l_trolin_rec.reason_id = fnd_api.g_miss_num THEN
1228       l_trolin_rec.reason_id  := p_old_trolin_rec.reason_id;
1229     END IF;
1230 
1231     IF l_trolin_rec.REFERENCE = fnd_api.g_miss_char THEN
1232       l_trolin_rec.REFERENCE  := p_old_trolin_rec.REFERENCE;
1233     END IF;
1234 
1235     IF l_trolin_rec.reference_id = fnd_api.g_miss_num THEN
1236       l_trolin_rec.reference_id  := p_old_trolin_rec.reference_id;
1237     END IF;
1238 
1239     IF l_trolin_rec.reference_type_code = fnd_api.g_miss_num THEN
1240       l_trolin_rec.reference_type_code  := p_old_trolin_rec.reference_type_code;
1241     END IF;
1242 
1243     IF l_trolin_rec.request_id = fnd_api.g_miss_num THEN
1244       l_trolin_rec.request_id  := p_old_trolin_rec.request_id;
1245     END IF;
1246 
1247     IF l_trolin_rec.revision = fnd_api.g_miss_char THEN
1248       l_trolin_rec.revision  := p_old_trolin_rec.revision;
1249     END IF;
1250 
1251     IF l_trolin_rec.serial_number_end = fnd_api.g_miss_char THEN
1252       l_trolin_rec.serial_number_end  := p_old_trolin_rec.serial_number_end;
1253     END IF;
1254 
1255     IF l_trolin_rec.serial_number_start = fnd_api.g_miss_char THEN
1256       l_trolin_rec.serial_number_start  := p_old_trolin_rec.serial_number_start;
1257     END IF;
1258 
1259     IF l_trolin_rec.status_date = fnd_api.g_miss_date THEN
1260       l_trolin_rec.status_date  := p_old_trolin_rec.status_date;
1261     END IF;
1262 
1263     IF l_trolin_rec.task_id = fnd_api.g_miss_num THEN
1264       l_trolin_rec.task_id  := p_old_trolin_rec.task_id;
1265     END IF;
1266 
1267     IF l_trolin_rec.to_account_id = fnd_api.g_miss_num THEN
1268       l_trolin_rec.to_account_id  := p_old_trolin_rec.to_account_id;
1269     END IF;
1270 
1271     IF l_trolin_rec.to_locator_id = fnd_api.g_miss_num THEN
1272       l_trolin_rec.to_locator_id  := p_old_trolin_rec.to_locator_id;
1273     END IF;
1274 
1275     IF l_trolin_rec.to_subinventory_code = fnd_api.g_miss_char THEN
1276       l_trolin_rec.to_subinventory_code  := p_old_trolin_rec.to_subinventory_code;
1277     END IF;
1278 
1279     IF l_trolin_rec.to_subinventory_id = fnd_api.g_miss_num THEN
1280       l_trolin_rec.to_subinventory_id  := p_old_trolin_rec.to_subinventory_id;
1281     END IF;
1282 
1283     IF l_trolin_rec.transaction_header_id = fnd_api.g_miss_num THEN
1284       l_trolin_rec.transaction_header_id  := p_old_trolin_rec.transaction_header_id;
1285     END IF;
1286 
1287     IF l_trolin_rec.uom_code = fnd_api.g_miss_char THEN
1288       l_trolin_rec.uom_code  := p_old_trolin_rec.uom_code;
1289     END IF;
1290 
1291     IF l_trolin_rec.transaction_type_id = fnd_api.g_miss_num THEN
1292       l_trolin_rec.transaction_type_id  := p_old_trolin_rec.transaction_type_id;
1293     END IF;
1294 
1295     IF l_trolin_rec.transaction_source_type_id = fnd_api.g_miss_num THEN
1296       l_trolin_rec.transaction_source_type_id  := p_old_trolin_rec.transaction_source_type_id;
1297     END IF;
1298 
1299     IF l_trolin_rec.txn_source_id = fnd_api.g_miss_num THEN
1300       l_trolin_rec.txn_source_id  := p_old_trolin_rec.txn_source_id;
1301     END IF;
1302 
1303     IF l_trolin_rec.txn_source_line_id = fnd_api.g_miss_num THEN
1304       l_trolin_rec.txn_source_line_id  := p_old_trolin_rec.txn_source_line_id;
1305     END IF;
1306 
1307     IF l_trolin_rec.txn_source_line_detail_id = fnd_api.g_miss_num THEN
1308       l_trolin_rec.txn_source_line_detail_id  := p_old_trolin_rec.txn_source_line_detail_id;
1309     END IF;
1310 
1311     IF l_trolin_rec.primary_quantity = fnd_api.g_miss_num THEN
1312       l_trolin_rec.primary_quantity  := p_old_trolin_rec.primary_quantity;
1313     END IF;
1314 
1315     IF l_trolin_rec.to_organization_id = fnd_api.g_miss_num THEN
1316       l_trolin_rec.to_organization_id  := p_old_trolin_rec.to_organization_id;
1317     END IF;
1318 
1319     IF l_trolin_rec.pick_strategy_id = fnd_api.g_miss_num THEN
1320       l_trolin_rec.pick_strategy_id  := p_old_trolin_rec.pick_strategy_id;
1321     END IF;
1322 
1323     IF l_trolin_rec.put_away_strategy_id = fnd_api.g_miss_num THEN
1324       l_trolin_rec.put_away_strategy_id  := p_old_trolin_rec.put_away_strategy_id;
1325     END IF;
1326 
1327     IF l_trolin_rec.unit_number = fnd_api.g_miss_char THEN
1328       l_trolin_rec.unit_number  := p_old_trolin_rec.unit_number;
1329     END IF;
1330 
1331     IF l_trolin_rec.ship_to_location_id = fnd_api.g_miss_num THEN
1332       l_trolin_rec.ship_to_location_id  := p_old_trolin_rec.ship_to_location_id;
1333     END IF;
1334 
1335     IF l_trolin_rec.from_cost_group_id = fnd_api.g_miss_num THEN
1336       l_trolin_rec.from_cost_group_id  := p_old_trolin_rec.from_cost_group_id;
1337     END IF;
1338 
1339     IF l_trolin_rec.to_cost_group_id = fnd_api.g_miss_num THEN
1340       l_trolin_rec.to_cost_group_id  := p_old_trolin_rec.to_cost_group_id;
1341     END IF;
1342 
1343     IF l_trolin_rec.lpn_id = fnd_api.g_miss_num THEN
1344       l_trolin_rec.lpn_id  := p_old_trolin_rec.lpn_id;
1345     END IF;
1346 
1347     IF l_trolin_rec.to_lpn_id = fnd_api.g_miss_num THEN
1348       l_trolin_rec.to_lpn_id  := p_old_trolin_rec.to_lpn_id;
1349     END IF;
1350 
1351     IF l_trolin_rec.pick_methodology_id = fnd_api.g_miss_num THEN
1352       l_trolin_rec.pick_methodology_id  := p_old_trolin_rec.pick_methodology_id;
1353     END IF;
1354 
1355     IF l_trolin_rec.container_item_id = fnd_api.g_miss_num THEN
1356       l_trolin_rec.container_item_id  := p_old_trolin_rec.container_item_id;
1357     END IF;
1358 
1359     IF l_trolin_rec.carton_grouping_id = fnd_api.g_miss_num THEN
1360       l_trolin_rec.carton_grouping_id  := p_old_trolin_rec.carton_grouping_id;
1361     END IF;
1362 
1363 --INVCONV BEGIN
1364     IF l_trolin_rec.secondary_quantity = fnd_api.g_miss_num THEN
1365       l_trolin_rec.secondary_quantity  := p_old_trolin_rec.secondary_quantity;
1366     END IF;
1367 
1368     --Bug #4565509 - Should update secondary quantities from old records
1369     IF l_trolin_rec.secondary_quantity_delivered = fnd_api.g_miss_num THEN
1370       l_trolin_rec.secondary_quantity_delivered  := p_old_trolin_rec.secondary_quantity_delivered;
1371     END IF;
1372 
1373     IF l_trolin_rec.secondary_quantity_detailed = fnd_api.g_miss_num THEN
1374       l_trolin_rec.secondary_quantity_detailed  := p_old_trolin_rec.secondary_quantity_detailed;
1375     END IF;
1376 
1377     IF l_trolin_rec.secondary_uom = fnd_api.g_miss_char THEN
1378       l_trolin_rec.secondary_uom  := p_old_trolin_rec.secondary_uom;
1379     END IF;
1380 
1381     IF l_trolin_rec.grade_code = fnd_api.g_miss_char THEN
1382       l_trolin_rec.grade_code  := p_old_trolin_rec.grade_code;
1383     END IF;
1384 
1385 -- INVCONV END;
1386 
1387     RETURN l_trolin_rec;
1388   END complete_record;
1389 
1390   --  Function Convert_Miss_To_Null
1391 
1392   FUNCTION convert_miss_to_null(p_trolin_rec IN inv_move_order_pub.trolin_rec_type)
1393     RETURN inv_move_order_pub.trolin_rec_type IS
1394     l_trolin_rec inv_move_order_pub.trolin_rec_type := p_trolin_rec;
1395   BEGIN
1396     /*inv_debug.message('in convert');*/
1397     IF l_trolin_rec.attribute1 = fnd_api.g_miss_char THEN
1398       l_trolin_rec.attribute1  := NULL;
1399     END IF;
1400 
1401     IF l_trolin_rec.attribute10 = fnd_api.g_miss_char THEN
1402       l_trolin_rec.attribute10  := NULL;
1403     END IF;
1404 
1405     IF l_trolin_rec.attribute11 = fnd_api.g_miss_char THEN
1406       l_trolin_rec.attribute11  := NULL;
1407     END IF;
1408 
1409     IF l_trolin_rec.attribute12 = fnd_api.g_miss_char THEN
1410       l_trolin_rec.attribute12  := NULL;
1411     END IF;
1412 
1413     IF l_trolin_rec.attribute13 = fnd_api.g_miss_char THEN
1414       l_trolin_rec.attribute13  := NULL;
1415     END IF;
1416 
1417     IF l_trolin_rec.attribute14 = fnd_api.g_miss_char THEN
1418       l_trolin_rec.attribute14  := NULL;
1419     END IF;
1420 
1421     IF l_trolin_rec.attribute15 = fnd_api.g_miss_char THEN
1422       l_trolin_rec.attribute15  := NULL;
1423     END IF;
1424 
1425     IF l_trolin_rec.attribute2 = fnd_api.g_miss_char THEN
1426       l_trolin_rec.attribute2  := NULL;
1427     END IF;
1428 
1429     IF l_trolin_rec.attribute3 = fnd_api.g_miss_char THEN
1430       l_trolin_rec.attribute3  := NULL;
1431     END IF;
1432 
1433     IF l_trolin_rec.attribute4 = fnd_api.g_miss_char THEN
1434       l_trolin_rec.attribute4  := NULL;
1435     END IF;
1436 
1437     IF l_trolin_rec.attribute5 = fnd_api.g_miss_char THEN
1438       l_trolin_rec.attribute5  := NULL;
1439     END IF;
1440 
1441     IF l_trolin_rec.attribute6 = fnd_api.g_miss_char THEN
1442       l_trolin_rec.attribute6  := NULL;
1443     END IF;
1444 
1445     IF l_trolin_rec.attribute7 = fnd_api.g_miss_char THEN
1446       l_trolin_rec.attribute7  := NULL;
1447     END IF;
1448 
1449     IF l_trolin_rec.attribute8 = fnd_api.g_miss_char THEN
1450       l_trolin_rec.attribute8  := NULL;
1451     END IF;
1452 
1453     IF l_trolin_rec.attribute9 = fnd_api.g_miss_char THEN
1454       l_trolin_rec.attribute9  := NULL;
1455     END IF;
1456 
1457     IF l_trolin_rec.attribute_category = fnd_api.g_miss_char THEN
1458       l_trolin_rec.attribute_category  := NULL;
1459     END IF;
1460 
1461     IF l_trolin_rec.created_by = fnd_api.g_miss_num THEN
1462       l_trolin_rec.created_by  := NULL;
1463     END IF;
1464 
1465     IF l_trolin_rec.creation_date = fnd_api.g_miss_date THEN
1466       l_trolin_rec.creation_date  := NULL;
1467     END IF;
1468 
1469     IF l_trolin_rec.date_required = fnd_api.g_miss_date THEN
1470       l_trolin_rec.date_required  := NULL;
1471     END IF;
1472 
1473     IF l_trolin_rec.from_locator_id = fnd_api.g_miss_num THEN
1474       l_trolin_rec.from_locator_id  := NULL;
1475     END IF;
1476 
1477     IF l_trolin_rec.from_subinventory_code = fnd_api.g_miss_char THEN
1478       l_trolin_rec.from_subinventory_code  := NULL;
1479     END IF;
1480 
1481     IF l_trolin_rec.from_subinventory_id = fnd_api.g_miss_num THEN
1482       l_trolin_rec.from_subinventory_id  := NULL;
1483     END IF;
1484 
1485     IF l_trolin_rec.header_id = fnd_api.g_miss_num THEN
1486       l_trolin_rec.header_id  := NULL;
1487     END IF;
1488 
1489     IF l_trolin_rec.inventory_item_id = fnd_api.g_miss_num THEN
1490       l_trolin_rec.inventory_item_id  := NULL;
1491     END IF;
1492 
1493     IF l_trolin_rec.last_updated_by = fnd_api.g_miss_num THEN
1494       l_trolin_rec.last_updated_by  := NULL;
1495     END IF;
1496 
1497     IF l_trolin_rec.last_update_date = fnd_api.g_miss_date THEN
1498       l_trolin_rec.last_update_date  := NULL;
1499     END IF;
1500 
1501     IF l_trolin_rec.last_update_login = fnd_api.g_miss_num THEN
1502       l_trolin_rec.last_update_login  := NULL;
1503     END IF;
1504 
1505     IF l_trolin_rec.line_id = fnd_api.g_miss_num THEN
1506       l_trolin_rec.line_id  := NULL;
1507     END IF;
1508 
1509     IF l_trolin_rec.line_number = fnd_api.g_miss_num THEN
1510       l_trolin_rec.line_number  := NULL;
1511     END IF;
1512 
1513     IF l_trolin_rec.line_status = fnd_api.g_miss_num THEN
1514       l_trolin_rec.line_status  := NULL;
1515     END IF;
1516 
1517     IF l_trolin_rec.lot_number = fnd_api.g_miss_char THEN
1518       l_trolin_rec.lot_number  := NULL;
1519     END IF;
1520 
1521     IF l_trolin_rec.organization_id = fnd_api.g_miss_num THEN
1522       l_trolin_rec.organization_id  := NULL;
1523     END IF;
1524 
1525     IF l_trolin_rec.program_application_id = fnd_api.g_miss_num THEN
1526       l_trolin_rec.program_application_id  := NULL;
1527     END IF;
1528 
1529     IF l_trolin_rec.program_id = fnd_api.g_miss_num THEN
1530       l_trolin_rec.program_id  := NULL;
1531     END IF;
1532 
1533     IF l_trolin_rec.program_update_date = fnd_api.g_miss_date THEN
1534       l_trolin_rec.program_update_date  := NULL;
1535     END IF;
1536 
1537     IF l_trolin_rec.project_id = fnd_api.g_miss_num THEN
1538       l_trolin_rec.project_id  := NULL;
1539     END IF;
1540 
1541     IF l_trolin_rec.quantity = fnd_api.g_miss_num THEN
1542       l_trolin_rec.quantity  := NULL;
1543     END IF;
1544 
1545     IF l_trolin_rec.quantity_delivered = fnd_api.g_miss_num THEN
1546       l_trolin_rec.quantity_delivered  := NULL;
1547     END IF;
1548 
1549     IF l_trolin_rec.quantity_detailed = fnd_api.g_miss_num THEN
1550       l_trolin_rec.quantity_detailed  := NULL;
1551     END IF;
1552 
1553     IF l_trolin_rec.reason_id = fnd_api.g_miss_num THEN
1554       l_trolin_rec.reason_id  := NULL;
1555     END IF;
1556 
1557     IF l_trolin_rec.REFERENCE = fnd_api.g_miss_char THEN
1558       l_trolin_rec.REFERENCE  := NULL;
1559     END IF;
1560 
1561     IF l_trolin_rec.reference_id = fnd_api.g_miss_num THEN
1562       l_trolin_rec.reference_id  := NULL;
1563     END IF;
1564 
1565     IF l_trolin_rec.reference_type_code = fnd_api.g_miss_num THEN
1566       l_trolin_rec.reference_type_code  := NULL;
1567     END IF;
1568 
1569     IF l_trolin_rec.request_id = fnd_api.g_miss_num THEN
1570       l_trolin_rec.request_id  := NULL;
1571     END IF;
1572 
1573     IF l_trolin_rec.revision = fnd_api.g_miss_char THEN
1574       l_trolin_rec.revision  := NULL;
1575     END IF;
1576 
1577     IF l_trolin_rec.serial_number_end = fnd_api.g_miss_char THEN
1578       l_trolin_rec.serial_number_end  := NULL;
1579     END IF;
1580 
1581     IF l_trolin_rec.serial_number_start = fnd_api.g_miss_char THEN
1582       l_trolin_rec.serial_number_start  := NULL;
1583     END IF;
1584 
1585     IF l_trolin_rec.status_date = fnd_api.g_miss_date THEN
1586       l_trolin_rec.status_date  := NULL;
1587     END IF;
1588 
1589     IF l_trolin_rec.task_id = fnd_api.g_miss_num THEN
1590       l_trolin_rec.task_id  := NULL;
1591     END IF;
1592 
1593     IF l_trolin_rec.to_account_id = fnd_api.g_miss_num THEN
1594       l_trolin_rec.to_account_id  := NULL;
1595     END IF;
1596 
1597     IF l_trolin_rec.to_locator_id = fnd_api.g_miss_num THEN
1598       l_trolin_rec.to_locator_id  := NULL;
1599     END IF;
1600 
1601     IF l_trolin_rec.to_subinventory_code = fnd_api.g_miss_char THEN
1602       l_trolin_rec.to_subinventory_code  := NULL;
1603     END IF;
1604 
1605     IF l_trolin_rec.to_subinventory_id = fnd_api.g_miss_num THEN
1606       l_trolin_rec.to_subinventory_id  := NULL;
1607     END IF;
1608 
1609     IF l_trolin_rec.transaction_header_id = fnd_api.g_miss_num THEN
1610       l_trolin_rec.transaction_header_id  := NULL;
1611     END IF;
1612 
1613     IF l_trolin_rec.uom_code = fnd_api.g_miss_char THEN
1614       l_trolin_rec.uom_code  := NULL;
1615     END IF;
1616 
1617 --INVCONV BEGIN
1618     IF l_trolin_rec.secondary_quantity = fnd_api.g_miss_num THEN
1619       l_trolin_rec.secondary_quantity  := NULL;
1620     END IF;
1621 
1622     --Bug #4565509 - Should set secondary quantities
1623     IF l_trolin_rec.secondary_quantity_delivered = fnd_api.g_miss_num THEN
1624       l_trolin_rec.secondary_quantity_delivered  := NULL;
1625     END IF;
1626 
1627     IF l_trolin_rec.secondary_quantity_detailed = fnd_api.g_miss_num THEN
1628       l_trolin_rec.secondary_quantity_detailed  := NULL;
1629     END IF;
1630 
1631     IF l_trolin_rec.secondary_uom = fnd_api.g_miss_char THEN
1632       l_trolin_rec.secondary_uom  := NULL;
1633     END IF;
1634 
1635     IF l_trolin_rec.grade_code = fnd_api.g_miss_char THEN
1636       l_trolin_rec.grade_code  := NULL;
1637     END IF;
1638     /*Bug#5764123. Added the below code to NULL out 'pick_methodology_id',
1639       'container_item_id' and 'carton_grouping_id', if their value is MISS_NUM.*/
1640       IF (l_trolin_rec.pick_methodology_id = fnd_api.g_miss_num) THEN
1641         l_trolin_rec.pick_methodology_id := NULL;
1642       END IF;
1643       IF (l_trolin_rec.container_item_id = fnd_api.g_miss_num) THEN
1644         l_trolin_rec.container_item_id := NULL;
1645       END IF;
1646       IF (l_trolin_rec.carton_grouping_id = fnd_api.g_miss_num) THEN
1647         l_trolin_rec.carton_grouping_id := NULL;
1648       END IF;
1649 
1650 -- INVCONV END;
1651     /*    IF l_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM THEN
1652             l_trolin_rec.transaction_type_id := NULL;
1653         END IF;
1654 
1655         IF l_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM THEN
1656             l_trolin_rec.transaction_source_type_id := NULL;
1657         END IF;
1658 
1659         IF l_trolin_rec.txn_source_id = FND_API.G_MISS_NUM THEN
1660             l_trolin_rec.txn_source_id := NULL;
1661         END IF;
1662 
1663         IF l_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM THEN
1664             l_trolin_rec.txn_source_line_id := NULL;
1665         END IF;
1666 
1667         IF l_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM THEN
1668             l_trolin_rec.txn_source_line_detail_id := NULL;
1669         END IF;
1670 
1671         IF l_trolin_rec.to_organization_id = FND_API.G_MISS_NUM THEN
1672             l_trolin_rec.to_organization_id := NULL;
1673         END IF;
1674 
1675         IF l_trolin_rec.primary_quantity = FND_API.G_MISS_NUM THEN
1676             l_trolin_rec.primary_quantity := NULL;
1677         END IF;
1678 
1679         IF l_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM THEN
1680             l_trolin_rec.pick_strategy_id := NULL;
1681         END IF;
1682 
1683         IF l_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM THEN
1684             l_trolin_rec.put_away_strategy_id := NULL;
1685         END IF;
1686     */
1687     RETURN l_trolin_rec;
1688   END convert_miss_to_null;
1689 
1690  --  Function Convert_Miss_To_Null_Parallel  /*For Parallel Pick-Release*/
1691 
1692   FUNCTION convert_miss_to_null_parallel(p_trolin_rec IN inv_move_order_pub.trolin_rec_type)
1693     RETURN inv_move_order_pub.trolin_rec_type IS
1694     l_trolin_rec inv_move_order_pub.trolin_rec_type := p_trolin_rec;
1695 
1696     BEGIN
1697     l_trolin_rec := inv_trolin_util.convert_miss_to_null(p_trolin_rec => l_trolin_rec);
1698 
1699     IF l_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM THEN
1700         l_trolin_rec.transaction_type_id := NULL;
1701     END IF;
1702 
1703     IF l_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM THEN
1704         l_trolin_rec.transaction_source_type_id := NULL;
1705     END IF;
1706 
1707     IF l_trolin_rec.txn_source_id = FND_API.G_MISS_NUM THEN
1708         l_trolin_rec.txn_source_id := NULL;
1709     END IF;
1710 
1711     IF l_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM THEN
1712         l_trolin_rec.txn_source_line_id := NULL;
1713     END IF;
1714 
1715     IF l_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM THEN
1716         l_trolin_rec.txn_source_line_detail_id := NULL;
1717     END IF;
1718 
1719     IF l_trolin_rec.to_organization_id = FND_API.G_MISS_NUM THEN
1720         l_trolin_rec.to_organization_id := NULL;
1721     END IF;
1722 
1723     IF l_trolin_rec.primary_quantity = FND_API.G_MISS_NUM THEN
1724         l_trolin_rec.primary_quantity := NULL;
1725     END IF;
1726 
1727     IF l_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM THEN
1728         l_trolin_rec.pick_strategy_id := NULL;
1729     END IF;
1730 
1731     IF l_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM THEN
1732         l_trolin_rec.put_away_strategy_id := NULL;
1733     END IF;
1734 
1735     IF l_trolin_rec.ship_to_location_id = FND_API.G_MISS_NUM THEN
1736         l_trolin_rec.ship_to_location_id := NULL;
1737     END IF;
1738 
1739     IF l_trolin_rec.from_cost_group_id = FND_API.G_MISS_NUM THEN
1740         l_trolin_rec.from_cost_group_id := NULL;
1741     END IF;
1742 
1743     IF l_trolin_rec.to_cost_group_id = FND_API.G_MISS_NUM THEN
1744         l_trolin_rec.to_cost_group_id := NULL;
1745     END IF;
1746 
1747     IF l_trolin_rec.lpn_id = FND_API.G_MISS_NUM THEN
1748         l_trolin_rec.lpn_id := NULL;
1749     END IF;
1750 
1751     IF l_trolin_rec.to_lpn_id = FND_API.G_MISS_NUM THEN
1752         l_trolin_rec.to_lpn_id := NULL;
1753     END IF;
1754 
1755     IF l_trolin_rec.pick_methodology_id = FND_API.G_MISS_NUM THEN
1756         l_trolin_rec.pick_methodology_id := NULL;
1757     END IF;
1758 
1759     IF l_trolin_rec.container_item_id = FND_API.G_MISS_NUM THEN
1760         l_trolin_rec.container_item_id := NULL;
1761     END IF;
1762 
1763     IF l_trolin_rec.carton_grouping_id = FND_API.G_MISS_NUM THEN
1764         l_trolin_rec.carton_grouping_id := NULL;
1765     END IF;
1766 
1767     return l_trolin_rec;
1768 
1769   END convert_miss_to_null_parallel;
1770 
1771 
1772   -- Bug#2536932: Function convert_miss_to_null
1773   -- Converts all Miss Number, Char and Date to NULL Values.
1774 
1775   FUNCTION convert_miss_to_null (p_trolin_val_rec INV_MOVE_ORDER_PUB.TROLIN_VAL_REC_TYPE)
1776      RETURN INV_MOVE_ORDER_PUB.TROLIN_VAL_REC_TYPE IS
1777      l_trolin_val_rec INV_MOVE_ORDER_PUB.trolin_val_rec_type := p_trolin_val_rec;
1778   BEGIN
1779      IF l_trolin_val_rec.from_locator = FND_API.G_MISS_CHAR THEN
1780         l_trolin_val_rec.from_locator := NULL;
1781      END IF;
1782 
1783      IF l_trolin_val_rec.header = FND_API.G_MISS_CHAR THEN
1784         l_trolin_val_rec.header := NULL;
1785      END IF;
1786 
1787      IF l_trolin_val_rec.from_subinventory = FND_API.G_MISS_CHAR THEN
1788         l_trolin_val_rec.from_subinventory := NULL;
1789      END IF;
1790 
1791      IF l_trolin_val_rec.inventory_item = FND_API.G_MISS_CHAR THEN
1792         l_trolin_val_rec.inventory_item := NULL;
1793      END IF;
1794 
1795      IF l_trolin_val_rec.line = FND_API.G_MISS_CHAR THEN
1796         l_trolin_val_rec.line := NULL;
1797      END IF;
1798 
1799      IF l_trolin_val_rec.organization = FND_API.G_MISS_CHAR THEN
1800         l_trolin_val_rec.organization := NULL;
1801      END IF;
1802 
1803      IF l_trolin_val_rec.project = FND_API.G_MISS_CHAR THEN
1804         l_trolin_val_rec.project := NULL;
1805      END IF;
1806 
1807      IF l_trolin_val_rec.reason = FND_API.G_MISS_CHAR THEN
1808         l_trolin_val_rec.reason := NULL;
1809      END IF;
1810 
1811      IF l_trolin_val_rec.reference = FND_API.G_MISS_CHAR THEN
1812         l_trolin_val_rec.reference := NULL;
1813      END IF;
1814 
1815      IF l_trolin_val_rec.reference_type = FND_API.G_MISS_CHAR THEN
1816         l_trolin_val_rec.reference_type := NULL;
1817      END IF;
1818 
1819      IF l_trolin_val_rec.task = FND_API.G_MISS_CHAR THEN
1820         l_trolin_val_rec.task := NULL;
1821      END IF;
1822 
1823      IF l_trolin_val_rec.to_account = FND_API.G_MISS_CHAR THEN
1824         l_trolin_val_rec.to_account := NULL;
1825      END IF;
1826 
1827      IF l_trolin_val_rec.to_locator = FND_API.G_MISS_CHAR THEN
1828         l_trolin_val_rec.to_locator := NULL;
1829      END IF;
1830 
1831      IF l_trolin_val_rec.to_subinventory = FND_API.G_MISS_CHAR THEN
1832         l_trolin_val_rec.to_subinventory := NULL;
1833      END IF;
1834 
1835      IF l_trolin_val_rec.transaction_header = FND_API.G_MISS_CHAR THEN
1836         l_trolin_val_rec.transaction_header := NULL;
1837      END IF;
1838 
1839      IF l_trolin_val_rec.uom = FND_API.G_MISS_CHAR THEN
1840         l_trolin_val_rec.uom := NULL;
1841      END IF;
1842 
1843      IF l_trolin_val_rec.transaction_type = FND_API.G_MISS_CHAR THEN
1844         l_trolin_val_rec.transaction_type := NULL;
1845      END IF;
1846 
1847      IF l_trolin_val_rec.to_organization = FND_API.G_MISS_CHAR THEN
1848         l_trolin_val_rec.to_organization := NULL;
1849      END IF;
1850 
1851      RETURN l_trolin_val_rec;
1852   END convert_miss_to_null;
1853 
1854   --  Procedure Update_Row
1855 
1856   PROCEDURE update_row(p_trolin_rec IN inv_move_order_pub.trolin_rec_type) IS
1857   BEGIN
1858     UPDATE mtl_txn_request_lines
1859        SET attribute1 = p_trolin_rec.attribute1
1860          , attribute10 = p_trolin_rec.attribute10
1861          , attribute11 = p_trolin_rec.attribute11
1862          , attribute12 = p_trolin_rec.attribute12
1863          , attribute13 = p_trolin_rec.attribute13
1864          , attribute14 = p_trolin_rec.attribute14
1865          , attribute15 = p_trolin_rec.attribute15
1866          , attribute2 = p_trolin_rec.attribute2
1867          , attribute3 = p_trolin_rec.attribute3
1868          , attribute4 = p_trolin_rec.attribute4
1869          , attribute5 = p_trolin_rec.attribute5
1870          , attribute6 = p_trolin_rec.attribute6
1871          , attribute7 = p_trolin_rec.attribute7
1872          , attribute8 = p_trolin_rec.attribute8
1873          , attribute9 = p_trolin_rec.attribute9
1874          , attribute_category = p_trolin_rec.attribute_category
1875          , created_by = p_trolin_rec.created_by
1876          , creation_date = p_trolin_rec.creation_date
1877          , date_required = p_trolin_rec.date_required
1878          , from_locator_id = p_trolin_rec.from_locator_id
1879          , from_subinventory_code = p_trolin_rec.from_subinventory_code
1880          , from_subinventory_id = p_trolin_rec.from_subinventory_id
1881          , header_id = p_trolin_rec.header_id
1882          , inventory_item_id = p_trolin_rec.inventory_item_id
1883          , last_updated_by = p_trolin_rec.last_updated_by
1884          , last_update_date = p_trolin_rec.last_update_date
1885          , last_update_login = p_trolin_rec.last_update_login
1886          , line_id = p_trolin_rec.line_id
1887          , line_number = p_trolin_rec.line_number
1888          , line_status = p_trolin_rec.line_status
1889          , lot_number = p_trolin_rec.lot_number
1890          , organization_id = p_trolin_rec.organization_id
1891          , program_application_id = p_trolin_rec.program_application_id
1892          , program_id = p_trolin_rec.program_id
1893          , program_update_date = p_trolin_rec.program_update_date
1894          , project_id = p_trolin_rec.project_id
1895          , quantity = p_trolin_rec.quantity
1896          , quantity_delivered = p_trolin_rec.quantity_delivered
1897          , quantity_detailed = p_trolin_rec.quantity_detailed
1898          , reason_id = p_trolin_rec.reason_id
1899          , REFERENCE = p_trolin_rec.REFERENCE
1900          , reference_id = p_trolin_rec.reference_id
1901          , reference_type_code = p_trolin_rec.reference_type_code
1902          , request_id = p_trolin_rec.request_id
1903          , revision = p_trolin_rec.revision
1904          , serial_number_end = p_trolin_rec.serial_number_end
1905          , serial_number_start = p_trolin_rec.serial_number_start
1906          , status_date = p_trolin_rec.status_date
1907          , task_id = p_trolin_rec.task_id
1908          , to_account_id = p_trolin_rec.to_account_id
1909          , to_locator_id = p_trolin_rec.to_locator_id
1910          , to_subinventory_code = p_trolin_rec.to_subinventory_code
1911          , to_subinventory_id = p_trolin_rec.to_subinventory_id
1912          , transaction_header_id = p_trolin_rec.transaction_header_id
1913          , uom_code = p_trolin_rec.uom_code
1914          , transaction_type_id = p_trolin_rec.transaction_type_id
1915          , transaction_source_type_id = p_trolin_rec.transaction_source_type_id
1916          , txn_source_id = p_trolin_rec.txn_source_id
1917          , txn_source_line_id = p_trolin_rec.txn_source_line_id
1918          , txn_source_line_detail_id = p_trolin_rec.txn_source_line_detail_id
1919          , to_organization_id = p_trolin_rec.to_organization_id
1920          , primary_quantity = p_trolin_rec.primary_quantity
1921          , pick_strategy_id = p_trolin_rec.pick_strategy_id
1922          , put_away_strategy_id = p_trolin_rec.put_away_strategy_id
1923          , unit_number = p_trolin_rec.unit_number
1924          , ship_to_location_id = p_trolin_rec.ship_to_location_id
1925          , from_cost_group_id = p_trolin_rec.from_cost_group_id
1926          , to_cost_group_id = p_trolin_rec.to_cost_group_id
1927          , lpn_id = p_trolin_rec.lpn_id
1928          , to_lpn_id = p_trolin_rec.to_lpn_id
1929          , inspection_status = p_trolin_rec.inspection_status
1930          , pick_methodology_id = p_trolin_rec.pick_methodology_id
1931          , container_item_id = p_trolin_rec.container_item_id
1932          , carton_grouping_id = p_trolin_rec.carton_grouping_id
1933          , wms_process_flag = p_trolin_rec.wms_process_flag
1934          , pick_slip_number = p_trolin_rec.pick_slip_number
1935          , pick_slip_date = p_trolin_rec.pick_slip_date
1936          , ship_set_id = p_trolin_rec.ship_set_id
1937          , ship_model_id = p_trolin_rec.ship_model_id
1938          , model_quantity = p_trolin_rec.model_quantity
1939          , required_quantity = p_trolin_rec.required_quantity
1940 --INVCONV BEGIN
1941          , secondary_quantity = p_trolin_rec.secondary_quantity
1942          , secondary_quantity_delivered = p_trolin_rec.secondary_quantity_delivered
1943          , secondary_quantity_detailed = p_trolin_rec.secondary_quantity_detailed
1944          , secondary_uom_code = p_trolin_rec.secondary_uom
1945          , secondary_required_quantity = p_trolin_rec.secondary_required_quantity
1946          , grade_code = p_trolin_rec.grade_code
1947 --INVCONV END;
1948      WHERE line_id = p_trolin_rec.line_id;
1949   EXCEPTION
1950     WHEN OTHERS THEN
1951       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1952         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Update_Row');
1953       END IF;
1954 
1955       RAISE fnd_api.g_exc_unexpected_error;
1956   END update_row;
1957 
1958   --  Procedure Update_Row_Status
1959 
1960   PROCEDURE update_row_status(p_line_id IN NUMBER, p_status IN NUMBER) IS
1961     l_trolin_rec inv_move_order_pub.trolin_rec_type;
1962   BEGIN
1963     l_trolin_rec                    := inv_trolin_util.query_row(p_line_id);
1964     l_trolin_rec.line_status        := p_status;
1965     l_trolin_rec.last_update_date   := SYSDATE;
1966     l_trolin_rec.status_date        := SYSDATE; -- For Bug # 5053725
1967     l_trolin_rec.last_updated_by    := fnd_global.user_id;
1968     l_trolin_rec.last_update_login  := fnd_global.login_id;
1969     inv_trolin_util.update_row(l_trolin_rec);
1970   EXCEPTION
1971     WHEN OTHERS THEN
1972       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1973         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Update_Row_Status');
1974       END IF;
1975 
1976       RAISE fnd_api.g_exc_unexpected_error;
1977   END update_row_status;
1978 
1979   --  Procedure Insert_Row
1980 
1981   PROCEDURE insert_row(p_trolin_rec IN inv_move_order_pub.trolin_rec_type) IS
1982   BEGIN
1983     INSERT INTO mtl_txn_request_lines
1984                 (
1985                 attribute1
1986               , attribute10
1987               , attribute11
1988               , attribute12
1989               , attribute13
1990               , attribute14
1991               , attribute15
1992               , attribute2
1993               , attribute3
1994               , attribute4
1995               , attribute5
1996               , attribute6
1997               , attribute7
1998               , attribute8
1999               , attribute9
2000               , attribute_category
2001               , created_by
2002               , creation_date
2003               , date_required
2004               , from_locator_id
2005               , from_subinventory_code
2006               , from_subinventory_id
2007               , header_id
2008               , inventory_item_id
2009               , last_updated_by
2010               , last_update_date
2011               , last_update_login
2012               , line_id
2013               , line_number
2014               , line_status
2015               , lot_number
2016               , organization_id
2017               , program_application_id
2018               , program_id
2019               , program_update_date
2020               , project_id
2021               , quantity
2022               , quantity_delivered
2023               , quantity_detailed
2024               , reason_id
2025               , REFERENCE
2026               , reference_id
2027               , reference_type_code
2028               , request_id
2029               , revision
2030               , serial_number_end
2031               , serial_number_start
2032               , status_date
2033               , task_id
2034               , to_account_id
2035               , to_locator_id
2036               , to_subinventory_code
2037               , to_subinventory_id
2038               , transaction_header_id
2039               , uom_code
2040               , transaction_type_id
2041               , transaction_source_type_id
2042               , txn_source_id
2043               , txn_source_line_id
2044               , txn_source_line_detail_id
2045               , to_organization_id
2046               , primary_quantity
2047               , pick_strategy_id
2048               , put_away_strategy_id
2049               , unit_number
2050               , ship_to_location_id
2051               , from_cost_group_id
2052               , to_cost_group_id
2053               , lpn_id
2054               , to_lpn_id
2055               , inspection_status
2056               , pick_methodology_id
2057               , container_item_id
2058               , carton_grouping_id
2059               , wms_process_flag
2060               , pick_slip_number
2061               , pick_slip_date
2062               , ship_set_id
2063               , ship_model_id
2064               , model_quantity
2065               , required_quantity
2066 --INVCONV BEGIN
2067               , secondary_quantity
2068               , secondary_quantity_delivered
2069               , secondary_quantity_detailed
2070               , secondary_uom_code
2071               , secondary_required_quantity
2072               , grade_code
2073 --INVCONV END;
2074                 )
2075          VALUES (
2076                 p_trolin_rec.attribute1
2077               , p_trolin_rec.attribute10
2078               , p_trolin_rec.attribute11
2079               , p_trolin_rec.attribute12
2080               , p_trolin_rec.attribute13
2081               , p_trolin_rec.attribute14
2082               , p_trolin_rec.attribute15
2083               , p_trolin_rec.attribute2
2084               , p_trolin_rec.attribute3
2085               , p_trolin_rec.attribute4
2086               , p_trolin_rec.attribute5
2087               , p_trolin_rec.attribute6
2088               , p_trolin_rec.attribute7
2089               , p_trolin_rec.attribute8
2090               , p_trolin_rec.attribute9
2091               , p_trolin_rec.attribute_category
2092               , p_trolin_rec.created_by
2093               , p_trolin_rec.creation_date
2094               , p_trolin_rec.date_required
2095               , p_trolin_rec.from_locator_id
2096               , p_trolin_rec.from_subinventory_code
2097               , p_trolin_rec.from_subinventory_id
2098               , p_trolin_rec.header_id
2099               , p_trolin_rec.inventory_item_id
2100               , p_trolin_rec.last_updated_by
2101               , p_trolin_rec.last_update_date
2102               , p_trolin_rec.last_update_login
2103               , p_trolin_rec.line_id
2104               , p_trolin_rec.line_number
2105               , p_trolin_rec.line_status
2106               , p_trolin_rec.lot_number
2107               , p_trolin_rec.organization_id
2108               , p_trolin_rec.program_application_id
2109               , p_trolin_rec.program_id
2110               , p_trolin_rec.program_update_date
2111               , p_trolin_rec.project_id
2112               , p_trolin_rec.quantity
2113               , p_trolin_rec.quantity_delivered
2114               , p_trolin_rec.quantity_detailed
2115               , p_trolin_rec.reason_id
2116               , p_trolin_rec.REFERENCE
2117               , p_trolin_rec.reference_id
2118               , p_trolin_rec.reference_type_code
2119               , p_trolin_rec.request_id
2120               , p_trolin_rec.revision
2121               , p_trolin_rec.serial_number_end
2122               , p_trolin_rec.serial_number_start
2123               , p_trolin_rec.status_date
2124               , p_trolin_rec.task_id
2125               , p_trolin_rec.to_account_id
2126               , p_trolin_rec.to_locator_id
2127               , p_trolin_rec.to_subinventory_code
2128               , p_trolin_rec.to_subinventory_id
2129               , p_trolin_rec.transaction_header_id
2130               , p_trolin_rec.uom_code
2131               , p_trolin_rec.transaction_type_id
2132               , p_trolin_rec.transaction_source_type_id
2133               , p_trolin_rec.txn_source_id
2134               , p_trolin_rec.txn_source_line_id
2135               , p_trolin_rec.txn_source_line_detail_id
2136               , p_trolin_rec.to_organization_id
2137               , p_trolin_rec.primary_quantity
2138               , p_trolin_rec.pick_strategy_id
2139               , p_trolin_rec.put_away_strategy_id
2140               , p_trolin_rec.unit_number
2141               , p_trolin_rec.ship_to_location_id
2142               , p_trolin_rec.from_cost_group_id
2143               , p_trolin_rec.to_cost_group_id
2144               , p_trolin_rec.lpn_id
2145               , p_trolin_rec.to_lpn_id
2146               , p_trolin_rec.inspection_status
2147               , p_trolin_rec.pick_methodology_id
2148               , p_trolin_rec.container_item_id
2149               , p_trolin_rec.carton_grouping_id
2150               , p_trolin_rec.wms_process_flag
2151               , p_trolin_rec.pick_slip_number
2152               , p_trolin_rec.pick_slip_date
2153               , p_trolin_rec.ship_set_id
2154               , p_trolin_rec.ship_model_id
2155               , p_trolin_rec.model_quantity
2156               , p_trolin_rec.required_quantity
2157 --INVCONV BEGIN
2158               , p_trolin_rec.secondary_quantity
2159               , p_trolin_rec.secondary_quantity_delivered
2160               , p_trolin_rec.secondary_quantity_detailed
2161               , p_trolin_rec.secondary_uom
2162               , p_trolin_rec.secondary_required_quantity
2163               , p_trolin_rec.grade_code
2164 --INVCONV END;
2165                 );
2166   EXCEPTION
2167     WHEN OTHERS THEN
2168       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2169         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Insert_Row');
2170       END IF;
2171 
2172       RAISE fnd_api.g_exc_unexpected_error;
2173   END insert_row;
2174 
2175   --  Procedure Delete_Row
2176 
2177   PROCEDURE delete_row(p_line_id IN NUMBER) IS
2178   BEGIN
2179     DELETE FROM mtl_txn_request_lines
2180           WHERE line_id = p_line_id;
2181   EXCEPTION
2182     WHEN OTHERS THEN
2183       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2184         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Delete_Row');
2185       END IF;
2186 
2187       RAISE fnd_api.g_exc_unexpected_error;
2188   END delete_row;
2189 
2190   --  Function Get_Lines
2191 
2192   FUNCTION get_lines(p_header_id IN NUMBER)
2193     RETURN inv_move_order_pub.trolin_tbl_type IS
2194   BEGIN
2195     RETURN query_rows(p_header_id => p_header_id);
2196   END get_lines;
2197 
2198   --  Function Query_Row
2199 
2200   FUNCTION query_row(p_line_id IN NUMBER)
2201     RETURN inv_move_order_pub.trolin_rec_type IS
2202   BEGIN
2203     /*    inv_debug.message('TRO: in query_row '||to_char(p_line_id)); */
2204     RETURN query_rows(p_line_id => p_line_id)(1);
2205   END query_row;
2206 
2207   --  Function Query_Rows
2208 
2209   --
2210 
2211   FUNCTION query_rows(p_line_id IN NUMBER := fnd_api.g_miss_num, p_header_id IN NUMBER := fnd_api.g_miss_num)
2212     RETURN inv_move_order_pub.trolin_tbl_type IS
2213     l_trolin_rec inv_move_order_pub.trolin_rec_type;
2214     l_trolin_tbl inv_move_order_pub.trolin_tbl_type;
2215 
2216     --bug 2569864 - create separate cursors on header_id and line_Id
2217     CURSOR l_trolin_csr IS
2218       SELECT attribute1
2219            , attribute10
2220            , attribute11
2221            , attribute12
2222            , attribute13
2223            , attribute14
2224            , attribute15
2225            , attribute2
2226            , attribute3
2227            , attribute4
2228            , attribute5
2229            , attribute6
2230            , attribute7
2231            , attribute8
2232            , attribute9
2233            , attribute_category
2234            , created_by
2235            , creation_date
2236            , date_required
2237            , from_locator_id
2238            , from_subinventory_code
2239            , from_subinventory_id
2240            , header_id
2241            , inventory_item_id
2242            , last_updated_by
2243            , last_update_date
2244            , last_update_login
2245            , line_id
2246            , line_number
2247            , line_status
2248            , lot_number
2249            , organization_id
2250            , program_application_id
2251            , program_id
2252            , program_update_date
2253            , project_id
2254            , quantity
2255            , quantity_delivered
2256            , quantity_detailed
2257            , reason_id
2258            , REFERENCE
2259            , reference_id
2260            , reference_type_code
2261            , request_id
2262            , revision
2263            , serial_number_end
2264            , serial_number_start
2265            , status_date
2266            , task_id
2267            , to_account_id
2268            , to_locator_id
2269            , to_subinventory_code
2270            , to_subinventory_id
2271            , transaction_header_id
2272            , uom_code
2273            , transaction_type_id
2274            , transaction_source_type_id
2275            , txn_source_id
2276            , txn_source_line_id
2277            , txn_source_line_detail_id
2278            , to_organization_id
2279            , primary_quantity
2280            , pick_strategy_id
2281            , put_away_strategy_id
2282            , unit_number
2283            , ship_to_location_id
2284            , from_cost_group_id
2285            , to_cost_group_id
2286            , lpn_id
2287            , to_lpn_id
2288            , inspection_status
2289            , pick_methodology_id
2290            , container_item_id
2291            , carton_grouping_id
2292            , wms_process_flag
2293            , pick_slip_number
2294            , pick_slip_date
2295            , ship_set_id
2296            , ship_model_id
2297            , model_quantity
2298            , required_quantity
2299 --INVCONV BEGIN
2300            , secondary_quantity
2301            , secondary_quantity_delivered
2302            , secondary_quantity_detailed
2303            , secondary_uom_code
2304            , grade_code
2305            , secondary_required_quantity
2306 --INVCONV END;
2307         FROM mtl_txn_request_lines
2308        WHERE line_id = p_line_id;
2309 
2310     CURSOR l_trolin_csr_header IS
2311       SELECT attribute1
2312            , attribute10
2313            , attribute11
2314            , attribute12
2315            , attribute13
2316            , attribute14
2317            , attribute15
2318            , attribute2
2319            , attribute3
2320            , attribute4
2321            , attribute5
2322            , attribute6
2323            , attribute7
2324            , attribute8
2325            , attribute9
2326            , attribute_category
2327            , created_by
2328            , creation_date
2329            , date_required
2330            , from_locator_id
2331            , from_subinventory_code
2332            , from_subinventory_id
2333            , header_id
2334            , inventory_item_id
2335            , last_updated_by
2336            , last_update_date
2337            , last_update_login
2338            , line_id
2339            , line_number
2340            , line_status
2341            , lot_number
2342            , organization_id
2343            , program_application_id
2344            , program_id
2345            , program_update_date
2346            , project_id
2347            , quantity
2348            , quantity_delivered
2349            , quantity_detailed
2350            , reason_id
2351            , REFERENCE
2352            , reference_id
2353            , reference_type_code
2354            , request_id
2355            , revision
2356            , serial_number_end
2357            , serial_number_start
2358            , status_date
2359            , task_id
2360            , to_account_id
2361            , to_locator_id
2362            , to_subinventory_code
2363            , to_subinventory_id
2364            , transaction_header_id
2365            , uom_code
2366            , transaction_type_id
2367            , transaction_source_type_id
2368            , txn_source_id
2369            , txn_source_line_id
2370            , txn_source_line_detail_id
2371            , to_organization_id
2372            , primary_quantity
2373            , pick_strategy_id
2374            , put_away_strategy_id
2375            , unit_number
2376            , ship_to_location_id
2377            , from_cost_group_id
2378            , to_cost_group_id
2379            , lpn_id
2380            , to_lpn_id
2381            , inspection_status
2382            , pick_methodology_id
2383            , container_item_id
2384            , carton_grouping_id
2385            , wms_process_flag
2386            , pick_slip_number
2387            , pick_slip_date
2388            , ship_set_id
2389            , ship_model_id
2390            , model_quantity
2391            , required_quantity
2392 --INVCONV BEGIN
2393            , secondary_quantity
2394            , secondary_quantity_delivered
2395            , secondary_quantity_detailed
2396            , secondary_uom_code
2397            , grade_code
2398            , secondary_required_quantity
2399 --INVCONV END;
2400         FROM mtl_txn_request_lines
2401        WHERE header_id = p_header_id;
2402   BEGIN
2403     /*inv_debug.message('TRO: line_id '||to_char(p_line_id)||' header_id '||to_char(p_header_id)); */
2404 
2405     IF  (p_line_id IS NOT NULL
2406          AND p_line_id <> fnd_api.g_miss_num
2407         )
2408         AND (p_header_id IS NOT NULL
2409              AND p_header_id <> fnd_api.g_miss_num
2410             ) THEN
2411       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2412         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Query Rows', 'Keys are mutually exclusive: line_id = ' || p_line_id || ', header_id = ' || p_header_id);
2413       END IF;
2414 
2415       RAISE fnd_api.g_exc_unexpected_error;
2416     END IF;
2417 
2418     IF (p_line_id IS NOT NULL
2419         AND p_line_id <> fnd_api.g_miss_num
2420        ) THEN
2421       --  Loop over fetched records
2422 
2423       FOR l_implicit_rec IN l_trolin_csr LOOP
2424         l_trolin_rec.attribute1                  := l_implicit_rec.attribute1;
2425         l_trolin_rec.attribute10                 := l_implicit_rec.attribute10;
2426         l_trolin_rec.attribute11                 := l_implicit_rec.attribute11;
2427         l_trolin_rec.attribute12                 := l_implicit_rec.attribute12;
2428         l_trolin_rec.attribute13                 := l_implicit_rec.attribute13;
2429         l_trolin_rec.attribute14                 := l_implicit_rec.attribute14;
2430         l_trolin_rec.attribute15                 := l_implicit_rec.attribute15;
2431         l_trolin_rec.attribute2                  := l_implicit_rec.attribute2;
2432         l_trolin_rec.attribute3                  := l_implicit_rec.attribute3;
2433         l_trolin_rec.attribute4                  := l_implicit_rec.attribute4;
2434         l_trolin_rec.attribute5                  := l_implicit_rec.attribute5;
2435         l_trolin_rec.attribute6                  := l_implicit_rec.attribute6;
2436         l_trolin_rec.attribute7                  := l_implicit_rec.attribute7;
2437         l_trolin_rec.attribute8                  := l_implicit_rec.attribute8;
2438         l_trolin_rec.attribute9                  := l_implicit_rec.attribute9;
2439         l_trolin_rec.attribute_category          := l_implicit_rec.attribute_category;
2440         l_trolin_rec.created_by                  := l_implicit_rec.created_by;
2441         l_trolin_rec.creation_date               := l_implicit_rec.creation_date;
2442         l_trolin_rec.date_required               := l_implicit_rec.date_required;
2443         l_trolin_rec.from_locator_id             := l_implicit_rec.from_locator_id;
2444         l_trolin_rec.from_subinventory_code      := l_implicit_rec.from_subinventory_code;
2445         l_trolin_rec.from_subinventory_id        := l_implicit_rec.from_subinventory_id;
2446         l_trolin_rec.header_id                   := l_implicit_rec.header_id;
2447         l_trolin_rec.inventory_item_id           := l_implicit_rec.inventory_item_id;
2448         l_trolin_rec.last_updated_by             := l_implicit_rec.last_updated_by;
2449         l_trolin_rec.last_update_date            := l_implicit_rec.last_update_date;
2450         l_trolin_rec.last_update_login           := l_implicit_rec.last_update_login;
2451         l_trolin_rec.line_id                     := l_implicit_rec.line_id;
2452         l_trolin_rec.line_number                 := l_implicit_rec.line_number;
2453         l_trolin_rec.line_status                 := l_implicit_rec.line_status;
2454         l_trolin_rec.lot_number                  := l_implicit_rec.lot_number;
2455         l_trolin_rec.organization_id             := l_implicit_rec.organization_id;
2456         l_trolin_rec.program_application_id      := l_implicit_rec.program_application_id;
2457         l_trolin_rec.program_id                  := l_implicit_rec.program_id;
2458         l_trolin_rec.program_update_date         := l_implicit_rec.program_update_date;
2459         l_trolin_rec.project_id                  := l_implicit_rec.project_id;
2460         l_trolin_rec.quantity                    := l_implicit_rec.quantity;
2461         l_trolin_rec.quantity_delivered          := l_implicit_rec.quantity_delivered;
2462         l_trolin_rec.quantity_detailed           := l_implicit_rec.quantity_detailed;
2463         l_trolin_rec.reason_id                   := l_implicit_rec.reason_id;
2464         l_trolin_rec.REFERENCE                   := l_implicit_rec.REFERENCE;
2465         l_trolin_rec.reference_id                := l_implicit_rec.reference_id;
2466         l_trolin_rec.reference_type_code         := l_implicit_rec.reference_type_code;
2467         l_trolin_rec.request_id                  := l_implicit_rec.request_id;
2468         l_trolin_rec.revision                    := l_implicit_rec.revision;
2469         l_trolin_rec.serial_number_end           := l_implicit_rec.serial_number_end;
2470         l_trolin_rec.serial_number_start         := l_implicit_rec.serial_number_start;
2471         l_trolin_rec.status_date                 := l_implicit_rec.status_date;
2472         l_trolin_rec.task_id                     := l_implicit_rec.task_id;
2473         l_trolin_rec.to_account_id               := l_implicit_rec.to_account_id;
2474         l_trolin_rec.to_locator_id               := l_implicit_rec.to_locator_id;
2475         l_trolin_rec.to_subinventory_code        := l_implicit_rec.to_subinventory_code;
2476         l_trolin_rec.to_subinventory_id          := l_implicit_rec.to_subinventory_id;
2477         l_trolin_rec.transaction_header_id       := l_implicit_rec.transaction_header_id;
2478         l_trolin_rec.uom_code                    := l_implicit_rec.uom_code;
2479         l_trolin_rec.transaction_type_id         := l_implicit_rec.transaction_type_id;
2480         l_trolin_rec.transaction_source_type_id  := l_implicit_rec.transaction_source_type_id;
2481         l_trolin_rec.txn_source_id               := l_implicit_rec.txn_source_id;
2482         l_trolin_rec.txn_source_line_id          := l_implicit_rec.txn_source_line_id;
2483         l_trolin_rec.txn_source_line_detail_id   := l_implicit_rec.txn_source_line_detail_id;
2484         l_trolin_rec.to_organization_id          := l_implicit_rec.to_organization_id;
2485         l_trolin_rec.primary_quantity            := l_implicit_rec.primary_quantity;
2486         l_trolin_rec.pick_strategy_id            := l_implicit_rec.pick_strategy_id;
2487         l_trolin_rec.put_away_strategy_id        := l_implicit_rec.put_away_strategy_id;
2488         l_trolin_rec.unit_number                 := l_implicit_rec.unit_number;
2489         l_trolin_rec.ship_to_location_id         := l_implicit_rec.ship_to_location_id;
2490         l_trolin_rec.from_cost_group_id          := l_implicit_rec.from_cost_group_id;
2491         l_trolin_rec.to_cost_group_id            := l_implicit_rec.to_cost_group_id;
2492         l_trolin_rec.lpn_id                      := l_implicit_rec.lpn_id;
2493         l_trolin_rec.to_lpn_id                   := l_implicit_rec.to_lpn_id;
2494         l_trolin_rec.inspection_status           := l_implicit_rec.inspection_status;
2495         l_trolin_rec.pick_methodology_id         := l_implicit_rec.pick_methodology_id;
2496         l_trolin_rec.container_item_id           := l_implicit_rec.container_item_id;
2497         l_trolin_rec.carton_grouping_id          := l_implicit_rec.carton_grouping_id;
2498         l_trolin_rec.wms_process_flag            := l_implicit_rec.wms_process_flag;
2499         l_trolin_rec.pick_slip_number            := l_implicit_rec.pick_slip_number;
2500         l_trolin_rec.pick_slip_date              := l_implicit_rec.pick_slip_date;
2501         l_trolin_rec.ship_set_id                 := l_implicit_rec.ship_set_id;
2502         l_trolin_rec.ship_model_id               := l_implicit_rec.ship_model_id;
2503         l_trolin_rec.model_quantity              := l_implicit_rec.model_quantity;
2504         l_trolin_rec.required_quantity           := l_implicit_rec.required_quantity;
2505 --INVCONV BEGIN
2506         l_trolin_rec.secondary_quantity          := l_implicit_rec.secondary_quantity;
2507         l_trolin_rec.secondary_quantity_delivered := l_implicit_rec.secondary_quantity_delivered;
2508         l_trolin_rec.secondary_quantity_detailed := l_implicit_rec.secondary_quantity_detailed;
2509         l_trolin_rec.secondary_uom               := l_implicit_rec.secondary_uom_code;
2510         l_trolin_rec.grade_code                  := l_implicit_rec.grade_code;
2511         l_trolin_rec.secondary_required_quantity := l_implicit_rec.secondary_required_quantity;
2512 --INVCONV END;
2513 
2514         l_trolin_tbl(l_trolin_tbl.COUNT + 1)     := l_trolin_rec;
2515       END LOOP;
2516     ELSE
2517       FOR l_implicit_rec IN l_trolin_csr_header LOOP
2518         l_trolin_rec.attribute1                  := l_implicit_rec.attribute1;
2519         l_trolin_rec.attribute10                 := l_implicit_rec.attribute10;
2520         l_trolin_rec.attribute11                 := l_implicit_rec.attribute11;
2521         l_trolin_rec.attribute12                 := l_implicit_rec.attribute12;
2522         l_trolin_rec.attribute13                 := l_implicit_rec.attribute13;
2523         l_trolin_rec.attribute14                 := l_implicit_rec.attribute14;
2524         l_trolin_rec.attribute15                 := l_implicit_rec.attribute15;
2525         l_trolin_rec.attribute2                  := l_implicit_rec.attribute2;
2526         l_trolin_rec.attribute3                  := l_implicit_rec.attribute3;
2527         l_trolin_rec.attribute4                  := l_implicit_rec.attribute4;
2528         l_trolin_rec.attribute5                  := l_implicit_rec.attribute5;
2529         l_trolin_rec.attribute6                  := l_implicit_rec.attribute6;
2530         l_trolin_rec.attribute7                  := l_implicit_rec.attribute7;
2531         l_trolin_rec.attribute8                  := l_implicit_rec.attribute8;
2532         l_trolin_rec.attribute9                  := l_implicit_rec.attribute9;
2533         l_trolin_rec.attribute_category          := l_implicit_rec.attribute_category;
2534         l_trolin_rec.created_by                  := l_implicit_rec.created_by;
2535         l_trolin_rec.creation_date               := l_implicit_rec.creation_date;
2536         l_trolin_rec.date_required               := l_implicit_rec.date_required;
2537         l_trolin_rec.from_locator_id             := l_implicit_rec.from_locator_id;
2538         l_trolin_rec.from_subinventory_code      := l_implicit_rec.from_subinventory_code;
2539         l_trolin_rec.from_subinventory_id        := l_implicit_rec.from_subinventory_id;
2540         l_trolin_rec.header_id                   := l_implicit_rec.header_id;
2541         l_trolin_rec.inventory_item_id           := l_implicit_rec.inventory_item_id;
2542         l_trolin_rec.last_updated_by             := l_implicit_rec.last_updated_by;
2543         l_trolin_rec.last_update_date            := l_implicit_rec.last_update_date;
2544         l_trolin_rec.last_update_login           := l_implicit_rec.last_update_login;
2545         l_trolin_rec.line_id                     := l_implicit_rec.line_id;
2546         l_trolin_rec.line_number                 := l_implicit_rec.line_number;
2547         l_trolin_rec.line_status                 := l_implicit_rec.line_status;
2548         l_trolin_rec.lot_number                  := l_implicit_rec.lot_number;
2549         l_trolin_rec.organization_id             := l_implicit_rec.organization_id;
2550         l_trolin_rec.program_application_id      := l_implicit_rec.program_application_id;
2551         l_trolin_rec.program_id                  := l_implicit_rec.program_id;
2552         l_trolin_rec.program_update_date         := l_implicit_rec.program_update_date;
2553         l_trolin_rec.project_id                  := l_implicit_rec.project_id;
2554         l_trolin_rec.quantity                    := l_implicit_rec.quantity;
2555         l_trolin_rec.quantity_delivered          := l_implicit_rec.quantity_delivered;
2556         l_trolin_rec.quantity_detailed           := l_implicit_rec.quantity_detailed;
2557         l_trolin_rec.reason_id                   := l_implicit_rec.reason_id;
2558         l_trolin_rec.REFERENCE                   := l_implicit_rec.REFERENCE;
2559         l_trolin_rec.reference_id                := l_implicit_rec.reference_id;
2560         l_trolin_rec.reference_type_code         := l_implicit_rec.reference_type_code;
2561         l_trolin_rec.request_id                  := l_implicit_rec.request_id;
2562         l_trolin_rec.revision                    := l_implicit_rec.revision;
2563         l_trolin_rec.serial_number_end           := l_implicit_rec.serial_number_end;
2564         l_trolin_rec.serial_number_start         := l_implicit_rec.serial_number_start;
2565         l_trolin_rec.status_date                 := l_implicit_rec.status_date;
2566         l_trolin_rec.task_id                     := l_implicit_rec.task_id;
2567         l_trolin_rec.to_account_id               := l_implicit_rec.to_account_id;
2568         l_trolin_rec.to_locator_id               := l_implicit_rec.to_locator_id;
2569         l_trolin_rec.to_subinventory_code        := l_implicit_rec.to_subinventory_code;
2570         l_trolin_rec.to_subinventory_id          := l_implicit_rec.to_subinventory_id;
2571         l_trolin_rec.transaction_header_id       := l_implicit_rec.transaction_header_id;
2572         l_trolin_rec.uom_code                    := l_implicit_rec.uom_code;
2573         l_trolin_rec.transaction_type_id         := l_implicit_rec.transaction_type_id;
2574         l_trolin_rec.transaction_source_type_id  := l_implicit_rec.transaction_source_type_id;
2575         l_trolin_rec.txn_source_id               := l_implicit_rec.txn_source_id;
2576         l_trolin_rec.txn_source_line_id          := l_implicit_rec.txn_source_line_id;
2577         l_trolin_rec.txn_source_line_detail_id   := l_implicit_rec.txn_source_line_detail_id;
2578         l_trolin_rec.to_organization_id          := l_implicit_rec.to_organization_id;
2579         l_trolin_rec.primary_quantity            := l_implicit_rec.primary_quantity;
2580         l_trolin_rec.pick_strategy_id            := l_implicit_rec.pick_strategy_id;
2581         l_trolin_rec.put_away_strategy_id        := l_implicit_rec.put_away_strategy_id;
2582         l_trolin_rec.unit_number                 := l_implicit_rec.unit_number;
2583         l_trolin_rec.ship_to_location_id         := l_implicit_rec.ship_to_location_id;
2584         l_trolin_rec.from_cost_group_id          := l_implicit_rec.from_cost_group_id;
2585         l_trolin_rec.to_cost_group_id            := l_implicit_rec.to_cost_group_id;
2586         l_trolin_rec.lpn_id                      := l_implicit_rec.lpn_id;
2587         l_trolin_rec.to_lpn_id                   := l_implicit_rec.to_lpn_id;
2588         l_trolin_rec.inspection_status           := l_implicit_rec.inspection_status;
2589         l_trolin_rec.pick_methodology_id         := l_implicit_rec.pick_methodology_id;
2590         l_trolin_rec.container_item_id           := l_implicit_rec.container_item_id;
2591         l_trolin_rec.carton_grouping_id          := l_implicit_rec.carton_grouping_id;
2592         l_trolin_rec.wms_process_flag            := l_implicit_rec.wms_process_flag;
2593         l_trolin_rec.pick_slip_number            := l_implicit_rec.pick_slip_number;
2594         l_trolin_rec.pick_slip_date              := l_implicit_rec.pick_slip_date;
2595         l_trolin_rec.ship_set_id                 := l_implicit_rec.ship_set_id;
2596         l_trolin_rec.ship_model_id               := l_implicit_rec.ship_model_id;
2597         l_trolin_rec.model_quantity              := l_implicit_rec.model_quantity;
2598         l_trolin_rec.required_quantity           := l_implicit_rec.required_quantity;
2599 --INVCONV BEGIN
2600         l_trolin_rec.secondary_quantity          := l_implicit_rec.secondary_quantity;
2601         l_trolin_rec.secondary_quantity_delivered := l_implicit_rec.secondary_quantity_delivered;
2602         l_trolin_rec.secondary_quantity_detailed := l_implicit_rec.secondary_quantity_detailed;
2603         l_trolin_rec.secondary_uom               := l_implicit_rec.secondary_uom_code;
2604         l_trolin_rec.grade_code                  := l_implicit_rec.grade_code;
2605         l_trolin_rec.secondary_required_quantity := l_implicit_rec.secondary_required_quantity;
2606 --INVCONV END;
2607         l_trolin_tbl(l_trolin_tbl.COUNT + 1)     := l_trolin_rec;
2608       END LOOP;
2609     END IF;
2610 
2611     --  PK sent and no rows found
2612 
2613     IF  (p_line_id IS NOT NULL
2614          AND p_line_id <> fnd_api.g_miss_num
2615         )
2616         AND (l_trolin_tbl.COUNT = 0) THEN
2617       RAISE NO_DATA_FOUND;
2618     END IF;
2619 
2620     --  Return fetched table
2621 
2622     RETURN l_trolin_tbl;
2623   EXCEPTION
2624     WHEN fnd_api.g_exc_unexpected_error THEN
2625       RAISE fnd_api.g_exc_unexpected_error;
2626     WHEN OTHERS THEN
2627       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2628         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Query_Rows');
2629       END IF;
2630 
2631       RAISE fnd_api.g_exc_unexpected_error;
2632   END query_rows;
2633 
2634   --  Procedure       lock_Row
2635   --
2636 
2637   PROCEDURE lock_row(x_return_status OUT NOCOPY VARCHAR2, p_trolin_rec IN inv_move_order_pub.trolin_rec_type, x_trolin_rec IN OUT NOCOPY inv_move_order_pub.trolin_rec_type) IS
2638     l_trolin_rec inv_move_order_pub.trolin_rec_type;
2639   BEGIN
2640     SELECT     attribute1
2641              , attribute10
2642              , attribute11
2643              , attribute12
2644              , attribute13
2645              , attribute14
2646              , attribute15
2647              , attribute2
2648              , attribute3
2649              , attribute4
2650              , attribute5
2651              , attribute6
2652              , attribute7
2653              , attribute8
2654              , attribute9
2655              , attribute_category
2656              , created_by
2657              , creation_date
2658              , date_required
2659              , from_locator_id
2660              , from_subinventory_code
2661              , from_subinventory_id
2662              , header_id
2663              , inventory_item_id
2664              , last_updated_by
2665              , last_update_date
2666              , last_update_login
2667              , line_id
2668              , line_number
2669              , line_status
2670              , lot_number
2671              , organization_id
2672              , program_application_id
2673              , program_id
2674              , program_update_date
2675              , project_id
2676              , quantity
2677              , quantity_delivered
2678              , quantity_detailed
2679              , reason_id
2680              , REFERENCE
2681              , reference_id
2682              , reference_type_code
2683              , request_id
2684              , revision
2685              , serial_number_end
2686              , serial_number_start
2687              , status_date
2688              , task_id
2689              , to_account_id
2690              , to_locator_id
2691              , to_subinventory_code
2692              , to_subinventory_id
2693              , transaction_header_id
2694              , uom_code
2695              , transaction_type_id
2696              , transaction_source_type_id
2697              , txn_source_id
2698              , txn_source_line_id
2699              , txn_source_line_detail_id
2700              , to_organization_id
2701              , primary_quantity
2702              , pick_strategy_id
2703              , put_away_strategy_id
2704              , unit_number
2705              , ship_to_location_id
2706              , from_cost_group_id
2707              , to_cost_group_id
2708              , lpn_id
2709              , to_lpn_id
2710              , inspection_status
2711              , pick_methodology_id
2712              , container_item_id
2713              , carton_grouping_id
2714              , wms_process_flag
2715              , pick_slip_number
2716              , pick_slip_date
2717              , ship_set_id
2718              , ship_model_id
2719              , model_quantity
2720              , required_quantity
2721 --INVCONV BEGIN
2722               , secondary_quantity
2723               , secondary_quantity_delivered
2724               , secondary_quantity_detailed
2725               , uom_code
2726               , grade_code
2727               , secondary_required_quantity
2728 --INVCONV END
2729           INTO l_trolin_rec.attribute1
2730              , l_trolin_rec.attribute10
2731              , l_trolin_rec.attribute11
2732              , l_trolin_rec.attribute12
2733              , l_trolin_rec.attribute13
2734              , l_trolin_rec.attribute14
2735              , l_trolin_rec.attribute15
2736              , l_trolin_rec.attribute2
2737              , l_trolin_rec.attribute3
2738              , l_trolin_rec.attribute4
2739              , l_trolin_rec.attribute5
2740              , l_trolin_rec.attribute6
2741              , l_trolin_rec.attribute7
2742              , l_trolin_rec.attribute8
2743              , l_trolin_rec.attribute9
2744              , l_trolin_rec.attribute_category
2745              , l_trolin_rec.created_by
2746              , l_trolin_rec.creation_date
2747              , l_trolin_rec.date_required
2748              , l_trolin_rec.from_locator_id
2749              , l_trolin_rec.from_subinventory_code
2750              , l_trolin_rec.from_subinventory_id
2751              , l_trolin_rec.header_id
2752              , l_trolin_rec.inventory_item_id
2753              , l_trolin_rec.last_updated_by
2754              , l_trolin_rec.last_update_date
2755              , l_trolin_rec.last_update_login
2756              , l_trolin_rec.line_id
2757              , l_trolin_rec.line_number
2758              , l_trolin_rec.line_status
2759              , l_trolin_rec.lot_number
2760              , l_trolin_rec.organization_id
2761              , l_trolin_rec.program_application_id
2762              , l_trolin_rec.program_id
2763              , l_trolin_rec.program_update_date
2764              , l_trolin_rec.project_id
2765              , l_trolin_rec.quantity
2766              , l_trolin_rec.quantity_delivered
2767              , l_trolin_rec.quantity_detailed
2768              , l_trolin_rec.reason_id
2769              , l_trolin_rec.REFERENCE
2770              , l_trolin_rec.reference_id
2771              , l_trolin_rec.reference_type_code
2772              , l_trolin_rec.request_id
2773              , l_trolin_rec.revision
2774              , l_trolin_rec.serial_number_end
2775              , l_trolin_rec.serial_number_start
2776              , l_trolin_rec.status_date
2777              , l_trolin_rec.task_id
2778              , l_trolin_rec.to_account_id
2779              , l_trolin_rec.to_locator_id
2780              , l_trolin_rec.to_subinventory_code
2781              , l_trolin_rec.to_subinventory_id
2782              , l_trolin_rec.transaction_header_id
2783              , l_trolin_rec.uom_code
2784              , l_trolin_rec.transaction_type_id
2785              , l_trolin_rec.transaction_source_type_id
2786              , l_trolin_rec.txn_source_id
2787              , l_trolin_rec.txn_source_line_id
2788              , l_trolin_rec.txn_source_line_detail_id
2789              , l_trolin_rec.to_organization_id
2790              , l_trolin_rec.primary_quantity
2791              , l_trolin_rec.pick_strategy_id
2792              , l_trolin_rec.put_away_strategy_id
2793              , l_trolin_rec.unit_number
2794              , l_trolin_rec.ship_to_location_id
2795              , l_trolin_rec.from_cost_group_id
2796              , l_trolin_rec.to_cost_group_id
2797              , l_trolin_rec.lpn_id
2798              , l_trolin_rec.to_lpn_id
2799              , l_trolin_rec.inspection_status
2800              , l_trolin_rec.pick_methodology_id
2801              , l_trolin_rec.container_item_id
2802              , l_trolin_rec.carton_grouping_id
2803              , l_trolin_rec.wms_process_flag
2804              , l_trolin_rec.pick_slip_number
2805              , l_trolin_rec.pick_slip_date
2806              , l_trolin_rec.ship_set_id
2807              , l_trolin_rec.ship_model_id
2808              , l_trolin_rec.model_quantity
2809              , l_trolin_rec.required_quantity
2810 --INVCONV BEGIN
2811               , l_trolin_rec.secondary_quantity
2812               , l_trolin_rec.secondary_quantity_delivered
2813               , l_trolin_rec.secondary_quantity_detailed
2814               , l_trolin_rec.uom_code
2815               , l_trolin_rec.grade_code
2816               , l_trolin_rec.secondary_required_quantity
2817 --INVCONV END
2818           FROM mtl_txn_request_lines
2819          WHERE line_id = p_trolin_rec.line_id
2820     FOR UPDATE NOWAIT;
2821 
2822     --  Row locked. Compare IN attributes to DB attributes.
2823 
2824     IF  inv_globals.equal(p_trolin_rec.attribute1, l_trolin_rec.attribute1)
2825         AND inv_globals.equal(p_trolin_rec.attribute10, l_trolin_rec.attribute10)
2826         AND inv_globals.equal(p_trolin_rec.attribute11, l_trolin_rec.attribute11)
2827         AND inv_globals.equal(p_trolin_rec.attribute12, l_trolin_rec.attribute12)
2828         AND inv_globals.equal(p_trolin_rec.attribute13, l_trolin_rec.attribute13)
2829         AND inv_globals.equal(p_trolin_rec.attribute14, l_trolin_rec.attribute14)
2830         AND inv_globals.equal(p_trolin_rec.attribute15, l_trolin_rec.attribute15)
2831         AND inv_globals.equal(p_trolin_rec.attribute2, l_trolin_rec.attribute2)
2832         AND inv_globals.equal(p_trolin_rec.attribute3, l_trolin_rec.attribute3)
2833         AND inv_globals.equal(p_trolin_rec.attribute4, l_trolin_rec.attribute4)
2834         AND inv_globals.equal(p_trolin_rec.attribute5, l_trolin_rec.attribute5)
2835         AND inv_globals.equal(p_trolin_rec.attribute6, l_trolin_rec.attribute6)
2836         AND inv_globals.equal(p_trolin_rec.attribute7, l_trolin_rec.attribute7)
2837         AND inv_globals.equal(p_trolin_rec.attribute8, l_trolin_rec.attribute8)
2838         AND inv_globals.equal(p_trolin_rec.attribute9, l_trolin_rec.attribute9)
2839         AND inv_globals.equal(p_trolin_rec.attribute_category, l_trolin_rec.attribute_category)
2840         AND (inv_globals.equal(p_trolin_rec.created_by, l_trolin_rec.created_by)
2841              OR (p_trolin_rec.created_by = fnd_api.g_miss_num
2842                  AND l_trolin_rec.created_by IS NULL
2843                 )
2844             )
2845         AND (inv_globals.equal(p_trolin_rec.creation_date, l_trolin_rec.creation_date)
2846              OR (p_trolin_rec.creation_date = fnd_api.g_miss_date
2847                  AND l_trolin_rec.creation_date IS NULL
2848                 )
2849             )
2850         AND (inv_globals.equal(p_trolin_rec.date_required, l_trolin_rec.date_required)
2851              OR (p_trolin_rec.date_required = fnd_api.g_miss_date
2852                  AND l_trolin_rec.date_required IS NULL
2853                 )
2854             )
2855         AND (inv_globals.equal(p_trolin_rec.from_locator_id, l_trolin_rec.from_locator_id)
2856              OR (p_trolin_rec.from_locator_id = fnd_api.g_miss_num
2857                  AND l_trolin_rec.from_locator_id IS NULL
2858                 )
2859             )
2860         AND (inv_globals.equal(p_trolin_rec.from_subinventory_code, l_trolin_rec.from_subinventory_code)
2861              OR (p_trolin_rec.from_subinventory_code = fnd_api.g_miss_char
2862                  AND l_trolin_rec.from_subinventory_code IS NULL
2863                 )
2864             )
2865         AND (inv_globals.equal(p_trolin_rec.from_subinventory_id, l_trolin_rec.from_subinventory_id)
2866              OR (p_trolin_rec.from_subinventory_id = fnd_api.g_miss_num
2867                  AND l_trolin_rec.from_subinventory_id IS NULL
2868                 )
2869             )
2870         AND (inv_globals.equal(p_trolin_rec.header_id, l_trolin_rec.header_id)
2871              OR (p_trolin_rec.header_id = fnd_api.g_miss_num
2872                  AND l_trolin_rec.header_id IS NULL
2873                 )
2874             )
2875         AND (inv_globals.equal(p_trolin_rec.inventory_item_id, l_trolin_rec.inventory_item_id)
2876              OR (p_trolin_rec.inventory_item_id = fnd_api.g_miss_num
2877                  AND l_trolin_rec.inventory_item_id IS NULL
2878                 )
2879             )
2880         AND (inv_globals.equal(p_trolin_rec.last_updated_by, l_trolin_rec.last_updated_by)
2881              OR (p_trolin_rec.last_updated_by = fnd_api.g_miss_num
2882                  AND l_trolin_rec.last_updated_by IS NULL
2883                 )
2884             )
2885         AND (inv_globals.equal(p_trolin_rec.last_update_date, l_trolin_rec.last_update_date)
2886              OR (p_trolin_rec.last_update_date = fnd_api.g_miss_date
2887                  AND l_trolin_rec.last_update_date IS NULL
2888                 )
2889             )
2890         AND (inv_globals.equal(p_trolin_rec.last_update_login, l_trolin_rec.last_update_login)
2891              OR (p_trolin_rec.last_update_login = fnd_api.g_miss_num
2892                  AND l_trolin_rec.last_update_login IS NULL
2893                 )
2894             )
2895         AND (inv_globals.equal(p_trolin_rec.line_id, l_trolin_rec.line_id)
2896              OR (p_trolin_rec.line_id = fnd_api.g_miss_num
2897                  AND l_trolin_rec.line_id IS NULL
2898                 )
2899             )
2900         AND (inv_globals.equal(p_trolin_rec.line_number, l_trolin_rec.line_number)
2901              OR (p_trolin_rec.line_number = fnd_api.g_miss_num
2902                  AND l_trolin_rec.line_number IS NULL
2903                 )
2904             )
2905         AND (inv_globals.equal(p_trolin_rec.line_status, l_trolin_rec.line_status)
2906              OR (p_trolin_rec.line_status = fnd_api.g_miss_num
2907                  AND l_trolin_rec.line_status IS NULL
2908                 )
2909             )
2910         AND (inv_globals.equal(p_trolin_rec.lot_number, l_trolin_rec.lot_number)
2911              OR (p_trolin_rec.lot_number = fnd_api.g_miss_char
2912                  AND l_trolin_rec.lot_number IS NULL
2913                 )
2914             )
2915         AND (inv_globals.equal(p_trolin_rec.organization_id, l_trolin_rec.organization_id)
2916              OR (p_trolin_rec.organization_id = fnd_api.g_miss_num
2917                  AND l_trolin_rec.organization_id IS NULL
2918                 )
2919             )
2920         AND (inv_globals.equal(p_trolin_rec.program_application_id, l_trolin_rec.program_application_id)
2921              OR (p_trolin_rec.program_application_id = fnd_api.g_miss_num
2922                  AND l_trolin_rec.program_application_id IS NULL
2923                 )
2924             )
2925         AND (inv_globals.equal(p_trolin_rec.program_id, l_trolin_rec.program_id)
2926              OR (p_trolin_rec.program_id = fnd_api.g_miss_num
2927                  AND l_trolin_rec.program_id IS NULL
2928                 )
2929             )
2930         AND (inv_globals.equal(p_trolin_rec.program_update_date, l_trolin_rec.program_update_date)
2931              OR (p_trolin_rec.program_update_date = fnd_api.g_miss_date
2932                  AND l_trolin_rec.program_update_date IS NOT NULL
2933                 )
2934             )
2935         AND (inv_globals.equal(p_trolin_rec.project_id, l_trolin_rec.project_id)
2936              OR (p_trolin_rec.project_id = fnd_api.g_miss_num
2937                  AND l_trolin_rec.project_id IS NULL
2938                 )
2939             )
2940         AND (inv_globals.equal(p_trolin_rec.quantity, l_trolin_rec.quantity)
2941              OR (p_trolin_rec.quantity = fnd_api.g_miss_num
2942                  AND l_trolin_rec.quantity IS NULL
2943                 )
2944             )
2945         AND (inv_globals.equal(p_trolin_rec.quantity_delivered, l_trolin_rec.quantity_delivered)
2946              OR (p_trolin_rec.quantity_delivered = fnd_api.g_miss_num
2947                  AND l_trolin_rec.quantity_delivered IS NULL
2948                 )
2949             )
2950         AND (inv_globals.equal(p_trolin_rec.quantity_detailed, l_trolin_rec.quantity_detailed)
2951              OR (p_trolin_rec.quantity_detailed = fnd_api.g_miss_num
2952                  AND l_trolin_rec.quantity_detailed IS NULL
2953                 )
2954             )
2955         AND (inv_globals.equal(p_trolin_rec.reason_id, l_trolin_rec.reason_id)
2956              OR (p_trolin_rec.reason_id = fnd_api.g_miss_num
2957                  AND l_trolin_rec.reason_id IS NULL
2958                 )
2959             )
2960         AND (inv_globals.equal(p_trolin_rec.REFERENCE, l_trolin_rec.REFERENCE)
2961              OR (p_trolin_rec.REFERENCE = fnd_api.g_miss_char
2962                  AND l_trolin_rec.REFERENCE IS NULL
2963                 )
2964             )
2965         AND (inv_globals.equal(p_trolin_rec.reference_id, l_trolin_rec.reference_id)
2966              OR (p_trolin_rec.reference_id = fnd_api.g_miss_num
2967                  AND l_trolin_rec.reference_id IS NULL
2968                 )
2969             )
2970         AND (inv_globals.equal(p_trolin_rec.reference_type_code, l_trolin_rec.reference_type_code)
2971              OR (l_trolin_rec.reference_type_code = fnd_api.g_miss_num
2972                  AND l_trolin_rec.reference_type_code IS NULL
2973                 )
2974             )
2975         AND (inv_globals.equal(p_trolin_rec.request_id, l_trolin_rec.request_id)
2976              OR (p_trolin_rec.request_id = fnd_api.g_miss_num
2977                  AND l_trolin_rec.request_id IS NULL
2978                 )
2979             )
2980         AND (inv_globals.equal(p_trolin_rec.revision, l_trolin_rec.revision)
2981              OR (p_trolin_rec.revision = fnd_api.g_miss_char
2982                  AND l_trolin_rec.revision IS NULL
2983                 )
2984             )
2985         AND (inv_globals.equal(p_trolin_rec.serial_number_end, l_trolin_rec.serial_number_end)
2986              OR (p_trolin_rec.serial_number_end = fnd_api.g_miss_char
2987                  AND l_trolin_rec.serial_number_end IS NULL
2988                 )
2989             )
2990         AND (inv_globals.equal(p_trolin_rec.serial_number_start, l_trolin_rec.serial_number_start)
2991              OR (p_trolin_rec.serial_number_start = fnd_api.g_miss_char
2992                  AND l_trolin_rec.serial_number_start IS NULL
2993                 )
2994             )
2995         AND (inv_globals.equal(p_trolin_rec.status_date, l_trolin_rec.status_date)
2996              OR (p_trolin_rec.status_date = fnd_api.g_miss_date
2997                  AND l_trolin_rec.status_date IS NULL
2998                 )
2999             )
3000         AND (inv_globals.equal(p_trolin_rec.task_id, l_trolin_rec.task_id)
3001              OR (p_trolin_rec.task_id = fnd_api.g_miss_num
3002                  AND l_trolin_rec.task_id IS NULL
3003                 )
3004             )
3005         AND (inv_globals.equal(p_trolin_rec.to_account_id, l_trolin_rec.to_account_id)
3006              OR (p_trolin_rec.to_account_id = fnd_api.g_miss_num
3007                  AND l_trolin_rec.to_account_id IS NULL
3008                 )
3009             )
3010         AND (inv_globals.equal(p_trolin_rec.to_locator_id, l_trolin_rec.to_locator_id)
3011              OR (p_trolin_rec.to_locator_id = fnd_api.g_miss_num
3012                  AND l_trolin_rec.to_locator_id IS NULL
3013                 )
3014             )
3015         AND (inv_globals.equal(p_trolin_rec.to_subinventory_code, l_trolin_rec.to_subinventory_code)
3016              OR (p_trolin_rec.to_subinventory_code = fnd_api.g_miss_char
3017                  AND l_trolin_rec.to_subinventory_code IS NULL
3018                 )
3019             )
3020         AND (inv_globals.equal(p_trolin_rec.to_subinventory_id, l_trolin_rec.to_subinventory_id)
3021              OR (p_trolin_rec.to_subinventory_id = fnd_api.g_miss_num
3022                  AND l_trolin_rec.to_subinventory_id IS NULL
3023                 )
3024             )
3025         AND (inv_globals.equal(p_trolin_rec.transaction_header_id, l_trolin_rec.transaction_header_id)
3026              OR (p_trolin_rec.transaction_header_id = fnd_api.g_miss_num
3027                  AND l_trolin_rec.transaction_header_id IS NULL
3028                 )
3029             )
3030         AND (inv_globals.equal(p_trolin_rec.uom_code, l_trolin_rec.uom_code)
3031              OR (p_trolin_rec.uom_code = fnd_api.g_miss_char
3032                  AND p_trolin_rec.uom_code IS NULL
3033                 )
3034             )
3035         AND (inv_globals.equal(p_trolin_rec.transaction_type_id, l_trolin_rec.transaction_type_id)
3036              OR (p_trolin_rec.transaction_type_id = fnd_api.g_miss_num
3037                  AND l_trolin_rec.transaction_type_id IS NULL
3038                 )
3039             )
3040         AND (inv_globals.equal(p_trolin_rec.transaction_source_type_id, l_trolin_rec.transaction_source_type_id)
3041              OR (p_trolin_rec.transaction_source_type_id = fnd_api.g_miss_num
3042                  AND l_trolin_rec.transaction_source_type_id IS NULL
3043                 )
3044             )
3045         AND (inv_globals.equal(p_trolin_rec.txn_source_id, l_trolin_rec.txn_source_id)
3046              OR (p_trolin_rec.txn_source_id = fnd_api.g_miss_num
3047                  AND l_trolin_rec.txn_source_id IS NULL
3048                 )
3049             )
3050         AND inv_globals.equal(p_trolin_rec.txn_source_line_id, l_trolin_rec.txn_source_line_id)
3051         AND (inv_globals.equal(p_trolin_rec.txn_source_line_detail_id, l_trolin_rec.txn_source_line_detail_id)
3052              OR (p_trolin_rec.txn_source_line_detail_id = fnd_api.g_miss_num
3053                  AND l_trolin_rec.txn_source_line_detail_id IS NULL
3054                 )
3055             )
3056         AND (inv_globals.equal(p_trolin_rec.primary_quantity, l_trolin_rec.primary_quantity)
3057              OR (p_trolin_rec.primary_quantity = fnd_api.g_miss_num
3058                  AND l_trolin_rec.primary_quantity IS NULL
3059                 )
3060             )
3061         AND (inv_globals.equal(p_trolin_rec.to_organization_id, l_trolin_rec.to_organization_id)
3062              OR (p_trolin_rec.to_organization_id = fnd_api.g_miss_num
3063                  AND l_trolin_rec.to_organization_id IS NULL
3064                 )
3065             )
3066         AND (inv_globals.equal(p_trolin_rec.pick_strategy_id, l_trolin_rec.pick_strategy_id)
3067              OR (p_trolin_rec.pick_strategy_id = fnd_api.g_miss_num
3068                  AND l_trolin_rec.pick_strategy_id IS NULL
3069                 )
3070             )
3071         AND (inv_globals.equal(p_trolin_rec.put_away_strategy_id, l_trolin_rec.put_away_strategy_id)
3072              OR (p_trolin_rec.put_away_strategy_id = fnd_api.g_miss_num
3073                  AND l_trolin_rec.put_away_strategy_id IS NULL
3074                 )
3075             )
3076         AND (inv_globals.equal(p_trolin_rec.unit_number, l_trolin_rec.unit_number)
3077              OR (p_trolin_rec.unit_number = fnd_api.g_miss_char
3078                  AND l_trolin_rec.unit_number IS NULL
3079                 )
3080             )
3081         AND (inv_globals.equal(p_trolin_rec.ship_to_location_id, l_trolin_rec.ship_to_location_id)
3082              OR (p_trolin_rec.ship_to_location_id = fnd_api.g_miss_num
3083                  AND l_trolin_rec.ship_to_location_id IS NULL
3084                 )
3085             )
3086         AND (inv_globals.equal(p_trolin_rec.from_cost_group_id, l_trolin_rec.from_cost_group_id)
3087              OR (p_trolin_rec.from_cost_group_id = fnd_api.g_miss_num
3088                  AND l_trolin_rec.to_cost_group_id IS NULL
3089                 )
3090             )
3091         AND (inv_globals.equal(p_trolin_rec.to_cost_group_id, l_trolin_rec.to_cost_group_id)
3092              OR (p_trolin_rec.to_cost_group_id = fnd_api.g_miss_num
3093                  AND l_trolin_rec.to_cost_group_id IS NULL
3094                 )
3095             )
3096         AND (inv_globals.equal(p_trolin_rec.lpn_id, l_trolin_rec.lpn_id)
3097              OR (p_trolin_rec.lpn_id = fnd_api.g_miss_num
3098                  AND l_trolin_rec.lpn_id IS NULL
3099                 )
3100             )
3101         AND (inv_globals.equal(p_trolin_rec.to_lpn_id, l_trolin_rec.to_lpn_id)
3102              OR (p_trolin_rec.to_lpn_id = fnd_api.g_miss_num
3103                  AND l_trolin_rec.to_lpn_id IS NULL
3104                 )
3105             )
3106         AND inv_globals.equal(p_trolin_rec.inspection_status, l_trolin_rec.inspection_status)
3107         AND (inv_globals.equal(p_trolin_rec.pick_methodology_id, l_trolin_rec.pick_methodology_id)
3108              OR (p_trolin_rec.pick_methodology_id = fnd_api.g_miss_num
3109                  AND l_trolin_rec.pick_methodology_id IS NULL
3110                 )
3111             )
3112         AND (inv_globals.equal(p_trolin_rec.container_item_id, l_trolin_rec.container_item_id)
3113              OR (p_trolin_rec.container_item_id = fnd_api.g_miss_num
3114                  AND l_trolin_rec.container_item_id IS NULL
3115                 )
3116             )
3117         AND (inv_globals.equal(p_trolin_rec.carton_grouping_id, l_trolin_rec.carton_grouping_id)
3118              OR (p_trolin_rec.carton_grouping_id = fnd_api.g_miss_num
3119                  AND l_trolin_rec.carton_grouping_id IS NULL
3120                 )
3121             )
3122         AND (inv_globals.equal(p_trolin_rec.wms_process_flag, l_trolin_rec.wms_process_flag)
3123              OR (p_trolin_rec.wms_process_flag = fnd_api.g_miss_char
3124                  AND l_trolin_rec.wms_process_flag IS NULL
3125                 )
3126             )
3127         AND (inv_globals.equal(p_trolin_rec.pick_slip_number, l_trolin_rec.pick_slip_number)
3128              OR (p_trolin_rec.pick_slip_number = fnd_api.g_miss_num
3129                  AND l_trolin_rec.pick_slip_number IS NULL
3130                 )
3131             )
3132         AND (inv_globals.equal(p_trolin_rec.pick_slip_date, l_trolin_rec.pick_slip_date)
3133              OR (p_trolin_rec.pick_slip_date = fnd_api.g_miss_date
3134                  AND l_trolin_rec.pick_slip_date IS NULL
3135                 )
3136             )
3137         AND (inv_globals.equal(p_trolin_rec.ship_set_id, l_trolin_rec.ship_set_id)
3138              OR (p_trolin_rec.ship_set_id = fnd_api.g_miss_num
3139                  AND l_trolin_rec.ship_set_id IS NULL
3140                 )
3141             )
3142         AND (inv_globals.equal(p_trolin_rec.ship_model_id, l_trolin_rec.ship_model_id)
3143              OR (p_trolin_rec.ship_model_id = fnd_api.g_miss_num
3144                  AND l_trolin_rec.ship_model_id IS NULL
3145                 )
3146             )
3147         AND (inv_globals.equal(p_trolin_rec.model_quantity, l_trolin_rec.model_quantity)
3148              OR (p_trolin_rec.model_quantity = fnd_api.g_miss_num
3149                  AND l_trolin_rec.model_quantity IS NULL
3150                 )
3151             ) THEN
3152       --  Row has not changed. Set out parameter.
3153 
3154       x_trolin_rec                := l_trolin_rec;
3155       --  Set return status
3156 
3157       x_return_status             := fnd_api.g_ret_sts_success;
3158       x_trolin_rec.return_status  := fnd_api.g_ret_sts_success;
3159     ELSE
3160       --  Row has changed by another user.
3161 
3162       x_return_status             := fnd_api.g_ret_sts_error;
3163       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3164 
3165       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3166         fnd_message.set_name('INV', 'OE_LOCK_ROW_CHANGED');
3167         fnd_msg_pub.ADD;
3168       END IF;
3169     END IF;
3170   --Line2086
3171   EXCEPTION
3172     WHEN NO_DATA_FOUND THEN
3173       x_return_status             := fnd_api.g_ret_sts_error;
3174       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3175 
3176       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3177         fnd_message.set_name('INV', 'OE_LOCK_ROW_DELETED');
3178         fnd_msg_pub.ADD;
3179       END IF;
3180     WHEN app_exceptions.record_lock_exception THEN
3181       x_return_status             := fnd_api.g_ret_sts_error;
3182       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3183 
3184       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3185         fnd_message.set_name('INV', 'OE_LOCK_ROW_ALREADY_LOCKED');
3186         fnd_msg_pub.ADD;
3187       END IF;
3188     WHEN OTHERS THEN
3189       x_return_status             := fnd_api.g_ret_sts_unexp_error;
3190       x_trolin_rec.return_status  := fnd_api.g_ret_sts_unexp_error;
3191 
3192       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3193         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Lock_Row');
3194       END IF;
3195   END lock_row;
3196 
3197   --  Function Get_Values
3198 
3199   FUNCTION get_values(p_trolin_rec IN inv_move_order_pub.trolin_rec_type, p_old_trolin_rec IN inv_move_order_pub.trolin_rec_type := inv_move_order_pub.g_miss_trolin_rec)
3200     RETURN inv_move_order_pub.trolin_val_rec_type IS
3201     l_trolin_val_rec inv_move_order_pub.trolin_val_rec_type;
3202   BEGIN
3203     -- Line2147
3204     IF  p_trolin_rec.from_locator_id IS NOT NULL
3205         AND p_trolin_rec.from_locator_id <> fnd_api.g_miss_num
3206         AND NOT inv_globals.equal(p_trolin_rec.from_locator_id, p_old_trolin_rec.from_locator_id) THEN
3207       l_trolin_val_rec.from_locator  := inv_id_to_value.from_locator(p_from_locator_id => p_trolin_rec.from_locator_id);
3208     END IF;
3209 
3210     --    IF p_trolin_rec.from_subinventory_code IS NOT NULL AND
3211     --        p_trolin_rec.from_subinventory_code <> FND_API.G_MISS_CHAR AND
3212     --        NOT INV_GLOBALS.Equal(p_trolin_rec.from_subinventory_code,
3213     --        p_old_trolin_rec.from_subinventory_code)
3214     --    THEN
3215     --        l_trolin_val_rec.from_subinventory := INV_Id_To_Value.From_Subinventory
3216     --        (   p_from_subinventory_code      => p_trolin_rec.from_subinventory_code
3217     --        );
3218     --    END IF;  -- Generated
3219     -- Line 2167
3220     IF  p_trolin_rec.from_subinventory_id IS NOT NULL
3221         AND p_trolin_rec.from_subinventory_id <> fnd_api.g_miss_num
3222         AND NOT inv_globals.equal(p_trolin_rec.from_subinventory_id, p_old_trolin_rec.from_subinventory_id) THEN
3223       l_trolin_val_rec.from_subinventory  := inv_id_to_value.from_subinventory(p_from_subinventory_id => p_trolin_rec.from_subinventory_id);
3224     --        (   p_from_subinventory_id        => p_trolin_rec.from_subinventory_id
3225     --        );
3226     END IF;
3227 
3228     IF  p_trolin_rec.header_id IS NOT NULL
3229         AND p_trolin_rec.header_id <> fnd_api.g_miss_num
3230         AND NOT inv_globals.equal(p_trolin_rec.header_id, p_old_trolin_rec.header_id) THEN
3231       l_trolin_val_rec.header  := inv_id_to_value.header(p_header_id => p_trolin_rec.header_id);
3232     END IF;
3233 
3234     IF  p_trolin_rec.inventory_item_id IS NOT NULL
3235         AND p_trolin_rec.inventory_item_id <> fnd_api.g_miss_num
3236         AND NOT inv_globals.equal(p_trolin_rec.inventory_item_id, p_old_trolin_rec.inventory_item_id) THEN
3237       l_trolin_val_rec.inventory_item  := inv_id_to_value.inventory_item(p_inventory_item_id => p_trolin_rec.inventory_item_id);
3238     END IF;
3239 
3240     IF  p_trolin_rec.line_id IS NOT NULL
3241         AND p_trolin_rec.line_id <> fnd_api.g_miss_num
3242         AND NOT inv_globals.equal(p_trolin_rec.line_id, p_old_trolin_rec.line_id) THEN
3243       l_trolin_val_rec.line  := inv_id_to_value.line(p_line_id => p_trolin_rec.line_id);
3244     END IF;
3245 
3246     IF  p_trolin_rec.organization_id IS NOT NULL
3247         AND p_trolin_rec.organization_id <> fnd_api.g_miss_num
3248         AND NOT inv_globals.equal(p_trolin_rec.organization_id, p_old_trolin_rec.organization_id) THEN
3249       l_trolin_val_rec.ORGANIZATION  := inv_id_to_value.ORGANIZATION(p_organization_id => p_trolin_rec.organization_id);
3250     END IF;
3251 
3252     IF  p_trolin_rec.to_organization_id IS NOT NULL
3253         AND p_trolin_rec.to_organization_id <> fnd_api.g_miss_num
3254         AND NOT inv_globals.equal(p_trolin_rec.to_organization_id, p_old_trolin_rec.to_organization_id) THEN
3255       l_trolin_val_rec.to_organization  := inv_id_to_value.to_organization(p_to_organization_id => p_trolin_rec.to_organization_id);
3256     END IF;
3257 
3258     IF  p_trolin_rec.project_id IS NOT NULL
3259         AND p_trolin_rec.project_id <> fnd_api.g_miss_num
3260         AND NOT inv_globals.equal(p_trolin_rec.project_id, p_old_trolin_rec.project_id) THEN
3261       l_trolin_val_rec.project  := inv_id_to_value.project(p_project_id => p_trolin_rec.project_id);
3262     END IF;
3263 
3264     IF  p_trolin_rec.reason_id IS NOT NULL
3265         AND p_trolin_rec.reason_id <> fnd_api.g_miss_num
3266         AND NOT inv_globals.equal(p_trolin_rec.reason_id, p_old_trolin_rec.reason_id) THEN
3267       l_trolin_val_rec.reason  := inv_id_to_value.reason(p_reason_id => p_trolin_rec.reason_id);
3268     END IF;
3269 
3270     IF  p_trolin_rec.reference_id IS NOT NULL
3271         AND p_trolin_rec.reference_id <> fnd_api.g_miss_num
3272         AND NOT inv_globals.equal(p_trolin_rec.reference_id, p_old_trolin_rec.reference_id) THEN
3273       l_trolin_val_rec.REFERENCE  := inv_id_to_value.REFERENCE(p_reference_id => p_trolin_rec.reference_id);
3274     END IF;
3275 
3276     IF  p_trolin_rec.reference_type_code IS NOT NULL
3277         AND p_trolin_rec.reference_type_code <> fnd_api.g_miss_num
3278         AND NOT inv_globals.equal(p_trolin_rec.reference_type_code, p_old_trolin_rec.reference_type_code) THEN
3279       l_trolin_val_rec.reference_type  := inv_id_to_value.reference_type(p_reference_type_code => p_trolin_rec.reference_type_code);
3280     END IF;
3281 
3282     IF  p_trolin_rec.task_id IS NOT NULL
3283         AND p_trolin_rec.task_id <> fnd_api.g_miss_num
3284         AND NOT inv_globals.equal(p_trolin_rec.task_id, p_old_trolin_rec.task_id) THEN
3285       l_trolin_val_rec.task  := inv_id_to_value.task(p_task_id => p_trolin_rec.task_id);
3286     END IF;
3287 
3288     IF  p_trolin_rec.to_account_id IS NOT NULL
3289         AND p_trolin_rec.to_account_id <> fnd_api.g_miss_num
3290         AND NOT inv_globals.equal(p_trolin_rec.to_account_id, p_old_trolin_rec.to_account_id) THEN
3291       l_trolin_val_rec.to_account  := inv_id_to_value.to_account(p_to_account_id => p_trolin_rec.to_account_id);
3292     END IF;
3293 
3294     IF  p_trolin_rec.to_locator_id IS NOT NULL
3295         AND p_trolin_rec.to_locator_id <> fnd_api.g_miss_num
3296         AND NOT inv_globals.equal(p_trolin_rec.to_locator_id, p_old_trolin_rec.to_locator_id) THEN
3297       l_trolin_val_rec.to_locator  := inv_id_to_value.to_locator(p_to_locator_id => p_trolin_rec.to_locator_id);
3298     END IF;
3299 
3300     --    IF p_trolin_rec.to_subinventory_code IS NOT NULL AND
3301     --        p_trolin_rec.to_subinventory_code <> FND_API.G_MISS_CHAR AND
3302     --        NOT INV_GLOBALS.Equal(p_trolin_rec.to_subinventory_code,
3303     --        p_old_trolin_rec.to_subinventory_code)
3304     --    THEN
3305     --        l_trolin_val_rec.to_subinventory := INV_Id_To_Value.To_Subinventory
3306     --        (   p_to_subinventory_code        => p_trolin_rec.to_subinventory_code
3307     --        );
3308     --    END IF; -- Generated
3309 
3310     IF  p_trolin_rec.to_subinventory_id IS NOT NULL
3311         AND p_trolin_rec.to_subinventory_id <> fnd_api.g_miss_num
3312         AND NOT inv_globals.equal(p_trolin_rec.to_subinventory_id, p_old_trolin_rec.to_subinventory_id) THEN
3313       l_trolin_val_rec.to_subinventory  := inv_id_to_value.to_subinventory(p_to_subinventory_id => p_trolin_rec.to_subinventory_id);
3314     END IF;
3315 
3316     IF  p_trolin_rec.transaction_header_id IS NOT NULL
3317         AND p_trolin_rec.transaction_header_id <> fnd_api.g_miss_num
3318         AND NOT inv_globals.equal(p_trolin_rec.transaction_header_id, p_old_trolin_rec.transaction_header_id) THEN
3319       l_trolin_val_rec.transaction_header  := inv_id_to_value.transaction_header(p_transaction_header_id => p_trolin_rec.transaction_header_id);
3320     END IF;
3321 
3322     IF  p_trolin_rec.transaction_type_id IS NOT NULL
3323         AND p_trolin_rec.transaction_type_id <> fnd_api.g_miss_num
3324         AND NOT inv_globals.equal(p_trolin_rec.transaction_type_id, p_old_trolin_rec.transaction_type_id) THEN
3325       l_trolin_val_rec.transaction_type  := inv_id_to_value.transaction_type(p_transaction_type_id => p_trolin_rec.transaction_type_id);
3326     END IF;
3327 
3328     IF  p_trolin_rec.uom_code IS NOT NULL
3329         AND p_trolin_rec.uom_code <> fnd_api.g_miss_char
3330         AND NOT inv_globals.equal(p_trolin_rec.uom_code, p_old_trolin_rec.uom_code) THEN
3331       l_trolin_val_rec.uom  := inv_id_to_value.uom(p_uom_code => p_trolin_rec.uom_code);
3332     END IF;
3333 
3334     RETURN l_trolin_val_rec;
3335   END get_values;
3336 
3337   --  Function Get_Ids
3338 
3339   FUNCTION get_ids(p_trolin_rec IN inv_move_order_pub.trolin_rec_type, p_trolin_val_rec IN inv_move_order_pub.trolin_val_rec_type)
3340     RETURN inv_move_order_pub.trolin_rec_type IS
3341     l_trolin_rec inv_move_order_pub.trolin_rec_type;
3342   BEGIN
3343     --  initialize  return_status.
3344 
3345     l_trolin_rec.return_status  := fnd_api.g_ret_sts_success;
3346     --  initialize l_trolin_rec.
3347 
3348     l_trolin_rec                := p_trolin_rec;
3349 
3350     /*
3351         IF  p_trolin_val_rec.from_locator <> FND_API.G_MISS_CHAR
3352         THEN
3353 
3354             IF p_trolin_rec.from_locator_id <> FND_API.G_MISS_NUM THEN
3355 
3356                 l_trolin_rec.from_locator_id := p_trolin_rec.from_locator_id;
3357 
3358                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3359                 THEN
3360 
3361                     FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
3362                     FND_MESSAGE.SET_TOKEN('ATTRIBUTE','from_locator');
3363                     FND_MSG_PUB.Add;
3364 
3365                 END IF;
3366 
3367             ELSE
3368 
3369                 l_trolin_rec.from_locator_id := INV_Value_To_Id.from_locator
3370                 (   p_organizatoin_id             => p_trolin_rec.organization_id,
3371                     p_from_locator                => p_trolin_val_rec.from_locator
3372                 );
3373 
3374                 IF l_trolin_rec.from_locator_id = FND_API.G_MISS_NUM THEN
3375                     l_trolin_rec.return_status := FND_API.G_RET_STS_ERROR;
3376                 END IF;
3377 
3378             END IF;
3379 
3380         END IF;
3381     */
3382 
3383     IF p_trolin_val_rec.from_subinventory <> fnd_api.g_miss_char THEN
3384       IF p_trolin_rec.from_subinventory_id <> fnd_api.g_miss_num THEN
3385         l_trolin_rec.from_subinventory_id  := p_trolin_rec.from_subinventory_id;
3386 
3387         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3388           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3389           fnd_message.set_token('ATTRIBUTE', 'from_subinventory');
3390           fnd_msg_pub.ADD;
3391         END IF;
3392       ELSE
3393         l_trolin_rec.from_subinventory_id  := inv_value_to_id.from_subinventory(p_organization_id => p_trolin_rec.organization_id, p_from_subinventory => p_trolin_val_rec.from_subinventory);
3394 
3395         IF l_trolin_rec.from_subinventory_id = fnd_api.g_miss_num THEN
3396           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3397         END IF;
3398       END IF;
3399     END IF;
3400 
3401     IF p_trolin_val_rec.header <> fnd_api.g_miss_char THEN
3402       IF p_trolin_rec.header_id <> fnd_api.g_miss_num THEN
3403         l_trolin_rec.header_id  := p_trolin_rec.header_id;
3404 
3405         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3406           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3407           fnd_message.set_token('ATTRIBUTE', 'header');
3408           fnd_msg_pub.ADD;
3409         END IF;
3410       ELSE
3411         l_trolin_rec.header_id  := inv_value_to_id.header(p_header => p_trolin_val_rec.header);
3412 
3413         IF l_trolin_rec.header_id = fnd_api.g_miss_num THEN
3414           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3415         END IF;
3416       END IF;
3417     END IF;
3418 
3419     IF p_trolin_val_rec.inventory_item <> fnd_api.g_miss_char THEN
3420       IF p_trolin_rec.inventory_item_id <> fnd_api.g_miss_num THEN
3421         l_trolin_rec.inventory_item_id  := p_trolin_rec.inventory_item_id;
3422 
3423         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3424           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3425           fnd_message.set_token('ATTRIBUTE', 'inventory_item');
3426           fnd_msg_pub.ADD;
3427         END IF;
3428       ELSE
3429         l_trolin_rec.inventory_item_id  := inv_value_to_id.inventory_item(p_organization_id => p_trolin_rec.organization_id, p_inventory_item => p_trolin_val_rec.inventory_item);
3430 
3431         IF l_trolin_rec.inventory_item_id = fnd_api.g_miss_num THEN
3432           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3433         END IF;
3434       END IF;
3435     END IF;
3436 
3437     IF p_trolin_val_rec.line <> fnd_api.g_miss_char THEN
3438       IF p_trolin_rec.line_id <> fnd_api.g_miss_num THEN
3439         l_trolin_rec.line_id  := p_trolin_rec.line_id;
3440 
3441         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3442           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3443           fnd_message.set_token('ATTRIBUTE', 'line');
3444           fnd_msg_pub.ADD;
3445         END IF;
3446       ELSE
3447         l_trolin_rec.line_id  := inv_value_to_id.line(p_line => p_trolin_val_rec.line);
3448 
3449         IF l_trolin_rec.line_id = fnd_api.g_miss_num THEN
3450           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3451         END IF;
3452       END IF;
3453     END IF;
3454 
3455     IF p_trolin_val_rec.ORGANIZATION <> fnd_api.g_miss_char THEN
3456       IF p_trolin_rec.organization_id <> fnd_api.g_miss_num THEN
3457         l_trolin_rec.organization_id  := p_trolin_rec.organization_id;
3458 
3459         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3460           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3461           fnd_message.set_token('ATTRIBUTE', 'organization');
3462           fnd_msg_pub.ADD;
3463         END IF;
3464       ELSE
3465         l_trolin_rec.organization_id  := inv_value_to_id.ORGANIZATION(p_organization => p_trolin_val_rec.ORGANIZATION);
3466 
3467         IF l_trolin_rec.organization_id = fnd_api.g_miss_num THEN
3468           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3469         END IF;
3470       END IF;
3471     END IF;
3472 
3473     IF p_trolin_val_rec.to_organization <> fnd_api.g_miss_char THEN
3474       IF p_trolin_rec.to_organization_id <> fnd_api.g_miss_num THEN
3475         l_trolin_rec.to_organization_id  := p_trolin_rec.to_organization_id;
3476 
3477         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3478           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3479           fnd_message.set_token('ATTRIBUTE', 'to_organization');
3480           fnd_msg_pub.ADD;
3481         END IF;
3482       ELSE
3483         l_trolin_rec.to_organization_id  := inv_value_to_id.to_organization(p_to_organization => p_trolin_val_rec.to_organization);
3484 
3485         IF l_trolin_rec.to_organization_id = fnd_api.g_miss_num THEN
3486           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3487         END IF;
3488       END IF;
3489     END IF;
3490 
3491     IF p_trolin_val_rec.project <> fnd_api.g_miss_char THEN
3492       IF p_trolin_rec.project_id <> fnd_api.g_miss_num THEN
3493         l_trolin_rec.project_id  := p_trolin_rec.project_id;
3494 
3495         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3496           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3497           fnd_message.set_token('ATTRIBUTE', 'project');
3498           fnd_msg_pub.ADD;
3499         END IF;
3500       ELSE
3501         l_trolin_rec.project_id  := inv_value_to_id.project(p_project => p_trolin_val_rec.project);
3502 
3503         IF l_trolin_rec.project_id = fnd_api.g_miss_num THEN
3504           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3505         END IF;
3506       END IF;
3507     END IF;
3508 
3509     IF p_trolin_val_rec.reason <> fnd_api.g_miss_char THEN
3510       IF p_trolin_rec.reason_id <> fnd_api.g_miss_num THEN
3511         l_trolin_rec.reason_id  := p_trolin_rec.reason_id;
3512 
3513         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3514           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3515           fnd_message.set_token('ATTRIBUTE', 'reason');
3516           fnd_msg_pub.ADD;
3517         END IF;
3518       ELSE
3519         l_trolin_rec.reason_id  := inv_value_to_id.reason(p_reason => p_trolin_val_rec.reason);
3520 
3521         IF l_trolin_rec.reason_id = fnd_api.g_miss_num THEN
3522           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3523         END IF;
3524       END IF;
3525     END IF;
3526 
3527     IF p_trolin_val_rec.REFERENCE <> fnd_api.g_miss_char THEN
3528       IF p_trolin_rec.reference_id <> fnd_api.g_miss_num THEN
3529         l_trolin_rec.reference_id  := p_trolin_rec.reference_id;
3530 
3531         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3532           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3533           fnd_message.set_token('ATTRIBUTE', 'reference');
3534           fnd_msg_pub.ADD;
3535         END IF;
3536       ELSE
3537         l_trolin_rec.reference_id  := inv_value_to_id.REFERENCE(p_reference => p_trolin_val_rec.REFERENCE);
3538 
3539         IF l_trolin_rec.reference_id = fnd_api.g_miss_num THEN
3540           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3541         END IF;
3542       END IF;
3543     END IF;
3544 
3545     IF p_trolin_val_rec.reference_type <> fnd_api.g_miss_char THEN
3546       IF p_trolin_rec.reference_type_code <> fnd_api.g_miss_num THEN
3547         l_trolin_rec.reference_type_code  := p_trolin_rec.reference_type_code;
3548 
3549         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3550           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3551           fnd_message.set_token('ATTRIBUTE', 'reference_type');
3552           fnd_msg_pub.ADD;
3553         END IF;
3554       ELSE
3555         l_trolin_rec.reference_type_code  := inv_value_to_id.reference_type(p_reference_type => p_trolin_val_rec.reference_type);
3556 
3557         IF l_trolin_rec.reference_type_code = fnd_api.g_miss_num THEN
3558           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3559         END IF;
3560       END IF;
3561     END IF;
3562 
3563     IF p_trolin_val_rec.task <> fnd_api.g_miss_char THEN
3564       IF p_trolin_rec.task_id <> fnd_api.g_miss_num THEN
3565         l_trolin_rec.task_id  := p_trolin_rec.task_id;
3566 
3567         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3568           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3569           fnd_message.set_token('ATTRIBUTE', 'task');
3570           fnd_msg_pub.ADD;
3571         END IF;
3572       ELSE
3573         l_trolin_rec.task_id  := inv_value_to_id.task(p_task => p_trolin_val_rec.task);
3574 
3575         IF l_trolin_rec.task_id = fnd_api.g_miss_num THEN
3576           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3577         END IF;
3578       END IF;
3579     END IF;
3580 
3581     IF p_trolin_val_rec.to_account <> fnd_api.g_miss_char THEN
3582       IF p_trolin_rec.to_account_id <> fnd_api.g_miss_num THEN
3583         l_trolin_rec.to_account_id  := p_trolin_rec.to_account_id;
3584 
3585         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3586           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3587           fnd_message.set_token('ATTRIBUTE', 'to_account');
3588           fnd_msg_pub.ADD;
3589         END IF;
3590       ELSE
3591         l_trolin_rec.to_account_id  := inv_value_to_id.to_account(p_organization_id => p_trolin_rec.organization_id, p_to_account => p_trolin_val_rec.to_account);
3592 
3593         IF l_trolin_rec.to_account_id = fnd_api.g_miss_num THEN
3594           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3595         END IF;
3596       END IF;
3597     END IF;
3598 
3599     /*
3600         IF  p_trolin_val_rec.to_locator <> FND_API.G_MISS_CHAR
3601         THEN
3602 
3603             IF p_trolin_rec.to_locator_id <> FND_API.G_MISS_NUM THEN
3604 
3605                 l_trolin_rec.to_locator_id := p_trolin_rec.to_locator_id;
3606 
3607                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3608                 THEN
3609 
3610                     FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
3611                     FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_locator');
3612                     FND_MSG_PUB.Add;
3613 
3614                 END IF;
3615 
3616             ELSE
3617 
3618                 l_trolin_rec.to_locator_id := INV_Value_To_Id.to_locator
3619                 (   p_to_locator                  => p_trolin_val_rec.to_locator
3620                 );
3621 
3622                 IF l_trolin_rec.to_locator_id = FND_API.G_MISS_NUM THEN
3623                     l_trolin_rec.return_status := FND_API.G_RET_STS_ERROR;
3624                 END IF;
3625 
3626             END IF;
3627 
3628         END IF;
3629     */
3630 
3631     IF p_trolin_val_rec.to_subinventory <> fnd_api.g_miss_char THEN
3632       IF p_trolin_rec.to_subinventory_code <> fnd_api.g_miss_char THEN
3633         l_trolin_rec.to_subinventory_code  := p_trolin_rec.to_subinventory_code;
3634 
3635         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3636           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3637           fnd_message.set_token('ATTRIBUTE', 'to_subinventory');
3638           fnd_msg_pub.ADD;
3639         END IF;
3640       ELSE
3641         l_trolin_rec.to_subinventory_code  := inv_value_to_id.to_subinventory(p_organization_id => p_trolin_rec.organization_id, p_to_subinventory => p_trolin_val_rec.to_subinventory);
3642 
3643         IF l_trolin_rec.to_subinventory_code = fnd_api.g_miss_char THEN
3644           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3645         END IF;
3646       END IF;
3647     END IF;
3648 
3649     -- Line2839
3650     IF p_trolin_val_rec.to_subinventory <> fnd_api.g_miss_char THEN
3651       IF p_trolin_rec.to_subinventory_id <> fnd_api.g_miss_num THEN
3652         l_trolin_rec.to_subinventory_id  := p_trolin_rec.to_subinventory_id;
3653 
3654         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3655           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3656           fnd_message.set_token('ATTRIBUTE', 'to_subinventory');
3657           fnd_msg_pub.ADD;
3658         END IF;
3659       ELSE
3660         l_trolin_rec.to_subinventory_id  := inv_value_to_id.to_subinventory(p_organization_id => p_trolin_rec.organization_id, p_to_subinventory => p_trolin_val_rec.to_subinventory);
3661 
3662         IF l_trolin_rec.to_subinventory_id = fnd_api.g_miss_num THEN
3663           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3664         END IF;
3665       END IF;
3666     END IF;
3667 
3668     IF p_trolin_val_rec.transaction_header <> fnd_api.g_miss_char THEN
3669       IF p_trolin_rec.transaction_header_id <> fnd_api.g_miss_num THEN
3670         l_trolin_rec.transaction_header_id  := p_trolin_rec.transaction_header_id;
3671 
3672         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3673           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3674           fnd_message.set_token('ATTRIBUTE', 'transaction_header');
3675           fnd_msg_pub.ADD;
3676         END IF;
3677       ELSE
3678         l_trolin_rec.transaction_header_id  := inv_value_to_id.transaction_header(p_transaction_header => p_trolin_val_rec.transaction_header);
3679 
3680         IF l_trolin_rec.transaction_header_id = fnd_api.g_miss_num THEN
3681           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3682         END IF;
3683       END IF;
3684     END IF;
3685 
3686     IF p_trolin_val_rec.transaction_type <> fnd_api.g_miss_char THEN
3687       IF p_trolin_rec.transaction_type_id <> fnd_api.g_miss_num THEN
3688         l_trolin_rec.transaction_type_id  := p_trolin_rec.transaction_type_id;
3689 
3690         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3691           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3692           fnd_message.set_token('ATTRIBUTE', 'transaction_type');
3693           fnd_msg_pub.ADD;
3694         END IF;
3695       ELSE
3696         l_trolin_rec.transaction_type_id  := inv_value_to_id.transaction_type(p_transaction_type => p_trolin_val_rec.transaction_type);
3697 
3698         IF l_trolin_rec.transaction_type_id = fnd_api.g_miss_num THEN
3699           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3700         END IF;
3701       END IF;
3702     END IF;
3703 
3704     -- Line2899
3705     IF p_trolin_val_rec.uom <> fnd_api.g_miss_char THEN
3706       IF p_trolin_rec.uom_code <> fnd_api.g_miss_char THEN
3707         l_trolin_rec.uom_code  := p_trolin_rec.uom_code;
3708 
3709         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3710           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3711           fnd_message.set_token('ATTRIBUTE', 'uom');
3712           fnd_msg_pub.ADD;
3713         END IF;
3714       ELSE
3715         -- Line2917
3716         l_trolin_rec.uom_code  := inv_value_to_id.uom(p_uom => p_trolin_val_rec.uom);
3717 
3718         IF l_trolin_rec.uom_code = fnd_api.g_miss_char THEN
3719           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3720         END IF;
3721       END IF;
3722     END IF;
3723 
3724     RETURN l_trolin_rec;
3725   END get_ids;
3726 
3727   --Procedure Insert_Mo_Lines_Bulk  /* For Parallel Pick-Release */
3728 
3729   PROCEDURE insert_mo_lines_bulk(p_new_trolin_tbl IN inv_move_order_pub.trolin_new_tbl_type
3730 				,x_return_status IN OUT NOCOPY VARCHAR2) IS
3731 
3732   BEGIN
3733     FORALL i IN 1 .. p_new_trolin_tbl.COUNT
3734       insert into mtl_txn_request_lines
3735       values p_new_trolin_tbl(i);
3736 
3737   x_return_status := fnd_api.g_ret_sts_success;
3738   EXCEPTION
3739     WHEN OTHERS THEN
3740       x_return_status := fnd_api.g_ret_sts_error;
3741       RAISE fnd_api.g_exc_unexpected_error;
3742   END insert_mo_lines_bulk;
3743 
3744 END inv_trolin_util;