DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_TROLIN_UTIL

Source


1 PACKAGE BODY inv_trolin_util AS
2   /* $Header: INVUTRLB.pls 120.4.12020000.2 2012/12/07 05:54:17 alxue 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      l_tran_source_typ_id        NUMBER                      := 0;
1858      l_batch_exists              NUMBER                      := 0;
1859 
1860   BEGIN
1861       /* bug7115229 The transaction source type id is updated from 5 to 13. Because of which the select available inventory form is not
1862          showing the source details for the move order of type backflush transfer correctly. So iam putting a condition here before
1863 	 updation of the transation source type id. If the txn source id corresponds to a batch, then the corresponding move order cannot
1864 	 have a source type of inventory (13). It should retain its transaction source type id as job or schedule (5). This fix is
1865 	 relevant only to OPM batches. */
1866      IF p_trolin_rec.transaction_source_type_id IS NOT NULL THEN
1867        BEGIN
1868               SELECT 1
1869               INTO  l_batch_exists
1870               FROM dual
1871               WHERE EXISTS (SELECT gmd.line_no
1872                              FROM gme_material_details gmd,mtl_txn_request_lines mtrl
1873                              WHERE gmd.material_detail_id=p_trolin_rec.txn_source_line_id
1874 			     AND mtrl.organization_id=p_trolin_rec.organization_id
1875 			     AND mtrl.txn_source_id=p_trolin_rec.txn_source_id
1876 			     AND mtrl.inventory_item_id=p_trolin_rec.inventory_item_id
1877 			     AND gmd.material_detail_id=mtrl.txn_source_line_id
1878                              AND mtrl.transaction_source_type_id=5);
1879              EXCEPTION
1880              WHEN NO_DATA_FOUND THEN
1881                   l_batch_exists := 0;
1882 	     END;
1883      END IF;
1884      IF l_batch_exists =1 THEN
1885 	l_tran_source_typ_id:=5;
1886       ELSE
1887 	l_tran_source_typ_id:=p_trolin_rec.transaction_source_type_id;
1888      END IF;
1889 
1890        UPDATE mtl_txn_request_lines
1891        SET attribute1 = p_trolin_rec.attribute1
1892          , attribute10 = p_trolin_rec.attribute10
1893          , attribute11 = p_trolin_rec.attribute11
1894          , attribute12 = p_trolin_rec.attribute12
1895          , attribute13 = p_trolin_rec.attribute13
1896          , attribute14 = p_trolin_rec.attribute14
1897          , attribute15 = p_trolin_rec.attribute15
1898          , attribute2 = p_trolin_rec.attribute2
1899          , attribute3 = p_trolin_rec.attribute3
1900          , attribute4 = p_trolin_rec.attribute4
1901          , attribute5 = p_trolin_rec.attribute5
1902          , attribute6 = p_trolin_rec.attribute6
1903          , attribute7 = p_trolin_rec.attribute7
1904          , attribute8 = p_trolin_rec.attribute8
1905          , attribute9 = p_trolin_rec.attribute9
1906          , attribute_category = p_trolin_rec.attribute_category
1907          , created_by = p_trolin_rec.created_by
1908          , creation_date = p_trolin_rec.creation_date
1909          , date_required = p_trolin_rec.date_required
1910          , from_locator_id = p_trolin_rec.from_locator_id
1911          , from_subinventory_code = p_trolin_rec.from_subinventory_code
1912          , from_subinventory_id = p_trolin_rec.from_subinventory_id
1913          , header_id = p_trolin_rec.header_id
1914          , inventory_item_id = p_trolin_rec.inventory_item_id
1915         -- , last_updated_by = p_trolin_rec.last_updated_by
1916         -- , last_update_date = p_trolin_rec.last_update_date
1917         -- , last_update_login = p_trolin_rec.last_update_login
1918          , last_update_date = SYSDATE       --Bug 15837987
1919          , last_updated_by = FND_PROFILE.VALUE('USER_ID')
1920          , last_update_login = FND_PROFILE.VALUE('LOGIN_ID')
1921          , line_id = p_trolin_rec.line_id
1922          , line_number = p_trolin_rec.line_number
1923          , line_status = p_trolin_rec.line_status
1924          , lot_number = p_trolin_rec.lot_number
1925          , organization_id = p_trolin_rec.organization_id
1926          , program_application_id = p_trolin_rec.program_application_id
1927          , program_id = p_trolin_rec.program_id
1928          , program_update_date = p_trolin_rec.program_update_date
1929          , project_id = p_trolin_rec.project_id
1930          , quantity = p_trolin_rec.quantity
1931          , quantity_delivered = p_trolin_rec.quantity_delivered
1932          , quantity_detailed = p_trolin_rec.quantity_detailed
1933          , reason_id = p_trolin_rec.reason_id
1934          , REFERENCE = p_trolin_rec.REFERENCE
1935          , reference_id = p_trolin_rec.reference_id
1936          , reference_type_code = p_trolin_rec.reference_type_code
1937          , request_id = p_trolin_rec.request_id
1938          , revision = p_trolin_rec.revision
1939          , serial_number_end = p_trolin_rec.serial_number_end
1940          , serial_number_start = p_trolin_rec.serial_number_start
1941          , status_date = p_trolin_rec.status_date
1942          , task_id = p_trolin_rec.task_id
1943          , to_account_id = p_trolin_rec.to_account_id
1944          , to_locator_id = p_trolin_rec.to_locator_id
1945          , to_subinventory_code = p_trolin_rec.to_subinventory_code
1946          , to_subinventory_id = p_trolin_rec.to_subinventory_id
1947          , transaction_header_id = p_trolin_rec.transaction_header_id
1948          , uom_code = p_trolin_rec.uom_code
1949          , transaction_type_id = p_trolin_rec.transaction_type_id
1950          , transaction_source_type_id = l_tran_source_typ_id               --bug7115229
1951          , txn_source_id = p_trolin_rec.txn_source_id
1952          , txn_source_line_id = p_trolin_rec.txn_source_line_id
1953          , txn_source_line_detail_id = p_trolin_rec.txn_source_line_detail_id
1954          , to_organization_id = p_trolin_rec.to_organization_id
1955          , primary_quantity = p_trolin_rec.primary_quantity
1956          , pick_strategy_id = p_trolin_rec.pick_strategy_id
1957          , put_away_strategy_id = p_trolin_rec.put_away_strategy_id
1958          , unit_number = p_trolin_rec.unit_number
1959          , ship_to_location_id = p_trolin_rec.ship_to_location_id
1960          , from_cost_group_id = p_trolin_rec.from_cost_group_id
1961          , to_cost_group_id = p_trolin_rec.to_cost_group_id
1962          , lpn_id = p_trolin_rec.lpn_id
1963          , to_lpn_id = p_trolin_rec.to_lpn_id
1964          , inspection_status = p_trolin_rec.inspection_status
1965          , pick_methodology_id = p_trolin_rec.pick_methodology_id
1966          , container_item_id = p_trolin_rec.container_item_id
1967          , carton_grouping_id = p_trolin_rec.carton_grouping_id
1968          , wms_process_flag = p_trolin_rec.wms_process_flag
1969          , pick_slip_number = p_trolin_rec.pick_slip_number
1970          , pick_slip_date = p_trolin_rec.pick_slip_date
1971          , ship_set_id = p_trolin_rec.ship_set_id
1972          , ship_model_id = p_trolin_rec.ship_model_id
1973          , model_quantity = p_trolin_rec.model_quantity
1974          , required_quantity = p_trolin_rec.required_quantity
1975 --INVCONV BEGIN
1976          , secondary_quantity = p_trolin_rec.secondary_quantity
1977          , secondary_quantity_delivered = p_trolin_rec.secondary_quantity_delivered
1978          , secondary_quantity_detailed = p_trolin_rec.secondary_quantity_detailed
1979          , secondary_uom_code = p_trolin_rec.secondary_uom
1980          , secondary_required_quantity = p_trolin_rec.secondary_required_quantity
1981          , grade_code = p_trolin_rec.grade_code
1982 --INVCONV END;
1983      WHERE line_id = p_trolin_rec.line_id;
1984   EXCEPTION
1985     WHEN OTHERS THEN
1986       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1987         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Update_Row');
1988       END IF;
1989 
1990       RAISE fnd_api.g_exc_unexpected_error;
1991   END update_row;
1992 
1993   --  Procedure Update_Row_Status
1994 
1995   PROCEDURE update_row_status(p_line_id IN NUMBER, p_status IN NUMBER) IS
1996     l_trolin_rec inv_move_order_pub.trolin_rec_type;
1997   BEGIN
1998     l_trolin_rec                    := inv_trolin_util.query_row(p_line_id);
1999     l_trolin_rec.line_status        := p_status;
2000     l_trolin_rec.last_update_date   := SYSDATE;
2001     l_trolin_rec.status_date        := SYSDATE; -- For Bug # 5053725
2002     l_trolin_rec.last_updated_by    := fnd_global.user_id;
2003     l_trolin_rec.last_update_login  := fnd_global.login_id;
2004     inv_trolin_util.update_row(l_trolin_rec);
2005   EXCEPTION
2006     WHEN OTHERS THEN
2007       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2008         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Update_Row_Status');
2009       END IF;
2010 
2011       RAISE fnd_api.g_exc_unexpected_error;
2012   END update_row_status;
2013 
2014   --  Procedure Insert_Row
2015 
2016   PROCEDURE insert_row(p_trolin_rec IN inv_move_order_pub.trolin_rec_type) IS
2017   BEGIN
2018     INSERT INTO mtl_txn_request_lines
2019                 (
2020                 attribute1
2021               , attribute10
2022               , attribute11
2023               , attribute12
2024               , attribute13
2025               , attribute14
2026               , attribute15
2027               , attribute2
2028               , attribute3
2029               , attribute4
2030               , attribute5
2031               , attribute6
2032               , attribute7
2033               , attribute8
2034               , attribute9
2035               , attribute_category
2036               , created_by
2037               , creation_date
2038               , date_required
2039               , from_locator_id
2040               , from_subinventory_code
2041               , from_subinventory_id
2042               , header_id
2043               , inventory_item_id
2044               , last_updated_by
2045               , last_update_date
2046               , last_update_login
2047               , line_id
2048               , line_number
2049               , line_status
2050               , lot_number
2051               , organization_id
2052               , program_application_id
2053               , program_id
2054               , program_update_date
2055               , project_id
2056               , quantity
2057               , quantity_delivered
2058               , quantity_detailed
2059               , reason_id
2060               , REFERENCE
2061               , reference_id
2062               , reference_type_code
2063               , request_id
2064               , revision
2065               , serial_number_end
2066               , serial_number_start
2067               , status_date
2068               , task_id
2069               , to_account_id
2070               , to_locator_id
2071               , to_subinventory_code
2072               , to_subinventory_id
2073               , transaction_header_id
2074               , uom_code
2075               , transaction_type_id
2076               , transaction_source_type_id
2077               , txn_source_id
2078               , txn_source_line_id
2079               , txn_source_line_detail_id
2080               , to_organization_id
2081               , primary_quantity
2082               , pick_strategy_id
2083               , put_away_strategy_id
2084               , unit_number
2085               , ship_to_location_id
2086               , from_cost_group_id
2087               , to_cost_group_id
2088               , lpn_id
2089               , to_lpn_id
2090               , inspection_status
2091               , pick_methodology_id
2092               , container_item_id
2093               , carton_grouping_id
2094               , wms_process_flag
2095               , pick_slip_number
2096               , pick_slip_date
2097               , ship_set_id
2098               , ship_model_id
2099               , model_quantity
2100               , required_quantity
2101 --INVCONV BEGIN
2102               , secondary_quantity
2103               , secondary_quantity_delivered
2104               , secondary_quantity_detailed
2105               , secondary_uom_code
2106               , secondary_required_quantity
2107               , grade_code
2108 --INVCONV END;
2109                 )
2110          VALUES (
2111                 p_trolin_rec.attribute1
2112               , p_trolin_rec.attribute10
2113               , p_trolin_rec.attribute11
2114               , p_trolin_rec.attribute12
2115               , p_trolin_rec.attribute13
2116               , p_trolin_rec.attribute14
2117               , p_trolin_rec.attribute15
2118               , p_trolin_rec.attribute2
2119               , p_trolin_rec.attribute3
2120               , p_trolin_rec.attribute4
2121               , p_trolin_rec.attribute5
2122               , p_trolin_rec.attribute6
2123               , p_trolin_rec.attribute7
2124               , p_trolin_rec.attribute8
2125               , p_trolin_rec.attribute9
2126               , p_trolin_rec.attribute_category
2127               , p_trolin_rec.created_by
2128               , p_trolin_rec.creation_date
2129               , p_trolin_rec.date_required
2130               , p_trolin_rec.from_locator_id
2131               , p_trolin_rec.from_subinventory_code
2132               , p_trolin_rec.from_subinventory_id
2133               , p_trolin_rec.header_id
2134               , p_trolin_rec.inventory_item_id
2135               , p_trolin_rec.last_updated_by
2136               , p_trolin_rec.last_update_date
2137               , p_trolin_rec.last_update_login
2138               , p_trolin_rec.line_id
2139               , p_trolin_rec.line_number
2140               , p_trolin_rec.line_status
2141               , p_trolin_rec.lot_number
2142               , p_trolin_rec.organization_id
2143               , p_trolin_rec.program_application_id
2144               , p_trolin_rec.program_id
2145               , p_trolin_rec.program_update_date
2146               , p_trolin_rec.project_id
2147               , p_trolin_rec.quantity
2148               , p_trolin_rec.quantity_delivered
2149               , p_trolin_rec.quantity_detailed
2150               , p_trolin_rec.reason_id
2151               , p_trolin_rec.REFERENCE
2152               , p_trolin_rec.reference_id
2153               , p_trolin_rec.reference_type_code
2154               , p_trolin_rec.request_id
2155               , p_trolin_rec.revision
2156               , p_trolin_rec.serial_number_end
2157               , p_trolin_rec.serial_number_start
2158               , p_trolin_rec.status_date
2159               , p_trolin_rec.task_id
2160               , p_trolin_rec.to_account_id
2161               , p_trolin_rec.to_locator_id
2162               , p_trolin_rec.to_subinventory_code
2163               , p_trolin_rec.to_subinventory_id
2164               , p_trolin_rec.transaction_header_id
2165               , p_trolin_rec.uom_code
2166               , p_trolin_rec.transaction_type_id
2167               , p_trolin_rec.transaction_source_type_id
2168               , p_trolin_rec.txn_source_id
2169               , p_trolin_rec.txn_source_line_id
2170               , p_trolin_rec.txn_source_line_detail_id
2171               , p_trolin_rec.to_organization_id
2172               , p_trolin_rec.primary_quantity
2173               , p_trolin_rec.pick_strategy_id
2174               , p_trolin_rec.put_away_strategy_id
2175               , p_trolin_rec.unit_number
2176               , p_trolin_rec.ship_to_location_id
2177               , p_trolin_rec.from_cost_group_id
2178               , p_trolin_rec.to_cost_group_id
2179               , p_trolin_rec.lpn_id
2180               , p_trolin_rec.to_lpn_id
2181               , p_trolin_rec.inspection_status
2182               , p_trolin_rec.pick_methodology_id
2183               , p_trolin_rec.container_item_id
2184               , p_trolin_rec.carton_grouping_id
2185               , p_trolin_rec.wms_process_flag
2186               , p_trolin_rec.pick_slip_number
2187               , p_trolin_rec.pick_slip_date
2188               , p_trolin_rec.ship_set_id
2189               , p_trolin_rec.ship_model_id
2190               , p_trolin_rec.model_quantity
2191               , p_trolin_rec.required_quantity
2192 --INVCONV BEGIN
2193               , p_trolin_rec.secondary_quantity
2194               , p_trolin_rec.secondary_quantity_delivered
2195               , p_trolin_rec.secondary_quantity_detailed
2196               , p_trolin_rec.secondary_uom
2197               , p_trolin_rec.secondary_required_quantity
2198               , p_trolin_rec.grade_code
2199 --INVCONV END;
2200                 );
2201   EXCEPTION
2202     WHEN OTHERS THEN
2203       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2204         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Insert_Row');
2205       END IF;
2206 
2207       RAISE fnd_api.g_exc_unexpected_error;
2208   END insert_row;
2209 
2210   --  Procedure Delete_Row
2211 
2212   PROCEDURE delete_row(p_line_id IN NUMBER) IS
2213   BEGIN
2214     DELETE FROM mtl_txn_request_lines
2215           WHERE line_id = p_line_id;
2216   EXCEPTION
2217     WHEN OTHERS THEN
2218       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2219         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Delete_Row');
2220       END IF;
2221 
2222       RAISE fnd_api.g_exc_unexpected_error;
2223   END delete_row;
2224 
2225   --  Function Get_Lines
2226 
2227   FUNCTION get_lines(p_header_id IN NUMBER)
2228     RETURN inv_move_order_pub.trolin_tbl_type IS
2229   BEGIN
2230     RETURN query_rows(p_header_id => p_header_id);
2231   END get_lines;
2232 
2233   --  Function Query_Row
2234 
2235   FUNCTION query_row(p_line_id IN NUMBER)
2236     RETURN inv_move_order_pub.trolin_rec_type IS
2237   BEGIN
2238     /*    inv_debug.message('TRO: in query_row '||to_char(p_line_id)); */
2239     RETURN query_rows(p_line_id => p_line_id)(1);
2240   END query_row;
2241 
2242   --  Function Query_Rows
2243 
2244   --
2245 
2246   FUNCTION query_rows(p_line_id IN NUMBER := fnd_api.g_miss_num, p_header_id IN NUMBER := fnd_api.g_miss_num)
2247     RETURN inv_move_order_pub.trolin_tbl_type IS
2248     l_trolin_rec inv_move_order_pub.trolin_rec_type;
2249     l_trolin_tbl inv_move_order_pub.trolin_tbl_type;
2250 
2251     --bug 2569864 - create separate cursors on header_id and line_Id
2252     CURSOR l_trolin_csr IS
2253       SELECT attribute1
2254            , attribute10
2255            , attribute11
2256            , attribute12
2257            , attribute13
2258            , attribute14
2259            , attribute15
2260            , attribute2
2261            , attribute3
2262            , attribute4
2263            , attribute5
2264            , attribute6
2265            , attribute7
2266            , attribute8
2267            , attribute9
2268            , attribute_category
2269            , created_by
2270            , creation_date
2271            , date_required
2272            , from_locator_id
2273            , from_subinventory_code
2274            , from_subinventory_id
2275            , header_id
2276            , inventory_item_id
2277            , last_updated_by
2278            , last_update_date
2279            , last_update_login
2280            , line_id
2281            , line_number
2282            , line_status
2283            , lot_number
2284            , organization_id
2285            , program_application_id
2286            , program_id
2287            , program_update_date
2288            , project_id
2289            , quantity
2290            , quantity_delivered
2291            , quantity_detailed
2292            , reason_id
2293            , REFERENCE
2294            , reference_id
2295            , reference_type_code
2296            , request_id
2297            , revision
2298            , serial_number_end
2299            , serial_number_start
2300            , status_date
2301            , task_id
2302            , to_account_id
2303            , to_locator_id
2304            , to_subinventory_code
2305            , to_subinventory_id
2306            , transaction_header_id
2307            , uom_code
2308            , transaction_type_id
2309            , transaction_source_type_id
2310            , txn_source_id
2311            , txn_source_line_id
2312            , txn_source_line_detail_id
2313            , to_organization_id
2314            , primary_quantity
2315            , pick_strategy_id
2316            , put_away_strategy_id
2317            , unit_number
2318            , ship_to_location_id
2319            , from_cost_group_id
2320            , to_cost_group_id
2321            , lpn_id
2322            , to_lpn_id
2323            , inspection_status
2324            , pick_methodology_id
2325            , container_item_id
2326            , carton_grouping_id
2327            , wms_process_flag
2328            , pick_slip_number
2329            , pick_slip_date
2330            , ship_set_id
2331            , ship_model_id
2332            , model_quantity
2333            , required_quantity
2334 --INVCONV BEGIN
2335            , secondary_quantity
2336            , secondary_quantity_delivered
2337            , secondary_quantity_detailed
2338            , secondary_uom_code
2339            , grade_code
2340            , secondary_required_quantity
2341 --INVCONV END;
2342         FROM mtl_txn_request_lines
2343        WHERE line_id = p_line_id;
2344 
2345     CURSOR l_trolin_csr_header IS
2346       SELECT attribute1
2347            , attribute10
2348            , attribute11
2349            , attribute12
2350            , attribute13
2351            , attribute14
2352            , attribute15
2353            , attribute2
2354            , attribute3
2355            , attribute4
2356            , attribute5
2357            , attribute6
2358            , attribute7
2359            , attribute8
2360            , attribute9
2361            , attribute_category
2362            , created_by
2363            , creation_date
2364            , date_required
2365            , from_locator_id
2366            , from_subinventory_code
2367            , from_subinventory_id
2368            , header_id
2369            , inventory_item_id
2370            , last_updated_by
2371            , last_update_date
2372            , last_update_login
2373            , line_id
2374            , line_number
2375            , line_status
2376            , lot_number
2377            , organization_id
2378            , program_application_id
2379            , program_id
2380            , program_update_date
2381            , project_id
2382            , quantity
2383            , quantity_delivered
2384            , quantity_detailed
2385            , reason_id
2386            , REFERENCE
2387            , reference_id
2388            , reference_type_code
2389            , request_id
2390            , revision
2391            , serial_number_end
2392            , serial_number_start
2393            , status_date
2394            , task_id
2395            , to_account_id
2396            , to_locator_id
2397            , to_subinventory_code
2398            , to_subinventory_id
2399            , transaction_header_id
2400            , uom_code
2401            , transaction_type_id
2402            , transaction_source_type_id
2403            , txn_source_id
2404            , txn_source_line_id
2405            , txn_source_line_detail_id
2406            , to_organization_id
2407            , primary_quantity
2408            , pick_strategy_id
2409            , put_away_strategy_id
2410            , unit_number
2411            , ship_to_location_id
2412            , from_cost_group_id
2413            , to_cost_group_id
2414            , lpn_id
2415            , to_lpn_id
2416            , inspection_status
2417            , pick_methodology_id
2418            , container_item_id
2419            , carton_grouping_id
2420            , wms_process_flag
2421            , pick_slip_number
2422            , pick_slip_date
2423            , ship_set_id
2424            , ship_model_id
2425            , model_quantity
2426            , required_quantity
2427 --INVCONV BEGIN
2428            , secondary_quantity
2429            , secondary_quantity_delivered
2430            , secondary_quantity_detailed
2431            , secondary_uom_code
2432            , grade_code
2433            , secondary_required_quantity
2434 --INVCONV END;
2435         FROM mtl_txn_request_lines
2436        WHERE header_id = p_header_id;
2437   BEGIN
2438     /*inv_debug.message('TRO: line_id '||to_char(p_line_id)||' header_id '||to_char(p_header_id)); */
2439 
2440     IF  (p_line_id IS NOT NULL
2441          AND p_line_id <> fnd_api.g_miss_num
2442         )
2443         AND (p_header_id IS NOT NULL
2444              AND p_header_id <> fnd_api.g_miss_num
2445             ) THEN
2446       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2447         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);
2448       END IF;
2449 
2450       RAISE fnd_api.g_exc_unexpected_error;
2451     END IF;
2452 
2453     IF (p_line_id IS NOT NULL
2454         AND p_line_id <> fnd_api.g_miss_num
2455        ) THEN
2456       --  Loop over fetched records
2457 
2458       FOR l_implicit_rec IN l_trolin_csr LOOP
2459         l_trolin_rec.attribute1                  := l_implicit_rec.attribute1;
2460         l_trolin_rec.attribute10                 := l_implicit_rec.attribute10;
2461         l_trolin_rec.attribute11                 := l_implicit_rec.attribute11;
2462         l_trolin_rec.attribute12                 := l_implicit_rec.attribute12;
2463         l_trolin_rec.attribute13                 := l_implicit_rec.attribute13;
2464         l_trolin_rec.attribute14                 := l_implicit_rec.attribute14;
2465         l_trolin_rec.attribute15                 := l_implicit_rec.attribute15;
2466         l_trolin_rec.attribute2                  := l_implicit_rec.attribute2;
2467         l_trolin_rec.attribute3                  := l_implicit_rec.attribute3;
2468         l_trolin_rec.attribute4                  := l_implicit_rec.attribute4;
2469         l_trolin_rec.attribute5                  := l_implicit_rec.attribute5;
2470         l_trolin_rec.attribute6                  := l_implicit_rec.attribute6;
2471         l_trolin_rec.attribute7                  := l_implicit_rec.attribute7;
2472         l_trolin_rec.attribute8                  := l_implicit_rec.attribute8;
2473         l_trolin_rec.attribute9                  := l_implicit_rec.attribute9;
2474         l_trolin_rec.attribute_category          := l_implicit_rec.attribute_category;
2475         l_trolin_rec.created_by                  := l_implicit_rec.created_by;
2476         l_trolin_rec.creation_date               := l_implicit_rec.creation_date;
2477         l_trolin_rec.date_required               := l_implicit_rec.date_required;
2478         l_trolin_rec.from_locator_id             := l_implicit_rec.from_locator_id;
2479         l_trolin_rec.from_subinventory_code      := l_implicit_rec.from_subinventory_code;
2480         l_trolin_rec.from_subinventory_id        := l_implicit_rec.from_subinventory_id;
2481         l_trolin_rec.header_id                   := l_implicit_rec.header_id;
2482         l_trolin_rec.inventory_item_id           := l_implicit_rec.inventory_item_id;
2483         l_trolin_rec.last_updated_by             := l_implicit_rec.last_updated_by;
2484         l_trolin_rec.last_update_date            := l_implicit_rec.last_update_date;
2485         l_trolin_rec.last_update_login           := l_implicit_rec.last_update_login;
2486         l_trolin_rec.line_id                     := l_implicit_rec.line_id;
2487         l_trolin_rec.line_number                 := l_implicit_rec.line_number;
2488         l_trolin_rec.line_status                 := l_implicit_rec.line_status;
2489         l_trolin_rec.lot_number                  := l_implicit_rec.lot_number;
2490         l_trolin_rec.organization_id             := l_implicit_rec.organization_id;
2491         l_trolin_rec.program_application_id      := l_implicit_rec.program_application_id;
2492         l_trolin_rec.program_id                  := l_implicit_rec.program_id;
2493         l_trolin_rec.program_update_date         := l_implicit_rec.program_update_date;
2494         l_trolin_rec.project_id                  := l_implicit_rec.project_id;
2495         l_trolin_rec.quantity                    := l_implicit_rec.quantity;
2496         l_trolin_rec.quantity_delivered          := l_implicit_rec.quantity_delivered;
2497         l_trolin_rec.quantity_detailed           := l_implicit_rec.quantity_detailed;
2498         l_trolin_rec.reason_id                   := l_implicit_rec.reason_id;
2499         l_trolin_rec.REFERENCE                   := l_implicit_rec.REFERENCE;
2500         l_trolin_rec.reference_id                := l_implicit_rec.reference_id;
2501         l_trolin_rec.reference_type_code         := l_implicit_rec.reference_type_code;
2502         l_trolin_rec.request_id                  := l_implicit_rec.request_id;
2503         l_trolin_rec.revision                    := l_implicit_rec.revision;
2504         l_trolin_rec.serial_number_end           := l_implicit_rec.serial_number_end;
2505         l_trolin_rec.serial_number_start         := l_implicit_rec.serial_number_start;
2506         l_trolin_rec.status_date                 := l_implicit_rec.status_date;
2507         l_trolin_rec.task_id                     := l_implicit_rec.task_id;
2508         l_trolin_rec.to_account_id               := l_implicit_rec.to_account_id;
2509         l_trolin_rec.to_locator_id               := l_implicit_rec.to_locator_id;
2510         l_trolin_rec.to_subinventory_code        := l_implicit_rec.to_subinventory_code;
2511         l_trolin_rec.to_subinventory_id          := l_implicit_rec.to_subinventory_id;
2512         l_trolin_rec.transaction_header_id       := l_implicit_rec.transaction_header_id;
2513         l_trolin_rec.uom_code                    := l_implicit_rec.uom_code;
2514         l_trolin_rec.transaction_type_id         := l_implicit_rec.transaction_type_id;
2515         l_trolin_rec.transaction_source_type_id  := l_implicit_rec.transaction_source_type_id;
2516         l_trolin_rec.txn_source_id               := l_implicit_rec.txn_source_id;
2517         l_trolin_rec.txn_source_line_id          := l_implicit_rec.txn_source_line_id;
2518         l_trolin_rec.txn_source_line_detail_id   := l_implicit_rec.txn_source_line_detail_id;
2519         l_trolin_rec.to_organization_id          := l_implicit_rec.to_organization_id;
2520         l_trolin_rec.primary_quantity            := l_implicit_rec.primary_quantity;
2521         l_trolin_rec.pick_strategy_id            := l_implicit_rec.pick_strategy_id;
2522         l_trolin_rec.put_away_strategy_id        := l_implicit_rec.put_away_strategy_id;
2523         l_trolin_rec.unit_number                 := l_implicit_rec.unit_number;
2524         l_trolin_rec.ship_to_location_id         := l_implicit_rec.ship_to_location_id;
2525         l_trolin_rec.from_cost_group_id          := l_implicit_rec.from_cost_group_id;
2526         l_trolin_rec.to_cost_group_id            := l_implicit_rec.to_cost_group_id;
2527         l_trolin_rec.lpn_id                      := l_implicit_rec.lpn_id;
2528         l_trolin_rec.to_lpn_id                   := l_implicit_rec.to_lpn_id;
2529         l_trolin_rec.inspection_status           := l_implicit_rec.inspection_status;
2530         l_trolin_rec.pick_methodology_id         := l_implicit_rec.pick_methodology_id;
2531         l_trolin_rec.container_item_id           := l_implicit_rec.container_item_id;
2532         l_trolin_rec.carton_grouping_id          := l_implicit_rec.carton_grouping_id;
2533         l_trolin_rec.wms_process_flag            := l_implicit_rec.wms_process_flag;
2534         l_trolin_rec.pick_slip_number            := l_implicit_rec.pick_slip_number;
2535         l_trolin_rec.pick_slip_date              := l_implicit_rec.pick_slip_date;
2536         l_trolin_rec.ship_set_id                 := l_implicit_rec.ship_set_id;
2537         l_trolin_rec.ship_model_id               := l_implicit_rec.ship_model_id;
2538         l_trolin_rec.model_quantity              := l_implicit_rec.model_quantity;
2539         l_trolin_rec.required_quantity           := l_implicit_rec.required_quantity;
2540 --INVCONV BEGIN
2541         l_trolin_rec.secondary_quantity          := l_implicit_rec.secondary_quantity;
2542         l_trolin_rec.secondary_quantity_delivered := l_implicit_rec.secondary_quantity_delivered;
2543         l_trolin_rec.secondary_quantity_detailed := l_implicit_rec.secondary_quantity_detailed;
2544         l_trolin_rec.secondary_uom               := l_implicit_rec.secondary_uom_code;
2545         l_trolin_rec.grade_code                  := l_implicit_rec.grade_code;
2546         l_trolin_rec.secondary_required_quantity := l_implicit_rec.secondary_required_quantity;
2547 --INVCONV END;
2548 
2549         l_trolin_tbl(l_trolin_tbl.COUNT + 1)     := l_trolin_rec;
2550       END LOOP;
2551     ELSE
2552       FOR l_implicit_rec IN l_trolin_csr_header LOOP
2553         l_trolin_rec.attribute1                  := l_implicit_rec.attribute1;
2554         l_trolin_rec.attribute10                 := l_implicit_rec.attribute10;
2555         l_trolin_rec.attribute11                 := l_implicit_rec.attribute11;
2556         l_trolin_rec.attribute12                 := l_implicit_rec.attribute12;
2557         l_trolin_rec.attribute13                 := l_implicit_rec.attribute13;
2558         l_trolin_rec.attribute14                 := l_implicit_rec.attribute14;
2559         l_trolin_rec.attribute15                 := l_implicit_rec.attribute15;
2560         l_trolin_rec.attribute2                  := l_implicit_rec.attribute2;
2561         l_trolin_rec.attribute3                  := l_implicit_rec.attribute3;
2562         l_trolin_rec.attribute4                  := l_implicit_rec.attribute4;
2563         l_trolin_rec.attribute5                  := l_implicit_rec.attribute5;
2564         l_trolin_rec.attribute6                  := l_implicit_rec.attribute6;
2565         l_trolin_rec.attribute7                  := l_implicit_rec.attribute7;
2566         l_trolin_rec.attribute8                  := l_implicit_rec.attribute8;
2567         l_trolin_rec.attribute9                  := l_implicit_rec.attribute9;
2568         l_trolin_rec.attribute_category          := l_implicit_rec.attribute_category;
2569         l_trolin_rec.created_by                  := l_implicit_rec.created_by;
2570         l_trolin_rec.creation_date               := l_implicit_rec.creation_date;
2571         l_trolin_rec.date_required               := l_implicit_rec.date_required;
2572         l_trolin_rec.from_locator_id             := l_implicit_rec.from_locator_id;
2573         l_trolin_rec.from_subinventory_code      := l_implicit_rec.from_subinventory_code;
2574         l_trolin_rec.from_subinventory_id        := l_implicit_rec.from_subinventory_id;
2575         l_trolin_rec.header_id                   := l_implicit_rec.header_id;
2576         l_trolin_rec.inventory_item_id           := l_implicit_rec.inventory_item_id;
2577         l_trolin_rec.last_updated_by             := l_implicit_rec.last_updated_by;
2578         l_trolin_rec.last_update_date            := l_implicit_rec.last_update_date;
2579         l_trolin_rec.last_update_login           := l_implicit_rec.last_update_login;
2580         l_trolin_rec.line_id                     := l_implicit_rec.line_id;
2581         l_trolin_rec.line_number                 := l_implicit_rec.line_number;
2582         l_trolin_rec.line_status                 := l_implicit_rec.line_status;
2583         l_trolin_rec.lot_number                  := l_implicit_rec.lot_number;
2584         l_trolin_rec.organization_id             := l_implicit_rec.organization_id;
2585         l_trolin_rec.program_application_id      := l_implicit_rec.program_application_id;
2586         l_trolin_rec.program_id                  := l_implicit_rec.program_id;
2587         l_trolin_rec.program_update_date         := l_implicit_rec.program_update_date;
2588         l_trolin_rec.project_id                  := l_implicit_rec.project_id;
2589         l_trolin_rec.quantity                    := l_implicit_rec.quantity;
2590         l_trolin_rec.quantity_delivered          := l_implicit_rec.quantity_delivered;
2591         l_trolin_rec.quantity_detailed           := l_implicit_rec.quantity_detailed;
2592         l_trolin_rec.reason_id                   := l_implicit_rec.reason_id;
2593         l_trolin_rec.REFERENCE                   := l_implicit_rec.REFERENCE;
2594         l_trolin_rec.reference_id                := l_implicit_rec.reference_id;
2595         l_trolin_rec.reference_type_code         := l_implicit_rec.reference_type_code;
2596         l_trolin_rec.request_id                  := l_implicit_rec.request_id;
2597         l_trolin_rec.revision                    := l_implicit_rec.revision;
2598         l_trolin_rec.serial_number_end           := l_implicit_rec.serial_number_end;
2599         l_trolin_rec.serial_number_start         := l_implicit_rec.serial_number_start;
2600         l_trolin_rec.status_date                 := l_implicit_rec.status_date;
2601         l_trolin_rec.task_id                     := l_implicit_rec.task_id;
2602         l_trolin_rec.to_account_id               := l_implicit_rec.to_account_id;
2603         l_trolin_rec.to_locator_id               := l_implicit_rec.to_locator_id;
2604         l_trolin_rec.to_subinventory_code        := l_implicit_rec.to_subinventory_code;
2605         l_trolin_rec.to_subinventory_id          := l_implicit_rec.to_subinventory_id;
2606         l_trolin_rec.transaction_header_id       := l_implicit_rec.transaction_header_id;
2607         l_trolin_rec.uom_code                    := l_implicit_rec.uom_code;
2608         l_trolin_rec.transaction_type_id         := l_implicit_rec.transaction_type_id;
2609         l_trolin_rec.transaction_source_type_id  := l_implicit_rec.transaction_source_type_id;
2610         l_trolin_rec.txn_source_id               := l_implicit_rec.txn_source_id;
2611         l_trolin_rec.txn_source_line_id          := l_implicit_rec.txn_source_line_id;
2612         l_trolin_rec.txn_source_line_detail_id   := l_implicit_rec.txn_source_line_detail_id;
2613         l_trolin_rec.to_organization_id          := l_implicit_rec.to_organization_id;
2614         l_trolin_rec.primary_quantity            := l_implicit_rec.primary_quantity;
2615         l_trolin_rec.pick_strategy_id            := l_implicit_rec.pick_strategy_id;
2616         l_trolin_rec.put_away_strategy_id        := l_implicit_rec.put_away_strategy_id;
2617         l_trolin_rec.unit_number                 := l_implicit_rec.unit_number;
2618         l_trolin_rec.ship_to_location_id         := l_implicit_rec.ship_to_location_id;
2619         l_trolin_rec.from_cost_group_id          := l_implicit_rec.from_cost_group_id;
2620         l_trolin_rec.to_cost_group_id            := l_implicit_rec.to_cost_group_id;
2621         l_trolin_rec.lpn_id                      := l_implicit_rec.lpn_id;
2622         l_trolin_rec.to_lpn_id                   := l_implicit_rec.to_lpn_id;
2623         l_trolin_rec.inspection_status           := l_implicit_rec.inspection_status;
2624         l_trolin_rec.pick_methodology_id         := l_implicit_rec.pick_methodology_id;
2625         l_trolin_rec.container_item_id           := l_implicit_rec.container_item_id;
2626         l_trolin_rec.carton_grouping_id          := l_implicit_rec.carton_grouping_id;
2627         l_trolin_rec.wms_process_flag            := l_implicit_rec.wms_process_flag;
2628         l_trolin_rec.pick_slip_number            := l_implicit_rec.pick_slip_number;
2629         l_trolin_rec.pick_slip_date              := l_implicit_rec.pick_slip_date;
2630         l_trolin_rec.ship_set_id                 := l_implicit_rec.ship_set_id;
2631         l_trolin_rec.ship_model_id               := l_implicit_rec.ship_model_id;
2632         l_trolin_rec.model_quantity              := l_implicit_rec.model_quantity;
2633         l_trolin_rec.required_quantity           := l_implicit_rec.required_quantity;
2634 --INVCONV BEGIN
2635         l_trolin_rec.secondary_quantity          := l_implicit_rec.secondary_quantity;
2636         l_trolin_rec.secondary_quantity_delivered := l_implicit_rec.secondary_quantity_delivered;
2637         l_trolin_rec.secondary_quantity_detailed := l_implicit_rec.secondary_quantity_detailed;
2638         l_trolin_rec.secondary_uom               := l_implicit_rec.secondary_uom_code;
2639         l_trolin_rec.grade_code                  := l_implicit_rec.grade_code;
2640         l_trolin_rec.secondary_required_quantity := l_implicit_rec.secondary_required_quantity;
2641 --INVCONV END;
2642         l_trolin_tbl(l_trolin_tbl.COUNT + 1)     := l_trolin_rec;
2643       END LOOP;
2644     END IF;
2645 
2646     --  PK sent and no rows found
2647 
2648     IF  (p_line_id IS NOT NULL
2649          AND p_line_id <> fnd_api.g_miss_num
2650         )
2651         AND (l_trolin_tbl.COUNT = 0) THEN
2652       RAISE NO_DATA_FOUND;
2653     END IF;
2654 
2655     --  Return fetched table
2656 
2657     RETURN l_trolin_tbl;
2658   EXCEPTION
2659     WHEN fnd_api.g_exc_unexpected_error THEN
2660       RAISE fnd_api.g_exc_unexpected_error;
2661     WHEN OTHERS THEN
2662       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2663         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Query_Rows');
2664       END IF;
2665 
2666       RAISE fnd_api.g_exc_unexpected_error;
2667   END query_rows;
2668 
2669   --  Procedure       lock_Row
2670   --
2671 
2672   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
2673     l_trolin_rec inv_move_order_pub.trolin_rec_type;
2674   BEGIN
2675     SELECT     attribute1
2676              , attribute10
2677              , attribute11
2678              , attribute12
2679              , attribute13
2680              , attribute14
2681              , attribute15
2682              , attribute2
2683              , attribute3
2684              , attribute4
2685              , attribute5
2686              , attribute6
2687              , attribute7
2688              , attribute8
2689              , attribute9
2690              , attribute_category
2691              , created_by
2692              , creation_date
2693              , date_required
2694              , from_locator_id
2695              , from_subinventory_code
2696              , from_subinventory_id
2697              , header_id
2698              , inventory_item_id
2699              , last_updated_by
2700              , last_update_date
2701              , last_update_login
2702              , line_id
2703              , line_number
2704              , line_status
2705              , lot_number
2706              , organization_id
2707              , program_application_id
2708              , program_id
2709              , program_update_date
2710              , project_id
2711              , quantity
2712              , quantity_delivered
2713              , quantity_detailed
2714              , reason_id
2715              , REFERENCE
2716              , reference_id
2717              , reference_type_code
2718              , request_id
2719              , revision
2720              , serial_number_end
2721              , serial_number_start
2722              , status_date
2723              , task_id
2724              , to_account_id
2725              , to_locator_id
2726              , to_subinventory_code
2727              , to_subinventory_id
2728              , transaction_header_id
2729              , uom_code
2730              , transaction_type_id
2731              , transaction_source_type_id
2732              , txn_source_id
2733              , txn_source_line_id
2734              , txn_source_line_detail_id
2735              , to_organization_id
2736              , primary_quantity
2737              , pick_strategy_id
2738              , put_away_strategy_id
2739              , unit_number
2740              , ship_to_location_id
2741              , from_cost_group_id
2742              , to_cost_group_id
2743              , lpn_id
2744              , to_lpn_id
2745              , inspection_status
2746              , pick_methodology_id
2747              , container_item_id
2748              , carton_grouping_id
2749              , wms_process_flag
2750              , pick_slip_number
2751              , pick_slip_date
2752              , ship_set_id
2753              , ship_model_id
2754              , model_quantity
2755              , required_quantity
2756 --INVCONV BEGIN
2757               , secondary_quantity
2758               , secondary_quantity_delivered
2759               , secondary_quantity_detailed
2760               , uom_code
2761               , grade_code
2762               , secondary_required_quantity
2763 --INVCONV END
2764           INTO l_trolin_rec.attribute1
2765              , l_trolin_rec.attribute10
2766              , l_trolin_rec.attribute11
2767              , l_trolin_rec.attribute12
2768              , l_trolin_rec.attribute13
2769              , l_trolin_rec.attribute14
2770              , l_trolin_rec.attribute15
2771              , l_trolin_rec.attribute2
2772              , l_trolin_rec.attribute3
2773              , l_trolin_rec.attribute4
2774              , l_trolin_rec.attribute5
2775              , l_trolin_rec.attribute6
2776              , l_trolin_rec.attribute7
2777              , l_trolin_rec.attribute8
2778              , l_trolin_rec.attribute9
2779              , l_trolin_rec.attribute_category
2780              , l_trolin_rec.created_by
2781              , l_trolin_rec.creation_date
2782              , l_trolin_rec.date_required
2783              , l_trolin_rec.from_locator_id
2784              , l_trolin_rec.from_subinventory_code
2785              , l_trolin_rec.from_subinventory_id
2786              , l_trolin_rec.header_id
2787              , l_trolin_rec.inventory_item_id
2788              , l_trolin_rec.last_updated_by
2789              , l_trolin_rec.last_update_date
2790              , l_trolin_rec.last_update_login
2791              , l_trolin_rec.line_id
2792              , l_trolin_rec.line_number
2793              , l_trolin_rec.line_status
2794              , l_trolin_rec.lot_number
2795              , l_trolin_rec.organization_id
2796              , l_trolin_rec.program_application_id
2797              , l_trolin_rec.program_id
2798              , l_trolin_rec.program_update_date
2799              , l_trolin_rec.project_id
2800              , l_trolin_rec.quantity
2801              , l_trolin_rec.quantity_delivered
2802              , l_trolin_rec.quantity_detailed
2803              , l_trolin_rec.reason_id
2804              , l_trolin_rec.REFERENCE
2805              , l_trolin_rec.reference_id
2806              , l_trolin_rec.reference_type_code
2807              , l_trolin_rec.request_id
2808              , l_trolin_rec.revision
2809              , l_trolin_rec.serial_number_end
2810              , l_trolin_rec.serial_number_start
2811              , l_trolin_rec.status_date
2812              , l_trolin_rec.task_id
2813              , l_trolin_rec.to_account_id
2814              , l_trolin_rec.to_locator_id
2815              , l_trolin_rec.to_subinventory_code
2816              , l_trolin_rec.to_subinventory_id
2817              , l_trolin_rec.transaction_header_id
2818              , l_trolin_rec.uom_code
2819              , l_trolin_rec.transaction_type_id
2820              , l_trolin_rec.transaction_source_type_id
2821              , l_trolin_rec.txn_source_id
2822              , l_trolin_rec.txn_source_line_id
2823              , l_trolin_rec.txn_source_line_detail_id
2824              , l_trolin_rec.to_organization_id
2825              , l_trolin_rec.primary_quantity
2826              , l_trolin_rec.pick_strategy_id
2827              , l_trolin_rec.put_away_strategy_id
2828              , l_trolin_rec.unit_number
2829              , l_trolin_rec.ship_to_location_id
2830              , l_trolin_rec.from_cost_group_id
2831              , l_trolin_rec.to_cost_group_id
2832              , l_trolin_rec.lpn_id
2833              , l_trolin_rec.to_lpn_id
2834              , l_trolin_rec.inspection_status
2835              , l_trolin_rec.pick_methodology_id
2836              , l_trolin_rec.container_item_id
2837              , l_trolin_rec.carton_grouping_id
2838              , l_trolin_rec.wms_process_flag
2839              , l_trolin_rec.pick_slip_number
2840              , l_trolin_rec.pick_slip_date
2841              , l_trolin_rec.ship_set_id
2842              , l_trolin_rec.ship_model_id
2843              , l_trolin_rec.model_quantity
2844              , l_trolin_rec.required_quantity
2845 --INVCONV BEGIN
2846               , l_trolin_rec.secondary_quantity
2847               , l_trolin_rec.secondary_quantity_delivered
2848               , l_trolin_rec.secondary_quantity_detailed
2849               , l_trolin_rec.uom_code
2850               , l_trolin_rec.grade_code
2851               , l_trolin_rec.secondary_required_quantity
2852 --INVCONV END
2853           FROM mtl_txn_request_lines
2854          WHERE line_id = p_trolin_rec.line_id
2855     FOR UPDATE NOWAIT;
2856 
2857     --  Row locked. Compare IN attributes to DB attributes.
2858 
2859     IF  inv_globals.equal(p_trolin_rec.attribute1, l_trolin_rec.attribute1)
2860         AND inv_globals.equal(p_trolin_rec.attribute10, l_trolin_rec.attribute10)
2861         AND inv_globals.equal(p_trolin_rec.attribute11, l_trolin_rec.attribute11)
2862         AND inv_globals.equal(p_trolin_rec.attribute12, l_trolin_rec.attribute12)
2863         AND inv_globals.equal(p_trolin_rec.attribute13, l_trolin_rec.attribute13)
2864         AND inv_globals.equal(p_trolin_rec.attribute14, l_trolin_rec.attribute14)
2865         AND inv_globals.equal(p_trolin_rec.attribute15, l_trolin_rec.attribute15)
2866         AND inv_globals.equal(p_trolin_rec.attribute2, l_trolin_rec.attribute2)
2867         AND inv_globals.equal(p_trolin_rec.attribute3, l_trolin_rec.attribute3)
2868         AND inv_globals.equal(p_trolin_rec.attribute4, l_trolin_rec.attribute4)
2869         AND inv_globals.equal(p_trolin_rec.attribute5, l_trolin_rec.attribute5)
2870         AND inv_globals.equal(p_trolin_rec.attribute6, l_trolin_rec.attribute6)
2871         AND inv_globals.equal(p_trolin_rec.attribute7, l_trolin_rec.attribute7)
2872         AND inv_globals.equal(p_trolin_rec.attribute8, l_trolin_rec.attribute8)
2873         AND inv_globals.equal(p_trolin_rec.attribute9, l_trolin_rec.attribute9)
2874         AND inv_globals.equal(p_trolin_rec.attribute_category, l_trolin_rec.attribute_category)
2875         AND (inv_globals.equal(p_trolin_rec.created_by, l_trolin_rec.created_by)
2876              OR (p_trolin_rec.created_by = fnd_api.g_miss_num
2877                  AND l_trolin_rec.created_by IS NULL
2878                 )
2879             )
2880         AND (inv_globals.equal(p_trolin_rec.creation_date, l_trolin_rec.creation_date)
2881              OR (p_trolin_rec.creation_date = fnd_api.g_miss_date
2882                  AND l_trolin_rec.creation_date IS NULL
2883                 )
2884             )
2885         AND (inv_globals.equal(p_trolin_rec.date_required, l_trolin_rec.date_required)
2886              OR (p_trolin_rec.date_required = fnd_api.g_miss_date
2887                  AND l_trolin_rec.date_required IS NULL
2888                 )
2889             )
2890         AND (inv_globals.equal(p_trolin_rec.from_locator_id, l_trolin_rec.from_locator_id)
2891              OR (p_trolin_rec.from_locator_id = fnd_api.g_miss_num
2892                  AND l_trolin_rec.from_locator_id IS NULL
2893                 )
2894             )
2895         AND (inv_globals.equal(p_trolin_rec.from_subinventory_code, l_trolin_rec.from_subinventory_code)
2896              OR (p_trolin_rec.from_subinventory_code = fnd_api.g_miss_char
2897                  AND l_trolin_rec.from_subinventory_code IS NULL
2898                 )
2899             )
2900         AND (inv_globals.equal(p_trolin_rec.from_subinventory_id, l_trolin_rec.from_subinventory_id)
2901              OR (p_trolin_rec.from_subinventory_id = fnd_api.g_miss_num
2902                  AND l_trolin_rec.from_subinventory_id IS NULL
2903                 )
2904             )
2905         AND (inv_globals.equal(p_trolin_rec.header_id, l_trolin_rec.header_id)
2906              OR (p_trolin_rec.header_id = fnd_api.g_miss_num
2907                  AND l_trolin_rec.header_id IS NULL
2908                 )
2909             )
2910         AND (inv_globals.equal(p_trolin_rec.inventory_item_id, l_trolin_rec.inventory_item_id)
2911              OR (p_trolin_rec.inventory_item_id = fnd_api.g_miss_num
2912                  AND l_trolin_rec.inventory_item_id IS NULL
2913                 )
2914             )
2915         AND (inv_globals.equal(p_trolin_rec.last_updated_by, l_trolin_rec.last_updated_by)
2916              OR (p_trolin_rec.last_updated_by = fnd_api.g_miss_num
2917                  AND l_trolin_rec.last_updated_by IS NULL
2918                 )
2919             )
2920         AND (inv_globals.equal(p_trolin_rec.last_update_date, l_trolin_rec.last_update_date)
2921              OR (p_trolin_rec.last_update_date = fnd_api.g_miss_date
2922                  AND l_trolin_rec.last_update_date IS NULL
2923                 )
2924             )
2925         AND (inv_globals.equal(p_trolin_rec.last_update_login, l_trolin_rec.last_update_login)
2926              OR (p_trolin_rec.last_update_login = fnd_api.g_miss_num
2927                  AND l_trolin_rec.last_update_login IS NULL
2928                 )
2929             )
2930         AND (inv_globals.equal(p_trolin_rec.line_id, l_trolin_rec.line_id)
2931              OR (p_trolin_rec.line_id = fnd_api.g_miss_num
2932                  AND l_trolin_rec.line_id IS NULL
2933                 )
2934             )
2935         AND (inv_globals.equal(p_trolin_rec.line_number, l_trolin_rec.line_number)
2936              OR (p_trolin_rec.line_number = fnd_api.g_miss_num
2937                  AND l_trolin_rec.line_number IS NULL
2938                 )
2939             )
2940         AND (inv_globals.equal(p_trolin_rec.line_status, l_trolin_rec.line_status)
2941              OR (p_trolin_rec.line_status = fnd_api.g_miss_num
2942                  AND l_trolin_rec.line_status IS NULL
2943                 )
2944             )
2945         AND (inv_globals.equal(p_trolin_rec.lot_number, l_trolin_rec.lot_number)
2946              OR (p_trolin_rec.lot_number = fnd_api.g_miss_char
2947                  AND l_trolin_rec.lot_number IS NULL
2948                 )
2949             )
2950         AND (inv_globals.equal(p_trolin_rec.organization_id, l_trolin_rec.organization_id)
2951              OR (p_trolin_rec.organization_id = fnd_api.g_miss_num
2952                  AND l_trolin_rec.organization_id IS NULL
2953                 )
2954             )
2955         AND (inv_globals.equal(p_trolin_rec.program_application_id, l_trolin_rec.program_application_id)
2956              OR (p_trolin_rec.program_application_id = fnd_api.g_miss_num
2957                  AND l_trolin_rec.program_application_id IS NULL
2958                 )
2959             )
2960         AND (inv_globals.equal(p_trolin_rec.program_id, l_trolin_rec.program_id)
2961              OR (p_trolin_rec.program_id = fnd_api.g_miss_num
2962                  AND l_trolin_rec.program_id IS NULL
2963                 )
2964             )
2965         AND (inv_globals.equal(p_trolin_rec.program_update_date, l_trolin_rec.program_update_date)
2966              OR (p_trolin_rec.program_update_date = fnd_api.g_miss_date
2967                  AND l_trolin_rec.program_update_date IS NOT NULL
2968                 )
2969             )
2970         AND (inv_globals.equal(p_trolin_rec.project_id, l_trolin_rec.project_id)
2971              OR (p_trolin_rec.project_id = fnd_api.g_miss_num
2972                  AND l_trolin_rec.project_id IS NULL
2973                 )
2974             )
2975         AND (inv_globals.equal(p_trolin_rec.quantity, l_trolin_rec.quantity)
2976              OR (p_trolin_rec.quantity = fnd_api.g_miss_num
2977                  AND l_trolin_rec.quantity IS NULL
2978                 )
2979             )
2980         AND (inv_globals.equal(p_trolin_rec.quantity_delivered, l_trolin_rec.quantity_delivered)
2981              OR (p_trolin_rec.quantity_delivered = fnd_api.g_miss_num
2982                  AND l_trolin_rec.quantity_delivered IS NULL
2983                 )
2984             )
2985         AND (inv_globals.equal(p_trolin_rec.quantity_detailed, l_trolin_rec.quantity_detailed)
2986              OR (p_trolin_rec.quantity_detailed = fnd_api.g_miss_num
2987                  AND l_trolin_rec.quantity_detailed IS NULL
2988                 )
2989             )
2990         AND (inv_globals.equal(p_trolin_rec.reason_id, l_trolin_rec.reason_id)
2991              OR (p_trolin_rec.reason_id = fnd_api.g_miss_num
2992                  AND l_trolin_rec.reason_id IS NULL
2993                 )
2994             )
2995         AND (inv_globals.equal(p_trolin_rec.REFERENCE, l_trolin_rec.REFERENCE)
2996              OR (p_trolin_rec.REFERENCE = fnd_api.g_miss_char
2997                  AND l_trolin_rec.REFERENCE IS NULL
2998                 )
2999             )
3000         AND (inv_globals.equal(p_trolin_rec.reference_id, l_trolin_rec.reference_id)
3001              OR (p_trolin_rec.reference_id = fnd_api.g_miss_num
3002                  AND l_trolin_rec.reference_id IS NULL
3003                 )
3004             )
3005         AND (inv_globals.equal(p_trolin_rec.reference_type_code, l_trolin_rec.reference_type_code)
3006              OR (l_trolin_rec.reference_type_code = fnd_api.g_miss_num
3007                  AND l_trolin_rec.reference_type_code IS NULL
3008                 )
3009             )
3010         AND (inv_globals.equal(p_trolin_rec.request_id, l_trolin_rec.request_id)
3011              OR (p_trolin_rec.request_id = fnd_api.g_miss_num
3012                  AND l_trolin_rec.request_id IS NULL
3013                 )
3014             )
3015         AND (inv_globals.equal(p_trolin_rec.revision, l_trolin_rec.revision)
3016              OR (p_trolin_rec.revision = fnd_api.g_miss_char
3017                  AND l_trolin_rec.revision IS NULL
3018                 )
3019             )
3020         AND (inv_globals.equal(p_trolin_rec.serial_number_end, l_trolin_rec.serial_number_end)
3021              OR (p_trolin_rec.serial_number_end = fnd_api.g_miss_char
3022                  AND l_trolin_rec.serial_number_end IS NULL
3023                 )
3024             )
3025         AND (inv_globals.equal(p_trolin_rec.serial_number_start, l_trolin_rec.serial_number_start)
3026              OR (p_trolin_rec.serial_number_start = fnd_api.g_miss_char
3027                  AND l_trolin_rec.serial_number_start IS NULL
3028                 )
3029             )
3030         AND (inv_globals.equal(p_trolin_rec.status_date, l_trolin_rec.status_date)
3031              OR (p_trolin_rec.status_date = fnd_api.g_miss_date
3032                  AND l_trolin_rec.status_date IS NULL
3033                 )
3034             )
3035         AND (inv_globals.equal(p_trolin_rec.task_id, l_trolin_rec.task_id)
3036              OR (p_trolin_rec.task_id = fnd_api.g_miss_num
3037                  AND l_trolin_rec.task_id IS NULL
3038                 )
3039             )
3040         AND (inv_globals.equal(p_trolin_rec.to_account_id, l_trolin_rec.to_account_id)
3041              OR (p_trolin_rec.to_account_id = fnd_api.g_miss_num
3042                  AND l_trolin_rec.to_account_id IS NULL
3043                 )
3044             )
3045         AND (inv_globals.equal(p_trolin_rec.to_locator_id, l_trolin_rec.to_locator_id)
3046              OR (p_trolin_rec.to_locator_id = fnd_api.g_miss_num
3047                  AND l_trolin_rec.to_locator_id IS NULL
3048                 )
3049             )
3050         AND (inv_globals.equal(p_trolin_rec.to_subinventory_code, l_trolin_rec.to_subinventory_code)
3051              OR (p_trolin_rec.to_subinventory_code = fnd_api.g_miss_char
3052                  AND l_trolin_rec.to_subinventory_code IS NULL
3053                 )
3054             )
3055         AND (inv_globals.equal(p_trolin_rec.to_subinventory_id, l_trolin_rec.to_subinventory_id)
3056              OR (p_trolin_rec.to_subinventory_id = fnd_api.g_miss_num
3057                  AND l_trolin_rec.to_subinventory_id IS NULL
3058                 )
3059             )
3060         AND (inv_globals.equal(p_trolin_rec.transaction_header_id, l_trolin_rec.transaction_header_id)
3061              OR (p_trolin_rec.transaction_header_id = fnd_api.g_miss_num
3062                  AND l_trolin_rec.transaction_header_id IS NULL
3063                 )
3064             )
3065         AND (inv_globals.equal(p_trolin_rec.uom_code, l_trolin_rec.uom_code)
3066              OR (p_trolin_rec.uom_code = fnd_api.g_miss_char
3067                  AND p_trolin_rec.uom_code IS NULL
3068                 )
3069             )
3070         AND (inv_globals.equal(p_trolin_rec.transaction_type_id, l_trolin_rec.transaction_type_id)
3071              OR (p_trolin_rec.transaction_type_id = fnd_api.g_miss_num
3072                  AND l_trolin_rec.transaction_type_id IS NULL
3073                 )
3074             )
3075         AND (inv_globals.equal(p_trolin_rec.transaction_source_type_id, l_trolin_rec.transaction_source_type_id)
3076              OR (p_trolin_rec.transaction_source_type_id = fnd_api.g_miss_num
3077                  AND l_trolin_rec.transaction_source_type_id IS NULL
3078                 )
3079             )
3080         AND (inv_globals.equal(p_trolin_rec.txn_source_id, l_trolin_rec.txn_source_id)
3081              OR (p_trolin_rec.txn_source_id = fnd_api.g_miss_num
3082                  AND l_trolin_rec.txn_source_id IS NULL
3083                 )
3084             )
3085         AND inv_globals.equal(p_trolin_rec.txn_source_line_id, l_trolin_rec.txn_source_line_id)
3086         AND (inv_globals.equal(p_trolin_rec.txn_source_line_detail_id, l_trolin_rec.txn_source_line_detail_id)
3087              OR (p_trolin_rec.txn_source_line_detail_id = fnd_api.g_miss_num
3088                  AND l_trolin_rec.txn_source_line_detail_id IS NULL
3089                 )
3090             )
3091         AND (inv_globals.equal(p_trolin_rec.primary_quantity, l_trolin_rec.primary_quantity)
3092              OR (p_trolin_rec.primary_quantity = fnd_api.g_miss_num
3093                  AND l_trolin_rec.primary_quantity IS NULL
3094                 )
3095             )
3096         AND (inv_globals.equal(p_trolin_rec.to_organization_id, l_trolin_rec.to_organization_id)
3097              OR (p_trolin_rec.to_organization_id = fnd_api.g_miss_num
3098                  AND l_trolin_rec.to_organization_id IS NULL
3099                 )
3100             )
3101         AND (inv_globals.equal(p_trolin_rec.pick_strategy_id, l_trolin_rec.pick_strategy_id)
3102              OR (p_trolin_rec.pick_strategy_id = fnd_api.g_miss_num
3103                  AND l_trolin_rec.pick_strategy_id IS NULL
3104                 )
3105             )
3106         AND (inv_globals.equal(p_trolin_rec.put_away_strategy_id, l_trolin_rec.put_away_strategy_id)
3107              OR (p_trolin_rec.put_away_strategy_id = fnd_api.g_miss_num
3108                  AND l_trolin_rec.put_away_strategy_id IS NULL
3109                 )
3110             )
3111         AND (inv_globals.equal(p_trolin_rec.unit_number, l_trolin_rec.unit_number)
3112              OR (p_trolin_rec.unit_number = fnd_api.g_miss_char
3113                  AND l_trolin_rec.unit_number IS NULL
3114                 )
3115             )
3116         AND (inv_globals.equal(p_trolin_rec.ship_to_location_id, l_trolin_rec.ship_to_location_id)
3117              OR (p_trolin_rec.ship_to_location_id = fnd_api.g_miss_num
3118                  AND l_trolin_rec.ship_to_location_id IS NULL
3119                 )
3120             )
3121         AND (inv_globals.equal(p_trolin_rec.from_cost_group_id, l_trolin_rec.from_cost_group_id)
3122              OR (p_trolin_rec.from_cost_group_id = fnd_api.g_miss_num
3123                  AND l_trolin_rec.to_cost_group_id IS NULL
3124                 )
3125             )
3126         AND (inv_globals.equal(p_trolin_rec.to_cost_group_id, l_trolin_rec.to_cost_group_id)
3127              OR (p_trolin_rec.to_cost_group_id = fnd_api.g_miss_num
3128                  AND l_trolin_rec.to_cost_group_id IS NULL
3129                 )
3130             )
3131         AND (inv_globals.equal(p_trolin_rec.lpn_id, l_trolin_rec.lpn_id)
3132              OR (p_trolin_rec.lpn_id = fnd_api.g_miss_num
3133                  AND l_trolin_rec.lpn_id IS NULL
3134                 )
3135             )
3136         AND (inv_globals.equal(p_trolin_rec.to_lpn_id, l_trolin_rec.to_lpn_id)
3137              OR (p_trolin_rec.to_lpn_id = fnd_api.g_miss_num
3138                  AND l_trolin_rec.to_lpn_id IS NULL
3139                 )
3140             )
3141         AND inv_globals.equal(p_trolin_rec.inspection_status, l_trolin_rec.inspection_status)
3142         AND (inv_globals.equal(p_trolin_rec.pick_methodology_id, l_trolin_rec.pick_methodology_id)
3143              OR (p_trolin_rec.pick_methodology_id = fnd_api.g_miss_num
3144                  AND l_trolin_rec.pick_methodology_id IS NULL
3145                 )
3146             )
3147         AND (inv_globals.equal(p_trolin_rec.container_item_id, l_trolin_rec.container_item_id)
3148              OR (p_trolin_rec.container_item_id = fnd_api.g_miss_num
3149                  AND l_trolin_rec.container_item_id IS NULL
3150                 )
3151             )
3152         AND (inv_globals.equal(p_trolin_rec.carton_grouping_id, l_trolin_rec.carton_grouping_id)
3153              OR (p_trolin_rec.carton_grouping_id = fnd_api.g_miss_num
3154                  AND l_trolin_rec.carton_grouping_id IS NULL
3155                 )
3156             )
3157         AND (inv_globals.equal(p_trolin_rec.wms_process_flag, l_trolin_rec.wms_process_flag)
3158              OR (p_trolin_rec.wms_process_flag = fnd_api.g_miss_char
3159                  AND l_trolin_rec.wms_process_flag IS NULL
3160                 )
3161             )
3162         AND (inv_globals.equal(p_trolin_rec.pick_slip_number, l_trolin_rec.pick_slip_number)
3163              OR (p_trolin_rec.pick_slip_number = fnd_api.g_miss_num
3164                  AND l_trolin_rec.pick_slip_number IS NULL
3165                 )
3166             )
3167         AND (inv_globals.equal(p_trolin_rec.pick_slip_date, l_trolin_rec.pick_slip_date)
3168              OR (p_trolin_rec.pick_slip_date = fnd_api.g_miss_date
3169                  AND l_trolin_rec.pick_slip_date IS NULL
3170                 )
3171             )
3172         AND (inv_globals.equal(p_trolin_rec.ship_set_id, l_trolin_rec.ship_set_id)
3173              OR (p_trolin_rec.ship_set_id = fnd_api.g_miss_num
3174                  AND l_trolin_rec.ship_set_id IS NULL
3175                 )
3176             )
3177         AND (inv_globals.equal(p_trolin_rec.ship_model_id, l_trolin_rec.ship_model_id)
3178              OR (p_trolin_rec.ship_model_id = fnd_api.g_miss_num
3179                  AND l_trolin_rec.ship_model_id IS NULL
3180                 )
3181             )
3182         AND (inv_globals.equal(p_trolin_rec.model_quantity, l_trolin_rec.model_quantity)
3183              OR (p_trolin_rec.model_quantity = fnd_api.g_miss_num
3184                  AND l_trolin_rec.model_quantity IS NULL
3185                 )
3186             ) THEN
3187       --  Row has not changed. Set out parameter.
3188 
3189       x_trolin_rec                := l_trolin_rec;
3190       --  Set return status
3191 
3192       x_return_status             := fnd_api.g_ret_sts_success;
3193       x_trolin_rec.return_status  := fnd_api.g_ret_sts_success;
3194     ELSE
3195       --  Row has changed by another user.
3196 
3197       x_return_status             := fnd_api.g_ret_sts_error;
3198       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3199 
3200       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3201         fnd_message.set_name('INV', 'OE_LOCK_ROW_CHANGED');
3202         fnd_msg_pub.ADD;
3203       END IF;
3204     END IF;
3205   --Line2086
3206   EXCEPTION
3207     WHEN NO_DATA_FOUND THEN
3208       x_return_status             := fnd_api.g_ret_sts_error;
3209       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3210 
3211       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3212         fnd_message.set_name('INV', 'OE_LOCK_ROW_DELETED');
3213         fnd_msg_pub.ADD;
3214       END IF;
3215     WHEN app_exceptions.record_lock_exception THEN
3216       x_return_status             := fnd_api.g_ret_sts_error;
3217       x_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3218 
3219       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
3220         fnd_message.set_name('INV', 'OE_LOCK_ROW_ALREADY_LOCKED');
3221         fnd_msg_pub.ADD;
3222       END IF;
3223     WHEN OTHERS THEN
3224       x_return_status             := fnd_api.g_ret_sts_unexp_error;
3225       x_trolin_rec.return_status  := fnd_api.g_ret_sts_unexp_error;
3226 
3227       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3228         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Lock_Row');
3229       END IF;
3230   END lock_row;
3231 
3232   --  Function Get_Values
3233 
3234   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)
3235     RETURN inv_move_order_pub.trolin_val_rec_type IS
3236     l_trolin_val_rec inv_move_order_pub.trolin_val_rec_type;
3237   BEGIN
3238     -- Line2147
3239     IF  p_trolin_rec.from_locator_id IS NOT NULL
3240         AND p_trolin_rec.from_locator_id <> fnd_api.g_miss_num
3241         AND NOT inv_globals.equal(p_trolin_rec.from_locator_id, p_old_trolin_rec.from_locator_id) THEN
3242       l_trolin_val_rec.from_locator  := inv_id_to_value.from_locator(p_from_locator_id => p_trolin_rec.from_locator_id);
3243     END IF;
3244 
3245     --    IF p_trolin_rec.from_subinventory_code IS NOT NULL AND
3246     --        p_trolin_rec.from_subinventory_code <> FND_API.G_MISS_CHAR AND
3247     --        NOT INV_GLOBALS.Equal(p_trolin_rec.from_subinventory_code,
3248     --        p_old_trolin_rec.from_subinventory_code)
3249     --    THEN
3250     --        l_trolin_val_rec.from_subinventory := INV_Id_To_Value.From_Subinventory
3251     --        (   p_from_subinventory_code      => p_trolin_rec.from_subinventory_code
3252     --        );
3253     --    END IF;  -- Generated
3254     -- Line 2167
3255     IF  p_trolin_rec.from_subinventory_id IS NOT NULL
3256         AND p_trolin_rec.from_subinventory_id <> fnd_api.g_miss_num
3257         AND NOT inv_globals.equal(p_trolin_rec.from_subinventory_id, p_old_trolin_rec.from_subinventory_id) THEN
3258       l_trolin_val_rec.from_subinventory  := inv_id_to_value.from_subinventory(p_from_subinventory_id => p_trolin_rec.from_subinventory_id);
3259     --        (   p_from_subinventory_id        => p_trolin_rec.from_subinventory_id
3260     --        );
3261     END IF;
3262 
3263     IF  p_trolin_rec.header_id IS NOT NULL
3264         AND p_trolin_rec.header_id <> fnd_api.g_miss_num
3265         AND NOT inv_globals.equal(p_trolin_rec.header_id, p_old_trolin_rec.header_id) THEN
3266       l_trolin_val_rec.header  := inv_id_to_value.header(p_header_id => p_trolin_rec.header_id);
3267     END IF;
3268 
3269     IF  p_trolin_rec.inventory_item_id IS NOT NULL
3270         AND p_trolin_rec.inventory_item_id <> fnd_api.g_miss_num
3271         AND NOT inv_globals.equal(p_trolin_rec.inventory_item_id, p_old_trolin_rec.inventory_item_id) THEN
3272       l_trolin_val_rec.inventory_item  := inv_id_to_value.inventory_item(p_inventory_item_id => p_trolin_rec.inventory_item_id);
3273     END IF;
3274 
3275     IF  p_trolin_rec.line_id IS NOT NULL
3276         AND p_trolin_rec.line_id <> fnd_api.g_miss_num
3277         AND NOT inv_globals.equal(p_trolin_rec.line_id, p_old_trolin_rec.line_id) THEN
3278       l_trolin_val_rec.line  := inv_id_to_value.line(p_line_id => p_trolin_rec.line_id);
3279     END IF;
3280 
3281     IF  p_trolin_rec.organization_id IS NOT NULL
3282         AND p_trolin_rec.organization_id <> fnd_api.g_miss_num
3283         AND NOT inv_globals.equal(p_trolin_rec.organization_id, p_old_trolin_rec.organization_id) THEN
3284       l_trolin_val_rec.ORGANIZATION  := inv_id_to_value.ORGANIZATION(p_organization_id => p_trolin_rec.organization_id);
3285     END IF;
3286 
3287     IF  p_trolin_rec.to_organization_id IS NOT NULL
3288         AND p_trolin_rec.to_organization_id <> fnd_api.g_miss_num
3289         AND NOT inv_globals.equal(p_trolin_rec.to_organization_id, p_old_trolin_rec.to_organization_id) THEN
3290       l_trolin_val_rec.to_organization  := inv_id_to_value.to_organization(p_to_organization_id => p_trolin_rec.to_organization_id);
3291     END IF;
3292 
3293     IF  p_trolin_rec.project_id IS NOT NULL
3294         AND p_trolin_rec.project_id <> fnd_api.g_miss_num
3295         AND NOT inv_globals.equal(p_trolin_rec.project_id, p_old_trolin_rec.project_id) THEN
3296       l_trolin_val_rec.project  := inv_id_to_value.project(p_project_id => p_trolin_rec.project_id);
3297     END IF;
3298 
3299     IF  p_trolin_rec.reason_id IS NOT NULL
3300         AND p_trolin_rec.reason_id <> fnd_api.g_miss_num
3301         AND NOT inv_globals.equal(p_trolin_rec.reason_id, p_old_trolin_rec.reason_id) THEN
3302       l_trolin_val_rec.reason  := inv_id_to_value.reason(p_reason_id => p_trolin_rec.reason_id);
3303     END IF;
3304 
3305     IF  p_trolin_rec.reference_id IS NOT NULL
3306         AND p_trolin_rec.reference_id <> fnd_api.g_miss_num
3307         AND NOT inv_globals.equal(p_trolin_rec.reference_id, p_old_trolin_rec.reference_id) THEN
3308       l_trolin_val_rec.REFERENCE  := inv_id_to_value.REFERENCE(p_reference_id => p_trolin_rec.reference_id);
3309     END IF;
3310 
3311     IF  p_trolin_rec.reference_type_code IS NOT NULL
3312         AND p_trolin_rec.reference_type_code <> fnd_api.g_miss_num
3313         AND NOT inv_globals.equal(p_trolin_rec.reference_type_code, p_old_trolin_rec.reference_type_code) THEN
3314       l_trolin_val_rec.reference_type  := inv_id_to_value.reference_type(p_reference_type_code => p_trolin_rec.reference_type_code);
3315     END IF;
3316 
3317     IF  p_trolin_rec.task_id IS NOT NULL
3318         AND p_trolin_rec.task_id <> fnd_api.g_miss_num
3319         AND NOT inv_globals.equal(p_trolin_rec.task_id, p_old_trolin_rec.task_id) THEN
3320       l_trolin_val_rec.task  := inv_id_to_value.task(p_task_id => p_trolin_rec.task_id);
3321     END IF;
3322 
3323     IF  p_trolin_rec.to_account_id IS NOT NULL
3324         AND p_trolin_rec.to_account_id <> fnd_api.g_miss_num
3325         AND NOT inv_globals.equal(p_trolin_rec.to_account_id, p_old_trolin_rec.to_account_id) THEN
3326       l_trolin_val_rec.to_account  := inv_id_to_value.to_account(p_to_account_id => p_trolin_rec.to_account_id);
3327     END IF;
3328 
3329     IF  p_trolin_rec.to_locator_id IS NOT NULL
3330         AND p_trolin_rec.to_locator_id <> fnd_api.g_miss_num
3331         AND NOT inv_globals.equal(p_trolin_rec.to_locator_id, p_old_trolin_rec.to_locator_id) THEN
3332       l_trolin_val_rec.to_locator  := inv_id_to_value.to_locator(p_to_locator_id => p_trolin_rec.to_locator_id);
3333     END IF;
3334 
3335     --    IF p_trolin_rec.to_subinventory_code IS NOT NULL AND
3336     --        p_trolin_rec.to_subinventory_code <> FND_API.G_MISS_CHAR AND
3337     --        NOT INV_GLOBALS.Equal(p_trolin_rec.to_subinventory_code,
3338     --        p_old_trolin_rec.to_subinventory_code)
3339     --    THEN
3340     --        l_trolin_val_rec.to_subinventory := INV_Id_To_Value.To_Subinventory
3341     --        (   p_to_subinventory_code        => p_trolin_rec.to_subinventory_code
3342     --        );
3343     --    END IF; -- Generated
3344 
3345     IF  p_trolin_rec.to_subinventory_id IS NOT NULL
3346         AND p_trolin_rec.to_subinventory_id <> fnd_api.g_miss_num
3347         AND NOT inv_globals.equal(p_trolin_rec.to_subinventory_id, p_old_trolin_rec.to_subinventory_id) THEN
3348       l_trolin_val_rec.to_subinventory  := inv_id_to_value.to_subinventory(p_to_subinventory_id => p_trolin_rec.to_subinventory_id);
3349     END IF;
3350 
3351     IF  p_trolin_rec.transaction_header_id IS NOT NULL
3352         AND p_trolin_rec.transaction_header_id <> fnd_api.g_miss_num
3353         AND NOT inv_globals.equal(p_trolin_rec.transaction_header_id, p_old_trolin_rec.transaction_header_id) THEN
3354       l_trolin_val_rec.transaction_header  := inv_id_to_value.transaction_header(p_transaction_header_id => p_trolin_rec.transaction_header_id);
3355     END IF;
3356 
3357     IF  p_trolin_rec.transaction_type_id IS NOT NULL
3358         AND p_trolin_rec.transaction_type_id <> fnd_api.g_miss_num
3359         AND NOT inv_globals.equal(p_trolin_rec.transaction_type_id, p_old_trolin_rec.transaction_type_id) THEN
3360       l_trolin_val_rec.transaction_type  := inv_id_to_value.transaction_type(p_transaction_type_id => p_trolin_rec.transaction_type_id);
3361     END IF;
3362 
3363     IF  p_trolin_rec.uom_code IS NOT NULL
3364         AND p_trolin_rec.uom_code <> fnd_api.g_miss_char
3365         AND NOT inv_globals.equal(p_trolin_rec.uom_code, p_old_trolin_rec.uom_code) THEN
3366       l_trolin_val_rec.uom  := inv_id_to_value.uom(p_uom_code => p_trolin_rec.uom_code);
3367     END IF;
3368 
3369     RETURN l_trolin_val_rec;
3370   END get_values;
3371 
3372   --  Function Get_Ids
3373 
3374   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)
3375     RETURN inv_move_order_pub.trolin_rec_type IS
3376     l_trolin_rec inv_move_order_pub.trolin_rec_type;
3377   BEGIN
3378     --  initialize  return_status.
3379 
3380     l_trolin_rec.return_status  := fnd_api.g_ret_sts_success;
3381     --  initialize l_trolin_rec.
3382 
3383     l_trolin_rec                := p_trolin_rec;
3384 
3385     /*
3386         IF  p_trolin_val_rec.from_locator <> FND_API.G_MISS_CHAR
3387         THEN
3388 
3389             IF p_trolin_rec.from_locator_id <> FND_API.G_MISS_NUM THEN
3390 
3391                 l_trolin_rec.from_locator_id := p_trolin_rec.from_locator_id;
3392 
3393                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3394                 THEN
3395 
3396                     FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
3397                     FND_MESSAGE.SET_TOKEN('ATTRIBUTE','from_locator');
3398                     FND_MSG_PUB.Add;
3399 
3400                 END IF;
3401 
3402             ELSE
3403 
3404                 l_trolin_rec.from_locator_id := INV_Value_To_Id.from_locator
3405                 (   p_organizatoin_id             => p_trolin_rec.organization_id,
3406                     p_from_locator                => p_trolin_val_rec.from_locator
3407                 );
3408 
3409                 IF l_trolin_rec.from_locator_id = FND_API.G_MISS_NUM THEN
3410                     l_trolin_rec.return_status := FND_API.G_RET_STS_ERROR;
3411                 END IF;
3412 
3413             END IF;
3414 
3415         END IF;
3416     */
3417 
3418     IF p_trolin_val_rec.from_subinventory <> fnd_api.g_miss_char THEN
3419       IF p_trolin_rec.from_subinventory_id <> fnd_api.g_miss_num THEN
3420         l_trolin_rec.from_subinventory_id  := p_trolin_rec.from_subinventory_id;
3421 
3422         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3423           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3424           fnd_message.set_token('ATTRIBUTE', 'from_subinventory');
3425           fnd_msg_pub.ADD;
3426         END IF;
3427       ELSE
3428         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);
3429 
3430         IF l_trolin_rec.from_subinventory_id = fnd_api.g_miss_num THEN
3431           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3432         END IF;
3433       END IF;
3434     END IF;
3435 
3436     IF p_trolin_val_rec.header <> fnd_api.g_miss_char THEN
3437       IF p_trolin_rec.header_id <> fnd_api.g_miss_num THEN
3438         l_trolin_rec.header_id  := p_trolin_rec.header_id;
3439 
3440         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3441           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3442           fnd_message.set_token('ATTRIBUTE', 'header');
3443           fnd_msg_pub.ADD;
3444         END IF;
3445       ELSE
3446         l_trolin_rec.header_id  := inv_value_to_id.header(p_header => p_trolin_val_rec.header);
3447 
3448         IF l_trolin_rec.header_id = fnd_api.g_miss_num THEN
3449           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3450         END IF;
3451       END IF;
3452     END IF;
3453 
3454     IF p_trolin_val_rec.inventory_item <> fnd_api.g_miss_char THEN
3455       IF p_trolin_rec.inventory_item_id <> fnd_api.g_miss_num THEN
3456         l_trolin_rec.inventory_item_id  := p_trolin_rec.inventory_item_id;
3457 
3458         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3459           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3460           fnd_message.set_token('ATTRIBUTE', 'inventory_item');
3461           fnd_msg_pub.ADD;
3462         END IF;
3463       ELSE
3464         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);
3465 
3466         IF l_trolin_rec.inventory_item_id = fnd_api.g_miss_num THEN
3467           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3468         END IF;
3469       END IF;
3470     END IF;
3471 
3472     IF p_trolin_val_rec.line <> fnd_api.g_miss_char THEN
3473       IF p_trolin_rec.line_id <> fnd_api.g_miss_num THEN
3474         l_trolin_rec.line_id  := p_trolin_rec.line_id;
3475 
3476         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3477           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3478           fnd_message.set_token('ATTRIBUTE', 'line');
3479           fnd_msg_pub.ADD;
3480         END IF;
3481       ELSE
3482         l_trolin_rec.line_id  := inv_value_to_id.line(p_line => p_trolin_val_rec.line);
3483 
3484         IF l_trolin_rec.line_id = fnd_api.g_miss_num THEN
3485           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3486         END IF;
3487       END IF;
3488     END IF;
3489 
3490     IF p_trolin_val_rec.ORGANIZATION <> fnd_api.g_miss_char THEN
3491       IF p_trolin_rec.organization_id <> fnd_api.g_miss_num THEN
3492         l_trolin_rec.organization_id  := p_trolin_rec.organization_id;
3493 
3494         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3495           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3496           fnd_message.set_token('ATTRIBUTE', 'organization');
3497           fnd_msg_pub.ADD;
3498         END IF;
3499       ELSE
3500         l_trolin_rec.organization_id  := inv_value_to_id.ORGANIZATION(p_organization => p_trolin_val_rec.ORGANIZATION);
3501 
3502         IF l_trolin_rec.organization_id = fnd_api.g_miss_num THEN
3503           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3504         END IF;
3505       END IF;
3506     END IF;
3507 
3508     IF p_trolin_val_rec.to_organization <> fnd_api.g_miss_char THEN
3509       IF p_trolin_rec.to_organization_id <> fnd_api.g_miss_num THEN
3510         l_trolin_rec.to_organization_id  := p_trolin_rec.to_organization_id;
3511 
3512         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3513           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3514           fnd_message.set_token('ATTRIBUTE', 'to_organization');
3515           fnd_msg_pub.ADD;
3516         END IF;
3517       ELSE
3518         l_trolin_rec.to_organization_id  := inv_value_to_id.to_organization(p_to_organization => p_trolin_val_rec.to_organization);
3519 
3520         IF l_trolin_rec.to_organization_id = fnd_api.g_miss_num THEN
3521           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3522         END IF;
3523       END IF;
3524     END IF;
3525 
3526     IF p_trolin_val_rec.project <> fnd_api.g_miss_char THEN
3527       IF p_trolin_rec.project_id <> fnd_api.g_miss_num THEN
3528         l_trolin_rec.project_id  := p_trolin_rec.project_id;
3529 
3530         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3531           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3532           fnd_message.set_token('ATTRIBUTE', 'project');
3533           fnd_msg_pub.ADD;
3534         END IF;
3535       ELSE
3536         l_trolin_rec.project_id  := inv_value_to_id.project(p_project => p_trolin_val_rec.project);
3537 
3538         IF l_trolin_rec.project_id = fnd_api.g_miss_num THEN
3539           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3540         END IF;
3541       END IF;
3542     END IF;
3543 
3544     IF p_trolin_val_rec.reason <> fnd_api.g_miss_char THEN
3545       IF p_trolin_rec.reason_id <> fnd_api.g_miss_num THEN
3546         l_trolin_rec.reason_id  := p_trolin_rec.reason_id;
3547 
3548         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3549           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3550           fnd_message.set_token('ATTRIBUTE', 'reason');
3551           fnd_msg_pub.ADD;
3552         END IF;
3553       ELSE
3554         l_trolin_rec.reason_id  := inv_value_to_id.reason(p_reason => p_trolin_val_rec.reason);
3555 
3556         IF l_trolin_rec.reason_id = fnd_api.g_miss_num THEN
3557           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3558         END IF;
3559       END IF;
3560     END IF;
3561 
3562     IF p_trolin_val_rec.REFERENCE <> fnd_api.g_miss_char THEN
3563       IF p_trolin_rec.reference_id <> fnd_api.g_miss_num THEN
3564         l_trolin_rec.reference_id  := p_trolin_rec.reference_id;
3565 
3566         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3567           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3568           fnd_message.set_token('ATTRIBUTE', 'reference');
3569           fnd_msg_pub.ADD;
3570         END IF;
3571       ELSE
3572         l_trolin_rec.reference_id  := inv_value_to_id.REFERENCE(p_reference => p_trolin_val_rec.REFERENCE);
3573 
3574         IF l_trolin_rec.reference_id = fnd_api.g_miss_num THEN
3575           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3576         END IF;
3577       END IF;
3578     END IF;
3579 
3580     IF p_trolin_val_rec.reference_type <> fnd_api.g_miss_char THEN
3581       IF p_trolin_rec.reference_type_code <> fnd_api.g_miss_num THEN
3582         l_trolin_rec.reference_type_code  := p_trolin_rec.reference_type_code;
3583 
3584         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3585           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3586           fnd_message.set_token('ATTRIBUTE', 'reference_type');
3587           fnd_msg_pub.ADD;
3588         END IF;
3589       ELSE
3590         l_trolin_rec.reference_type_code  := inv_value_to_id.reference_type(p_reference_type => p_trolin_val_rec.reference_type);
3591 
3592         IF l_trolin_rec.reference_type_code = fnd_api.g_miss_num THEN
3593           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3594         END IF;
3595       END IF;
3596     END IF;
3597 
3598     IF p_trolin_val_rec.task <> fnd_api.g_miss_char THEN
3599       IF p_trolin_rec.task_id <> fnd_api.g_miss_num THEN
3600         l_trolin_rec.task_id  := p_trolin_rec.task_id;
3601 
3602         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3603           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3604           fnd_message.set_token('ATTRIBUTE', 'task');
3605           fnd_msg_pub.ADD;
3606         END IF;
3607       ELSE
3608         l_trolin_rec.task_id  := inv_value_to_id.task(p_task => p_trolin_val_rec.task);
3609 
3610         IF l_trolin_rec.task_id = fnd_api.g_miss_num THEN
3611           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3612         END IF;
3613       END IF;
3614     END IF;
3615 
3616     IF p_trolin_val_rec.to_account <> fnd_api.g_miss_char THEN
3617       IF p_trolin_rec.to_account_id <> fnd_api.g_miss_num THEN
3618         l_trolin_rec.to_account_id  := p_trolin_rec.to_account_id;
3619 
3620         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3621           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3622           fnd_message.set_token('ATTRIBUTE', 'to_account');
3623           fnd_msg_pub.ADD;
3624         END IF;
3625       ELSE
3626         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);
3627 
3628         IF l_trolin_rec.to_account_id = fnd_api.g_miss_num THEN
3629           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3630         END IF;
3631       END IF;
3632     END IF;
3633 
3634     /*
3635         IF  p_trolin_val_rec.to_locator <> FND_API.G_MISS_CHAR
3636         THEN
3637 
3638             IF p_trolin_rec.to_locator_id <> FND_API.G_MISS_NUM THEN
3639 
3640                 l_trolin_rec.to_locator_id := p_trolin_rec.to_locator_id;
3641 
3642                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3643                 THEN
3644 
3645                     FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
3646                     FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_locator');
3647                     FND_MSG_PUB.Add;
3648 
3649                 END IF;
3650 
3651             ELSE
3652 
3653                 l_trolin_rec.to_locator_id := INV_Value_To_Id.to_locator
3654                 (   p_to_locator                  => p_trolin_val_rec.to_locator
3655                 );
3656 
3657                 IF l_trolin_rec.to_locator_id = FND_API.G_MISS_NUM THEN
3658                     l_trolin_rec.return_status := FND_API.G_RET_STS_ERROR;
3659                 END IF;
3660 
3661             END IF;
3662 
3663         END IF;
3664     */
3665 
3666     IF p_trolin_val_rec.to_subinventory <> fnd_api.g_miss_char THEN
3667       IF p_trolin_rec.to_subinventory_code <> fnd_api.g_miss_char THEN
3668         l_trolin_rec.to_subinventory_code  := p_trolin_rec.to_subinventory_code;
3669 
3670         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3671           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3672           fnd_message.set_token('ATTRIBUTE', 'to_subinventory');
3673           fnd_msg_pub.ADD;
3674         END IF;
3675       ELSE
3676         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);
3677 
3678         IF l_trolin_rec.to_subinventory_code = fnd_api.g_miss_char THEN
3679           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3680         END IF;
3681       END IF;
3682     END IF;
3683 
3684     -- Line2839
3685     IF p_trolin_val_rec.to_subinventory <> fnd_api.g_miss_char THEN
3686       IF p_trolin_rec.to_subinventory_id <> fnd_api.g_miss_num THEN
3687         l_trolin_rec.to_subinventory_id  := p_trolin_rec.to_subinventory_id;
3688 
3689         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3690           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3691           fnd_message.set_token('ATTRIBUTE', 'to_subinventory');
3692           fnd_msg_pub.ADD;
3693         END IF;
3694       ELSE
3695         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);
3696 
3697         IF l_trolin_rec.to_subinventory_id = fnd_api.g_miss_num THEN
3698           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3699         END IF;
3700       END IF;
3701     END IF;
3702 
3703     IF p_trolin_val_rec.transaction_header <> fnd_api.g_miss_char THEN
3704       IF p_trolin_rec.transaction_header_id <> fnd_api.g_miss_num THEN
3705         l_trolin_rec.transaction_header_id  := p_trolin_rec.transaction_header_id;
3706 
3707         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3708           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3709           fnd_message.set_token('ATTRIBUTE', 'transaction_header');
3710           fnd_msg_pub.ADD;
3711         END IF;
3712       ELSE
3713         l_trolin_rec.transaction_header_id  := inv_value_to_id.transaction_header(p_transaction_header => p_trolin_val_rec.transaction_header);
3714 
3715         IF l_trolin_rec.transaction_header_id = fnd_api.g_miss_num THEN
3716           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3717         END IF;
3718       END IF;
3719     END IF;
3720 
3721     IF p_trolin_val_rec.transaction_type <> fnd_api.g_miss_char THEN
3722       IF p_trolin_rec.transaction_type_id <> fnd_api.g_miss_num THEN
3723         l_trolin_rec.transaction_type_id  := p_trolin_rec.transaction_type_id;
3724 
3725         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3726           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3727           fnd_message.set_token('ATTRIBUTE', 'transaction_type');
3728           fnd_msg_pub.ADD;
3729         END IF;
3730       ELSE
3731         l_trolin_rec.transaction_type_id  := inv_value_to_id.transaction_type(p_transaction_type => p_trolin_val_rec.transaction_type);
3732 
3733         IF l_trolin_rec.transaction_type_id = fnd_api.g_miss_num THEN
3734           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3735         END IF;
3736       END IF;
3737     END IF;
3738 
3739     -- Line2899
3740     IF p_trolin_val_rec.uom <> fnd_api.g_miss_char THEN
3741       IF p_trolin_rec.uom_code <> fnd_api.g_miss_char THEN
3742         l_trolin_rec.uom_code  := p_trolin_rec.uom_code;
3743 
3744         IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
3745           fnd_message.set_name('INV', 'FND_BOTH_VAL_AND_ID_EXIST');
3746           fnd_message.set_token('ATTRIBUTE', 'uom');
3747           fnd_msg_pub.ADD;
3748         END IF;
3749       ELSE
3750         -- Line2917
3751         l_trolin_rec.uom_code  := inv_value_to_id.uom(p_uom => p_trolin_val_rec.uom);
3752 
3753         IF l_trolin_rec.uom_code = fnd_api.g_miss_char THEN
3754           l_trolin_rec.return_status  := fnd_api.g_ret_sts_error;
3755         END IF;
3756       END IF;
3757     END IF;
3758 
3759     RETURN l_trolin_rec;
3760   END get_ids;
3761 
3762   --Procedure Insert_Mo_Lines_Bulk  /* For Parallel Pick-Release */
3763 
3764   PROCEDURE insert_mo_lines_bulk(p_new_trolin_tbl IN inv_move_order_pub.trolin_new_tbl_type
3765 				,x_return_status IN OUT NOCOPY VARCHAR2) IS
3766 
3767   BEGIN
3768     FORALL i IN 1 .. p_new_trolin_tbl.COUNT
3769       insert into mtl_txn_request_lines
3770       values p_new_trolin_tbl(i);
3771 
3772   x_return_status := fnd_api.g_ret_sts_success;
3773   EXCEPTION
3774     WHEN OTHERS THEN
3775       x_return_status := fnd_api.g_ret_sts_error;
3776       RAISE fnd_api.g_exc_unexpected_error;
3777   END insert_mo_lines_bulk;
3778 
3779 END inv_trolin_util;