DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_TO_FORM_TROHDR

Source


1 PACKAGE BODY INV_TO_Form_Trohdr AS
2 /* $Header: INVFTRHB.pls 120.1 2005/06/17 14:20:31 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'INV_TO_Form_Trohdr';
7 
8 --  Global variables holding cached record.
9 
10 g_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
11 g_db_trohdr_rec               INV_Move_Order_PUB.Trohdr_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_trohdr
16 (   p_trohdr_rec                    IN  INV_Move_Order_PUB.Trohdr_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_trohdr
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_header_id                     IN  NUMBER
23 )
24 RETURN INV_Move_Order_PUB.Trohdr_Rec_Type;
25 
26 PROCEDURE Clear_trohdr;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    INV_Move_Order_PUB.Trohdr_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   x_return_status                 OUT NOCOPY VARCHAR2
37 ,   x_msg_count                     OUT NOCOPY NUMBER
38 ,   x_msg_data                      OUT NOCOPY VARCHAR2
39 ,   x_attribute1                    OUT NOCOPY VARCHAR2
40 ,   x_attribute10                   OUT NOCOPY VARCHAR2
41 ,   x_attribute11                   OUT NOCOPY VARCHAR2
42 ,   x_attribute12                   OUT NOCOPY VARCHAR2
43 ,   x_attribute13                   OUT NOCOPY VARCHAR2
44 ,   x_attribute14                   OUT NOCOPY VARCHAR2
45 ,   x_attribute15                   OUT NOCOPY VARCHAR2
46 ,   x_attribute2                    OUT NOCOPY VARCHAR2
47 ,   x_attribute3                    OUT NOCOPY VARCHAR2
48 ,   x_attribute4                    OUT NOCOPY VARCHAR2
49 ,   x_attribute5                    OUT NOCOPY VARCHAR2
50 ,   x_attribute6                    OUT NOCOPY VARCHAR2
51 ,   x_attribute7                    OUT NOCOPY VARCHAR2
52 ,   x_attribute8                    OUT NOCOPY VARCHAR2
53 ,   x_attribute9                    OUT NOCOPY VARCHAR2
54 ,   x_attribute_category            OUT NOCOPY VARCHAR2
55 ,   x_date_required                 OUT NOCOPY DATE
56 ,   x_description                   OUT NOCOPY VARCHAR2
57 ,   x_from_subinventory_code        OUT NOCOPY VARCHAR2
58 ,   x_header_id                     OUT NOCOPY NUMBER
59 ,   x_header_status                 OUT NOCOPY NUMBER
60 ,   x_organization_id               OUT NOCOPY NUMBER
61 ,   x_request_number                OUT NOCOPY VARCHAR2
62 ,   x_status_date                   OUT NOCOPY DATE
63 ,   x_to_account_id                 OUT NOCOPY NUMBER
64 ,   x_to_subinventory_code          OUT NOCOPY VARCHAR2
65 ,   x_move_order_type	            OUT NOCOPY NUMBER
66 ,   x_from_subinventory             OUT NOCOPY VARCHAR2
67 ,   x_header                        OUT NOCOPY VARCHAR2
68 ,   x_organization                  OUT NOCOPY VARCHAR2
69 ,   x_to_account                    OUT NOCOPY VARCHAR2
70 ,   x_to_subinventory               OUT NOCOPY VARCHAR2
71 ,   x_move_order_type_name          OUT NOCOPY VARCHAR2
72 ,   x_transaction_type_id	    OUT NOCOPY NUMBER
73 ,   x_ship_to_location_id           OUT NOCOPY NUMBER
74 )
75 IS
76 l_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
77 l_trohdr_val_rec              INV_Move_Order_PUB.Trohdr_Val_Rec_Type;
78 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
79 l_return_status               VARCHAR2(1);
80 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
81 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
82 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
83 BEGIN
84 
85     INV_GLOBALS.G_CALL_MODE            := 'FORM';
86     INV_GLOBALS.G_MAX_LINE_NUM         := null;
87     --  Set control flags.
88 
89     l_control_rec.controlled_operation := TRUE;
90     l_control_rec.default_attributes   := TRUE;
91 
92     l_control_rec.change_attributes    := FALSE;
93     l_control_rec.validate_entity      := FALSE;
94     l_control_rec.write_to_DB          := FALSE;
95     l_control_rec.process              := FALSE;
96 
97     --  Instruct API to retain its caches
98 
99     l_control_rec.clear_api_cache      := FALSE;
100     l_control_rec.clear_api_requests   := FALSE;
101 
102     --  Load IN parameters if any exist
103 
104 
105     --  Defaulting of flex values is currently done by the form.
106     --  Set flex attributes to NULL in order to avoid defaulting them.
107 
108     l_trohdr_rec.attribute1                       := NULL;
109     l_trohdr_rec.attribute10                      := NULL;
110     l_trohdr_rec.attribute11                      := NULL;
111     l_trohdr_rec.attribute12                      := NULL;
112     l_trohdr_rec.attribute13                      := NULL;
113     l_trohdr_rec.attribute14                      := NULL;
114     l_trohdr_rec.attribute15                      := NULL;
115     l_trohdr_rec.attribute2                       := NULL;
116     l_trohdr_rec.attribute3                       := NULL;
117     l_trohdr_rec.attribute4                       := NULL;
118     l_trohdr_rec.attribute5                       := NULL;
119     l_trohdr_rec.attribute6                       := NULL;
120     l_trohdr_rec.attribute7                       := NULL;
121     l_trohdr_rec.attribute8                       := NULL;
122     l_trohdr_rec.attribute9                       := NULL;
123     l_trohdr_rec.attribute_category               := NULL;
124 
125     --  Set Operation to Create
126 
127     l_trohdr_rec.operation := INV_GLOBALS.G_OPR_CREATE;
128 
129     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
130 
131     INV_Transfer_Order_PVT.Process_Transfer_Order
132     (   p_api_version_number          => 1.0
133     ,   p_init_msg_list               => FND_API.G_TRUE
134     ,   x_return_status               => l_return_status
135     ,   x_msg_count                   => x_msg_count
136     ,   x_msg_data                    => x_msg_data
137     ,   p_control_rec                 => l_control_rec
138     ,   p_trohdr_rec                  => l_trohdr_rec
139     ,   x_trohdr_rec                  => l_x_trohdr_rec
140     ,   x_trolin_tbl                  => l_x_trolin_tbl
141     );
142 
143     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
144         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
145     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
146         RAISE FND_API.G_EXC_ERROR;
147     END IF;
148 
149 
150     --  Load OUT parameters.
151 
152     x_attribute1                   := l_x_trohdr_rec.attribute1;
153     x_attribute10                  := l_x_trohdr_rec.attribute10;
154     x_attribute11                  := l_x_trohdr_rec.attribute11;
155     x_attribute12                  := l_x_trohdr_rec.attribute12;
156     x_attribute13                  := l_x_trohdr_rec.attribute13;
157     x_attribute14                  := l_x_trohdr_rec.attribute14;
158     x_attribute15                  := l_x_trohdr_rec.attribute15;
159     x_attribute2                   := l_x_trohdr_rec.attribute2;
160     x_attribute3                   := l_x_trohdr_rec.attribute3;
161     x_attribute4                   := l_x_trohdr_rec.attribute4;
162     x_attribute5                   := l_x_trohdr_rec.attribute5;
163     x_attribute6                   := l_x_trohdr_rec.attribute6;
164     x_attribute7                   := l_x_trohdr_rec.attribute7;
165     x_attribute8                   := l_x_trohdr_rec.attribute8;
166     x_attribute9                   := l_x_trohdr_rec.attribute9;
167     x_attribute_category           := l_x_trohdr_rec.attribute_category;
168     x_date_required                := l_x_trohdr_rec.date_required;
169     x_description                  := l_x_trohdr_rec.description;
170     x_from_subinventory_code       := l_x_trohdr_rec.from_subinventory_code;
171     x_header_id                    := l_x_trohdr_rec.header_id;
172     x_header_status                := l_x_trohdr_rec.header_status;
173     x_organization_id              := l_x_trohdr_rec.organization_id;
174     x_request_number               := l_x_trohdr_rec.request_number;
175     x_status_date                  := l_x_trohdr_rec.status_date;
176     x_to_account_id                := l_x_trohdr_rec.to_account_id;
177     x_to_subinventory_code         := l_x_trohdr_rec.to_subinventory_code;
178     --ssia move order enhancement changes
179     x_move_order_type              := l_x_trohdr_rec.move_order_type;
180     -- ssia end of changes
181     x_transaction_type_id	   := l_x_trohdr_rec.transaction_type_id;
182     x_ship_to_location_id          := l_x_trohdr_rec.ship_to_location_id;
183     --  Load display out parameters if any
184 
185     l_trohdr_val_rec := INV_Trohdr_Util.Get_Values
186     (   p_trohdr_rec                  => l_x_trohdr_rec
187     );
188     x_from_subinventory            := l_trohdr_val_rec.from_subinventory;
189     x_header                       := l_trohdr_val_rec.header;
190     x_organization                 := l_trohdr_val_rec.organization;
191     x_to_account                   := l_trohdr_val_rec.to_account;
192     x_to_subinventory              := l_trohdr_val_rec.to_subinventory;
193     x_move_order_type_name         := l_trohdr_val_rec.move_order_type;
194 
195     --  Write to cache.
196     --  Set db_flag to False before writing to cache
197 
198     l_x_trohdr_rec.db_flag := FND_API.G_FALSE;
199 
200     Write_trohdr
201     (   p_trohdr_rec                  => l_x_trohdr_rec
202     );
203 
204     --  Set return status.
205 
206     x_return_status := FND_API.G_RET_STS_SUCCESS;
207 
208     --  Get message count and data
209 
210     FND_MSG_PUB.Count_And_Get
211     (   p_count                       => x_msg_count
212     ,   p_data                        => x_msg_data
213     );
214 
215 
216 EXCEPTION
217 
218     WHEN FND_API.G_EXC_ERROR THEN
219 
220         x_return_status := FND_API.G_RET_STS_ERROR;
221 
222         --  Get message count and data
223 
224         FND_MSG_PUB.Count_And_Get
225         (   p_count                       => x_msg_count
226         ,   p_data                        => x_msg_data
227         );
228 
229     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
230 
231         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
232 
233         --  Get message count and data
234 
235         FND_MSG_PUB.Count_And_Get
236         (   p_count                       => x_msg_count
237         ,   p_data                        => x_msg_data
238         );
239 
240     WHEN OTHERS THEN
241 
242         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
243 
244         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
245         THEN
246             FND_MSG_PUB.Add_Exc_Msg
247             (   G_PKG_NAME
248             ,   'Default_Attributes'
249             );
250         END IF;
251 
252         --  Get message count and data
253 
254         FND_MSG_PUB.Count_And_Get
255         (   p_count                       => x_msg_count
256         ,   p_data                        => x_msg_data
257         );
258 
259 END Default_Attributes;
260 
261 --  Procedure   :   Change_Attribute
262 --
263 
264 PROCEDURE Validate_Record
265 (   x_return_status                 OUT NOCOPY VARCHAR2
266 ,   x_msg_count                     OUT NOCOPY NUMBER
267 ,   x_msg_data                      OUT NOCOPY VARCHAR2
268 ,   p_attribute1                    IN  VARCHAR2
269 ,   p_attribute10                   IN  VARCHAR2
270 ,   p_attribute11                   IN  VARCHAR2
271 ,   p_attribute12                   IN  VARCHAR2
272 ,   p_attribute13                   IN  VARCHAR2
273 ,   p_attribute14                   IN  VARCHAR2
274 ,   p_attribute15                   IN  VARCHAR2
275 ,   p_attribute2                    IN  VARCHAR2
276 ,   p_attribute3                    IN  VARCHAR2
277 ,   p_attribute4                    IN  VARCHAR2
278 ,   p_attribute5                    IN  VARCHAR2
279 ,   p_attribute6                    IN  VARCHAR2
280 ,   p_attribute7                    IN  VARCHAR2
281 ,   p_attribute8                    IN  VARCHAR2
282 ,   p_attribute9                    IN  VARCHAR2
283 ,   p_attribute_category            IN  VARCHAR2
284 ,   p_date_required                 IN  DATE
285 ,   p_description                   IN  VARCHAR2
286 ,   p_from_subinventory_code        IN  VARCHAR2
287 ,   p_header_id                     IN  NUMBER
288 ,   p_header_status                 IN  NUMBER
289 ,   p_organization_id               IN  NUMBER
290 ,   p_request_number                IN  VARCHAR2
291 ,   p_status_date                   IN  DATE
292 ,   p_to_account_id                 IN  NUMBER
293 ,   p_to_subinventory_code          IN  VARCHAR2
294 ,   p_move_order_type               IN  NUMBER
295 ,   p_transaction_type_id	    IN  NUMBER
296 ,   p_ship_to_location_id           IN  NUMBER
297 ,   p_db_flag                       IN  VARCHAR2
298 )
299 IS
300 l_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
301 l_old_trohdr_rec              INV_Move_Order_PUB.Trohdr_Rec_Type;
302 l_trohdr_val_rec              INV_Move_Order_PUB.Trohdr_Val_Rec_Type;
303 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
304 l_return_status               VARCHAR2(1);
305 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
306 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
307 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
308 BEGIN
309 
310     --  Set control flags.
311 
312     l_control_rec.controlled_operation := TRUE;
313     l_control_rec.change_attributes    := TRUE;
314 
315     l_control_rec.default_attributes   := FALSE;
316     l_control_rec.validate_entity      := TRUE;
317     l_control_rec.write_to_DB          := FALSE;
318     l_control_rec.process              := FALSE;
319 
320     --  Instruct API to retain its caches
321 
322     l_control_rec.clear_api_cache      := FALSE;
323     l_control_rec.clear_api_requests   := FALSE;
324 
325     l_trohdr_rec.db_flag               := p_db_flag;
326     --  Read trohdr from cache
327 
328     IF FND_API.To_Boolean(l_trohdr_rec.db_flag) THEN
329     	l_trohdr_rec := Get_trohdr
330     	(   p_db_record                   => FALSE
331     	,   p_header_id                   => p_header_id
332     	);
333     End If;
334 
335     l_old_trohdr_rec               := l_trohdr_rec;
336 
337     l_trohdr_rec.date_required          := p_date_required;
338     l_trohdr_rec.description            := p_description;
339     l_trohdr_rec.from_subinventory_code := p_from_subinventory_code;
340     l_trohdr_rec.header_id              := p_header_id;
341     l_trohdr_rec.header_status          := p_header_status;
342     l_trohdr_rec.organization_id        := p_organization_id;
343     l_trohdr_rec.request_number         := p_request_number;
344     l_trohdr_rec.status_date            := p_status_date;
345     l_trohdr_rec.to_account_id          := p_to_account_id;
346     l_trohdr_rec.to_subinventory_code   := p_to_subinventory_code;
347     -- ssia move order enhancement changes
348     l_trohdr_rec.move_order_type        := p_move_order_type;
349     -- ssia end of chnages
350     l_trohdr_rec.transaction_type_id	:= p_transaction_type_id;
351     l_trohdr_rec.ship_to_location_id    := p_ship_to_location_id;
352     l_trohdr_rec.attribute1             := p_attribute1;
353     l_trohdr_rec.attribute10            := p_attribute10;
354     l_trohdr_rec.attribute11            := p_attribute11;
355     l_trohdr_rec.attribute12            := p_attribute12;
356     l_trohdr_rec.attribute13            := p_attribute13;
357     l_trohdr_rec.attribute14            := p_attribute14;
358     l_trohdr_rec.attribute15            := p_attribute15;
359     l_trohdr_rec.attribute2             := p_attribute2;
360     l_trohdr_rec.attribute3             := p_attribute3;
361     l_trohdr_rec.attribute4             := p_attribute4;
362     l_trohdr_rec.attribute5             := p_attribute5;
363     l_trohdr_rec.attribute6             := p_attribute6;
364     l_trohdr_rec.attribute7             := p_attribute7;
365     l_trohdr_rec.attribute8             := p_attribute8;
366     l_trohdr_rec.attribute9             := p_attribute9;
367     l_trohdr_rec.attribute_category     := p_attribute_category;
368 
369     --  Set Operation.
370 
371     IF FND_API.To_Boolean(l_trohdr_rec.db_flag) THEN
372         l_trohdr_rec.operation := INV_GLOBALS.G_OPR_UPDATE;
373     ELSE
374         l_trohdr_rec.operation := INV_GLOBALS.G_OPR_CREATE;
375     END IF;
376 
377     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
378 
379     INV_Transfer_Order_PVT.Process_Transfer_Order
380     (   p_api_version_number          => 1.0
381     ,   p_init_msg_list               => FND_API.G_TRUE
382     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
383     ,   x_return_status               => l_return_status
384     ,   x_msg_count                   => x_msg_count
385     ,   x_msg_data                    => x_msg_data
386     ,   p_control_rec                 => l_control_rec
387     ,   p_trohdr_rec                  => l_trohdr_rec
388     ,   p_old_trohdr_rec              => l_old_trohdr_rec
389     ,   x_trohdr_rec                  => l_x_trohdr_rec
390     ,   x_trolin_tbl                  => l_x_trolin_tbl
391     );
392 
393     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
394         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
395     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
396         RAISE FND_API.G_EXC_ERROR;
397     END IF;
398 
399 
400 /*
401     --  Init OUT NOCOPY parameters to missing.
402 
403     x_attribute1                   := FND_API.G_MISS_CHAR;
404     x_attribute10                  := FND_API.G_MISS_CHAR;
405     x_attribute11                  := FND_API.G_MISS_CHAR;
406     x_attribute12                  := FND_API.G_MISS_CHAR;
407     x_attribute13                  := FND_API.G_MISS_CHAR;
408     x_attribute14                  := FND_API.G_MISS_CHAR;
409     x_attribute15                  := FND_API.G_MISS_CHAR;
410     x_attribute2                   := FND_API.G_MISS_CHAR;
411     x_attribute3                   := FND_API.G_MISS_CHAR;
412     x_attribute4                   := FND_API.G_MISS_CHAR;
413     x_attribute5                   := FND_API.G_MISS_CHAR;
414     x_attribute6                   := FND_API.G_MISS_CHAR;
415     x_attribute7                   := FND_API.G_MISS_CHAR;
416     x_attribute8                   := FND_API.G_MISS_CHAR;
417     x_attribute9                   := FND_API.G_MISS_CHAR;
418     x_attribute_category           := FND_API.G_MISS_CHAR;
419     x_date_required                := FND_API.G_MISS_DATE;
420     x_description                  := FND_API.G_MISS_CHAR;
421     x_from_subinventory_code       := FND_API.G_MISS_CHAR;
422     x_header_id                    := FND_API.G_MISS_NUM;
423     x_header_status                := FND_API.G_MISS_NUM;
424     x_organization_id              := FND_API.G_MISS_NUM;
425     x_request_number               := FND_API.G_MISS_CHAR;
426     x_status_date                  := FND_API.G_MISS_DATE;
427     x_to_account_id                := FND_API.G_MISS_NUM;
428     x_to_subinventory_code         := FND_API.G_MISS_CHAR;
429     x_move_order_type	           := FND_API.G_MISS_NUM;
430     x_transaction_type_id	   := FND_API.G_MISS_NUM;
431     x_from_subinventory            := FND_API.G_MISS_CHAR;
432     x_header                       := FND_API.G_MISS_CHAR;
433     x_organization                 := FND_API.G_MISS_CHAR;
434     x_to_account                   := FND_API.G_MISS_CHAR;
435     x_to_subinventory              := FND_API.G_MISS_CHAR;
436     --ssia move order enhancement changes
437     x_move_order_type_name         := FND_API.G_MISS_CHAR;
438     -- ssia end of changes
439     x_ship_to_location_id          := FND_API.G_MISS_NUM;
440     --  Load display out parameters if any
441 
442     l_trohdr_val_rec := INV_Trohdr_Util.Get_Values
443     (   p_trohdr_rec                  => l_x_trohdr_rec
444     ,   p_old_trohdr_rec              => l_trohdr_rec
445     );
446 
447     --  Return changed attributes.
448 
449     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute1,
450                             l_trohdr_rec.attribute1)
451     THEN
452         x_attribute1 := l_x_trohdr_rec.attribute1;
453     END IF;
454 
455     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute10,
456                             l_trohdr_rec.attribute10)
457     THEN
458         x_attribute10 := l_x_trohdr_rec.attribute10;
459     END IF;
460 
461     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute11,
462                             l_trohdr_rec.attribute11)
463     THEN
464         x_attribute11 := l_x_trohdr_rec.attribute11;
465     END IF;
466 
467     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute12,
468                             l_trohdr_rec.attribute12)
469     THEN
470         x_attribute12 := l_x_trohdr_rec.attribute12;
471     END IF;
472 
473     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute13,
474                             l_trohdr_rec.attribute13)
475     THEN
476         x_attribute13 := l_x_trohdr_rec.attribute13;
477     END IF;
478 
479     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute14,
480                             l_trohdr_rec.attribute14)
481     THEN
482         x_attribute14 := l_x_trohdr_rec.attribute14;
483     END IF;
484 
485     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute15,
486                             l_trohdr_rec.attribute15)
487     THEN
488         x_attribute15 := l_x_trohdr_rec.attribute15;
489     END IF;
490 
491     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute2,
492                             l_trohdr_rec.attribute2)
493     THEN
494         x_attribute2 := l_x_trohdr_rec.attribute2;
495     END IF;
496 
497     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute3,
498                             l_trohdr_rec.attribute3)
499     THEN
500         x_attribute3 := l_x_trohdr_rec.attribute3;
501     END IF;
502 
503     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute4,
504                             l_trohdr_rec.attribute4)
505     THEN
506         x_attribute4 := l_x_trohdr_rec.attribute4;
507     END IF;
508 
509     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute5,
510                             l_trohdr_rec.attribute5)
511     THEN
512         x_attribute5 := l_x_trohdr_rec.attribute5;
513     END IF;
514 
515     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute6,
516                             l_trohdr_rec.attribute6)
517     THEN
518         x_attribute6 := l_x_trohdr_rec.attribute6;
519     END IF;
520 
521     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute7,
522                             l_trohdr_rec.attribute7)
523     THEN
524         x_attribute7 := l_x_trohdr_rec.attribute7;
525     END IF;
526 
527     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute8,
528                             l_trohdr_rec.attribute8)
529     THEN
530         x_attribute8 := l_x_trohdr_rec.attribute8;
531     END IF;
532 
533     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute9,
534                             l_trohdr_rec.attribute9)
535     THEN
536         x_attribute9 := l_x_trohdr_rec.attribute9;
537     END IF;
538 
539     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.attribute_category,
540                             l_trohdr_rec.attribute_category)
541     THEN
542         x_attribute_category := l_x_trohdr_rec.attribute_category;
543     END IF;
544 
545     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.date_required,
546                             l_trohdr_rec.date_required)
547     THEN
548         x_date_required := l_x_trohdr_rec.date_required;
549     END IF;
550 
551     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.description,
552                             l_trohdr_rec.description)
553     THEN
554         x_description := l_x_trohdr_rec.description;
555     END IF;
556 
557     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.from_subinventory_code,
558                             l_trohdr_rec.from_subinventory_code)
559     THEN
560         x_from_subinventory_code := l_x_trohdr_rec.from_subinventory_code;
561         x_from_subinventory := l_trohdr_val_rec.from_subinventory;
562     END IF;
563 
564     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.header_id,
565                             l_trohdr_rec.header_id)
566     THEN
567         x_header_id := l_x_trohdr_rec.header_id;
568         x_header := l_trohdr_val_rec.header;
569     END IF;
570 
571     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.header_status,
572                             l_trohdr_rec.header_status)
573     THEN
574         x_header_status := l_x_trohdr_rec.header_status;
575     END IF;
576 
577     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.organization_id,
578                             l_trohdr_rec.organization_id)
579     THEN
580         x_organization_id := l_x_trohdr_rec.organization_id;
581         x_organization := l_trohdr_val_rec.organization;
582     END IF;
583 
584     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.request_number,
585                             l_trohdr_rec.request_number)
586     THEN
587         x_request_number := l_x_trohdr_rec.request_number;
588     END IF;
589 
590     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.status_date,
591                             l_trohdr_rec.status_date)
592     THEN
593         x_status_date := l_x_trohdr_rec.status_date;
594     END IF;
595 
596     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.to_account_id,
597                             l_trohdr_rec.to_account_id)
598     THEN
599         x_to_account_id := l_x_trohdr_rec.to_account_id;
600         x_to_account := l_trohdr_val_rec.to_account;
601     END IF;
602 
603     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.to_subinventory_code,
604                             l_trohdr_rec.to_subinventory_code)
605     THEN
606         x_to_subinventory_code := l_x_trohdr_rec.to_subinventory_code;
607         x_to_subinventory := l_trohdr_val_rec.to_subinventory;
608     END IF;
609 
610     -- ssia mo enhancement changes
611     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.move_order_type,
612                             l_trohdr_rec.move_order_type)
613     THEN
614         x_move_order_type := l_x_trohdr_rec.move_order_type;
615         x_move_order_type_name := l_trohdr_val_rec.move_order_type;
616     END IF;
617     -- ssia end of changes
618 
619     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.transaction_type_id,
620                             l_trohdr_rec.transaction_type_id)
621     THEN
622         x_transaction_type_id := l_x_trohdr_rec.transaction_type_id;
623     END IF;
624 
625     IF NOT INV_GLOBALS.Equal(l_x_trohdr_rec.ship_to_location_id,
626                              l_trohdr_rec.ship_to_location_id)
627     THEN
628        x_ship_to_location_id  := l_x_trohdr_rec.ship_to_location_id;
629     END IF;
630 
631 */
632 
633     --  Write to cache.
634 
635     Write_trohdr
636     (   p_trohdr_rec                  => l_x_trohdr_rec
637     );
638 
639     --  Set return status.
640 
641     x_return_status := FND_API.G_RET_STS_SUCCESS;
642 
643     --  Get message count and data
644 
645     FND_MSG_PUB.Count_And_Get
646     (   p_count                       => x_msg_count
647     ,   p_data                        => x_msg_data
648     );
649 
650 
651 EXCEPTION
652 
653     WHEN FND_API.G_EXC_ERROR THEN
654 
655         x_return_status := FND_API.G_RET_STS_ERROR;
656 
657         --  Get message count and data
658 
659         FND_MSG_PUB.Count_And_Get
660         (   p_count                       => x_msg_count
661         ,   p_data                        => x_msg_data
662         );
663 
664     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
665 
666         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
667 
668         --  Get message count and data
669 
670         FND_MSG_PUB.Count_And_Get
671         (   p_count                       => x_msg_count
672         ,   p_data                        => x_msg_data
673         );
674 
675     WHEN OTHERS THEN
676 
677         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
678 
679         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
680         THEN
681             FND_MSG_PUB.Add_Exc_Msg
682             (   G_PKG_NAME
683             ,   'Change_Attribute'
684             );
685         END IF;
686 
687         --  Get message count and data
688 
689         FND_MSG_PUB.Count_And_Get
690         (   p_count                       => x_msg_count
691         ,   p_data                        => x_msg_data
692         );
693 
694 END Validate_Record;
695 
696 --  Procedure       Validate_And_Write
697 --
698 
699 PROCEDURE Validate_And_Write
700 (   x_return_status                 OUT NOCOPY VARCHAR2
701 ,   x_msg_count                     OUT NOCOPY NUMBER
702 ,   x_msg_data                      OUT NOCOPY VARCHAR2
703 ,   p_attribute1                    IN  VARCHAR2
704 ,   p_attribute10                   IN  VARCHAR2
705 ,   p_attribute11                   IN  VARCHAR2
706 ,   p_attribute12                   IN  VARCHAR2
707 ,   p_attribute13                   IN  VARCHAR2
708 ,   p_attribute14                   IN  VARCHAR2
709 ,   p_attribute15                   IN  VARCHAR2
710 ,   p_attribute2                    IN  VARCHAR2
711 ,   p_attribute3                    IN  VARCHAR2
712 ,   p_attribute4                    IN  VARCHAR2
713 ,   p_attribute5                    IN  VARCHAR2
714 ,   p_attribute6                    IN  VARCHAR2
715 ,   p_attribute7                    IN  VARCHAR2
716 ,   p_attribute8                    IN  VARCHAR2
717 ,   p_attribute9                    IN  VARCHAR2
718 ,   p_attribute_category            IN  VARCHAR2
719 ,   p_date_required                 IN  DATE
720 ,   p_description                   IN  VARCHAR2
721 ,   p_from_subinventory_code        IN  VARCHAR2
722 ,   p_header_id                     IN  NUMBER
723 ,   p_header_status                 IN  NUMBER
724 ,   p_organization_id               IN  NUMBER
725 ,   p_request_number                IN  VARCHAR2
726 ,   p_status_date                   IN  DATE
727 ,   p_to_account_id                 IN  NUMBER
728 ,   p_to_subinventory_code          IN  VARCHAR2
729 ,   p_move_order_type	            IN  NUMBER
730 ,   p_transaction_type_id	    IN  NUMBER
731 ,   p_ship_to_location_id           IN  NUMBER
732 ,   p_db_flag                       IN  VARCHAR2
733 ,   x_creation_date                 OUT NOCOPY DATE
734 ,   x_created_by                    OUT NOCOPY NUMBER
735 ,   x_last_update_date              OUT NOCOPY DATE
736 ,   x_last_updated_by               OUT NOCOPY NUMBER
737 ,   x_last_update_login             OUT NOCOPY NUMBER
738 )
739 IS
740 l_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
741 l_old_trohdr_rec              INV_Move_Order_PUB.Trohdr_Rec_Type;
742 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
743 l_return_status               VARCHAR2(1);
744 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
745 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
746 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
747 BEGIN
748 
749     --  Set control flags.
750 
751     l_control_rec.controlled_operation := TRUE;
752     l_control_rec.validate_entity      := TRUE;
753     l_control_rec.write_to_DB          := TRUE;
754 
755     l_control_rec.default_attributes   := FALSE;
756     l_control_rec.change_attributes    := FALSE;
757     l_control_rec.process              := FALSE;
758 
759     --  Instruct API to retain its caches
760 
761     l_control_rec.clear_api_cache      := FALSE;
762     l_control_rec.clear_api_requests   := FALSE;
763 
764     g_trohdr_rec.date_required          := p_date_required;
765     g_trohdr_rec.description            := p_description;
766     g_trohdr_rec.from_subinventory_code := p_from_subinventory_code;
767     g_trohdr_rec.header_id              := p_header_id;
768     g_trohdr_rec.header_status          := p_header_status;
769     g_trohdr_rec.organization_id        := p_organization_id;
770     g_trohdr_rec.request_number         := p_request_number;
771     g_trohdr_rec.status_date            := p_status_date;
772     g_trohdr_rec.to_account_id          := p_to_account_id;
773     g_trohdr_rec.to_subinventory_code   := p_to_subinventory_code;
774     g_trohdr_rec.move_order_type        := p_move_order_type; -- ssia mo enhancement changes
775     g_trohdr_rec.transaction_type_id    := p_transaction_type_id;
776     g_trohdr_rec.ship_to_location_id    := p_ship_to_location_id;
777     g_trohdr_rec.attribute1             := p_attribute1;
778     g_trohdr_rec.attribute10            := p_attribute10;
779     g_trohdr_rec.attribute11            := p_attribute11;
780     g_trohdr_rec.attribute12            := p_attribute12;
781     g_trohdr_rec.attribute13            := p_attribute13;
782     g_trohdr_rec.attribute14            := p_attribute14;
783     g_trohdr_rec.attribute15            := p_attribute15;
784     g_trohdr_rec.attribute2             := p_attribute2;
785     g_trohdr_rec.attribute3             := p_attribute3;
786     g_trohdr_rec.attribute4             := p_attribute4;
787     g_trohdr_rec.attribute5             := p_attribute5;
788     g_trohdr_rec.attribute6             := p_attribute6;
789     g_trohdr_rec.attribute7             := p_attribute7;
790     g_trohdr_rec.attribute8             := p_attribute8;
791     g_trohdr_rec.attribute9             := p_attribute9;
792     g_trohdr_rec.attribute_category     := p_attribute_category;
793     g_trohdr_rec.db_flag                := p_db_flag;
794 
795     --  Read trohdr from cache
796 
797     l_old_trohdr_rec := Get_trohdr
798     (   p_db_record                   => TRUE
799     ,   p_header_id                   => p_header_id
800     );
801 
802     l_trohdr_rec := Get_trohdr
803     (   p_db_record                   => FALSE
804     ,   p_header_id                   => p_header_id
805     );
806 
807     --  Set Operation.
808 
809     IF FND_API.To_Boolean(l_trohdr_rec.db_flag) THEN
810         l_trohdr_rec.operation := INV_GLOBALS.G_OPR_UPDATE;
811     ELSE
812         l_trohdr_rec.operation := INV_GLOBALS.G_OPR_CREATE;
813     END IF;
814 
815     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
816 
817     INV_Transfer_Order_PVT.Process_Transfer_Order
818     (   p_api_version_number          => 1.0
819     ,   p_init_msg_list               => FND_API.G_TRUE
820     ,   x_return_status               => l_return_status
821     ,   x_msg_count                   => x_msg_count
822     ,   x_msg_data                    => x_msg_data
823     ,   p_control_rec                 => l_control_rec
824     ,   p_trohdr_rec                  => l_trohdr_rec
825     ,   p_old_trohdr_rec              => l_old_trohdr_rec
826     ,   x_trohdr_rec                  => l_x_trohdr_rec
827     ,   x_trolin_tbl                  => l_x_trolin_tbl
828     );
829 
830     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
831         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
832     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
833         RAISE FND_API.G_EXC_ERROR;
834     END IF;
835 
836 
837     --  Load OUT parameters.
838 
839 
840     x_creation_date                := l_x_trohdr_rec.creation_date;
841     x_created_by                   := l_x_trohdr_rec.created_by;
842     x_last_update_date             := l_x_trohdr_rec.last_update_date;
843     x_last_updated_by              := l_x_trohdr_rec.last_updated_by;
844     x_last_update_login            := l_x_trohdr_rec.last_update_login;
845 
846     --  Clear trohdr record cache
847 
848     Clear_trohdr;
849 
850     --  Keep track of performed operations.
851 
852     l_old_trohdr_rec.operation := l_trohdr_rec.operation;
853 
854 
855     --  Set return status.
856 
857     x_return_status := FND_API.G_RET_STS_SUCCESS;
858 
859     --  Get message count and data
860 
861     FND_MSG_PUB.Count_And_Get
862     (   p_count                       => x_msg_count
863     ,   p_data                        => x_msg_data
864     );
865 
866 
867 EXCEPTION
868 
869     WHEN FND_API.G_EXC_ERROR THEN
870 
871         x_return_status := FND_API.G_RET_STS_ERROR;
872 
873         --  Get message count and data
874 
875         FND_MSG_PUB.Count_And_Get
876         (   p_count                       => x_msg_count
877         ,   p_data                        => x_msg_data
878         );
879 
880     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
881 
882         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
883 
884         --  Get message count and data
885 
886         FND_MSG_PUB.Count_And_Get
887         (   p_count                       => x_msg_count
888         ,   p_data                        => x_msg_data
889         );
890 
891     WHEN OTHERS THEN
892 
893         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
894 
895         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
896         THEN
897             FND_MSG_PUB.Add_Exc_Msg
898             (   G_PKG_NAME
899             ,   'Validate_And_Write'
900             );
901         END IF;
902 
903         --  Get message count and data
904 
905         FND_MSG_PUB.Count_And_Get
906         (   p_count                       => x_msg_count
907         ,   p_data                        => x_msg_data
908         );
909 
910 END Validate_And_Write;
911 
912 --  Procedure       Delete_Row
913 --
914 
915 PROCEDURE Delete_Row
916 (   x_return_status                 OUT NOCOPY VARCHAR2
917 ,   x_msg_count                     OUT NOCOPY NUMBER
918 ,   x_msg_data                      OUT NOCOPY VARCHAR2
919 ,   p_header_id                     IN  NUMBER
920 )
921 IS
922 l_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
923 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
924 l_return_status               VARCHAR2(1);
925 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
926 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
927 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
928 BEGIN
929 
930     --  Set control flags.
931 
932     l_control_rec.controlled_operation := TRUE;
933     l_control_rec.validate_entity      := TRUE;
934     l_control_rec.write_to_DB          := TRUE;
935 
936     l_control_rec.default_attributes   := FALSE;
937     l_control_rec.change_attributes    := FALSE;
938     l_control_rec.process              := FALSE;
939 
940     --  Instruct API to retain its caches
941 
942     l_control_rec.clear_api_cache      := FALSE;
943     l_control_rec.clear_api_requests   := FALSE;
944 
945     --  Read DB record from cache
946 
947     l_trohdr_rec := Get_trohdr
948     (   p_db_record                   => TRUE
949     ,   p_header_id                   => p_header_id
950     );
951 
952     --  Set Operation.
953 
954     l_trohdr_rec.operation := INV_GLOBALS.G_OPR_DELETE;
955 
956     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
957 
958     INV_Transfer_Order_PVT.Process_Transfer_Order
959     (   p_api_version_number          => 1.0
960     ,   p_init_msg_list               => FND_API.G_TRUE
961     ,   x_return_status               => l_return_status
962     ,   x_msg_count                   => x_msg_count
963     ,   x_msg_data                    => x_msg_data
964     ,   p_control_rec                 => l_control_rec
965     ,   p_trohdr_rec                  => l_trohdr_rec
966     ,   x_trohdr_rec                  => l_x_trohdr_rec
967     ,   x_trolin_tbl                  => l_x_trolin_tbl
968     );
969 
970     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
971         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
972     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
973         RAISE FND_API.G_EXC_ERROR;
974     END IF;
975 
976 
977     --  Clear trohdr record cache
978 
979     Clear_trohdr;
980 
981     --  Set return status.
982 
983     x_return_status := FND_API.G_RET_STS_SUCCESS;
984 
985     --  Get message count and data
986 
987     FND_MSG_PUB.Count_And_Get
988     (   p_count                       => x_msg_count
989     ,   p_data                        => x_msg_data
990     );
991 
992 
993 EXCEPTION
994 
995     WHEN FND_API.G_EXC_ERROR THEN
996 
997         x_return_status := FND_API.G_RET_STS_ERROR;
998 
999         --  Get message count and data
1000 
1001         FND_MSG_PUB.Count_And_Get
1002         (   p_count                       => x_msg_count
1003         ,   p_data                        => x_msg_data
1004         );
1005 
1006     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1007 
1008         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1009 
1010         --  Get message count and data
1011 
1012         FND_MSG_PUB.Count_And_Get
1013         (   p_count                       => x_msg_count
1014         ,   p_data                        => x_msg_data
1015         );
1016 
1017     WHEN OTHERS THEN
1018 
1019         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1020 
1021         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1022         THEN
1023             FND_MSG_PUB.Add_Exc_Msg
1024             (   G_PKG_NAME
1025             ,   'Delete_Row'
1026             );
1027         END IF;
1028 
1029         --  Get message count and data
1030 
1031         FND_MSG_PUB.Count_And_Get
1032         (   p_count                       => x_msg_count
1033         ,   p_data                        => x_msg_data
1034         );
1035 
1036 END Delete_Row;
1037 
1038 --  Procedure       Process_Entity
1039 --
1040 
1041 PROCEDURE Process_Entity
1042 (   x_return_status                 OUT NOCOPY VARCHAR2
1043 ,   x_msg_count                     OUT NOCOPY NUMBER
1044 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1045 )
1046 IS
1047 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
1048 l_return_status               VARCHAR2(1);
1049 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1050 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1051 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1052 BEGIN
1053 
1054     --  Set control flags.
1055 
1056     l_control_rec.controlled_operation := TRUE;
1057     l_control_rec.process              := TRUE;
1058     l_control_rec.process_entity       := INV_GLOBALS.G_ENTITY_TROHDR;
1059 
1060     l_control_rec.default_attributes   := FALSE;
1061     l_control_rec.change_attributes    := FALSE;
1062     l_control_rec.validate_entity      := FALSE;
1063     l_control_rec.write_to_DB          := FALSE;
1064 
1065     --  Instruct API to clear its request table
1066 
1067     l_control_rec.clear_api_cache      := FALSE;
1068     l_control_rec.clear_api_requests   := FALSE;
1069 
1070     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
1071 
1072     INV_Transfer_Order_PVT.Process_Transfer_Order
1073     (   p_api_version_number          => 1.0
1074     ,   p_init_msg_list               => FND_API.G_TRUE
1075     ,   x_return_status               => l_return_status
1076     ,   x_msg_count                   => x_msg_count
1077     ,   x_msg_data                    => x_msg_data
1078     ,   p_control_rec                 => l_control_rec
1079     ,   x_trohdr_rec                  => l_x_trohdr_rec
1080     ,   x_trolin_tbl                  => l_x_trolin_tbl
1081     );
1082 
1083     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1084         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1085     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1086         RAISE FND_API.G_EXC_ERROR;
1087     END IF;
1088 
1089 
1090     --  Set return status.
1091 
1092     x_return_status := FND_API.G_RET_STS_SUCCESS;
1093 
1094     --  Get message count and data
1095 
1096     FND_MSG_PUB.Count_And_Get
1097     (   p_count                       => x_msg_count
1098     ,   p_data                        => x_msg_data
1099     );
1100 
1101 
1102 EXCEPTION
1103 
1104     WHEN FND_API.G_EXC_ERROR THEN
1105 
1106         x_return_status := FND_API.G_RET_STS_ERROR;
1107 
1108         --  Get message count and data
1109 
1110         FND_MSG_PUB.Count_And_Get
1111         (   p_count                       => x_msg_count
1112         ,   p_data                        => x_msg_data
1113         );
1114 
1115     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1116 
1117         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1118 
1119         --  Get message count and data
1120 
1121         FND_MSG_PUB.Count_And_Get
1122         (   p_count                       => x_msg_count
1123         ,   p_data                        => x_msg_data
1124         );
1125 
1126     WHEN OTHERS THEN
1127 
1128         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1129 
1130         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1131         THEN
1132             FND_MSG_PUB.Add_Exc_Msg
1133             (   G_PKG_NAME
1134             ,   'Process_Entity'
1135             );
1136         END IF;
1137 
1138         --  Get message count and data
1139 
1140         FND_MSG_PUB.Count_And_Get
1141         (   p_count                       => x_msg_count
1142         ,   p_data                        => x_msg_data
1143         );
1144 
1145 END Process_Entity;
1146 
1147 --  Procedure       Process_Object
1148 --
1149 
1150 PROCEDURE Process_Object
1151 (   x_return_status                 OUT NOCOPY VARCHAR2
1152 ,   x_msg_count                     OUT NOCOPY NUMBER
1153 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1154 )
1155 IS
1156 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
1157 l_return_status               VARCHAR2(1);
1158 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1159 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1160 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1161 BEGIN
1162 
1163     --  Set control flags.
1164 
1165     l_control_rec.controlled_operation := TRUE;
1166     l_control_rec.process              := TRUE;
1167     l_control_rec.process_entity       := INV_GLOBALS.G_ENTITY_ALL;
1168 
1169     l_control_rec.default_attributes   := FALSE;
1170     l_control_rec.change_attributes    := FALSE;
1171     l_control_rec.validate_entity      := FALSE;
1172     l_control_rec.write_to_DB          := FALSE;
1173 
1174     --  Instruct API to clear its request table
1175 
1176     l_control_rec.clear_api_cache      := FALSE;
1177     l_control_rec.clear_api_requests   := TRUE;
1178 
1179     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
1180 
1181     INV_Transfer_Order_PVT.Process_Transfer_Order
1182     (   p_api_version_number          => 1.0
1183     ,   p_init_msg_list               => FND_API.G_TRUE
1184     ,   x_return_status               => l_return_status
1185     ,   x_msg_count                   => x_msg_count
1186     ,   x_msg_data                    => x_msg_data
1187     ,   p_control_rec                 => l_control_rec
1188     ,   x_trohdr_rec                  => l_x_trohdr_rec
1189     ,   x_trolin_tbl                  => l_x_trolin_tbl
1190     );
1191 
1192     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1193         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1194     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1195         RAISE FND_API.G_EXC_ERROR;
1196     END IF;
1197 
1198 
1199     --  Set return status.
1200 
1201     x_return_status := FND_API.G_RET_STS_SUCCESS;
1202 
1203     --  Get message count and data
1204 
1205     FND_MSG_PUB.Count_And_Get
1206     (   p_count                       => x_msg_count
1207     ,   p_data                        => x_msg_data
1208     );
1209 
1210 
1211 EXCEPTION
1212 
1213     WHEN FND_API.G_EXC_ERROR THEN
1214 
1215         x_return_status := FND_API.G_RET_STS_ERROR;
1216 
1217         --  Get message count and data
1218 
1219         FND_MSG_PUB.Count_And_Get
1220         (   p_count                       => x_msg_count
1221         ,   p_data                        => x_msg_data
1222         );
1223 
1224     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1225 
1226         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1227 
1228         --  Get message count and data
1229 
1230         FND_MSG_PUB.Count_And_Get
1231         (   p_count                       => x_msg_count
1232         ,   p_data                        => x_msg_data
1233         );
1234 
1235     WHEN OTHERS THEN
1236 
1237         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1238 
1239         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1240         THEN
1241             FND_MSG_PUB.Add_Exc_Msg
1242             (   G_PKG_NAME
1243             ,   'Process_Object'
1244             );
1245         END IF;
1246 
1247         --  Get message count and data
1248 
1249         FND_MSG_PUB.Count_And_Get
1250         (   p_count                       => x_msg_count
1251         ,   p_data                        => x_msg_data
1252         );
1253 
1254 END Process_Object;
1255 
1256 --  Procedure       lock_Row
1257 --
1258 
1259 PROCEDURE Lock_Row
1260 (   x_return_status                 OUT NOCOPY VARCHAR2
1261 ,   x_msg_count                     OUT NOCOPY NUMBER
1262 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1263 ,   p_attribute1                    IN  VARCHAR2
1264 ,   p_attribute10                   IN  VARCHAR2
1265 ,   p_attribute11                   IN  VARCHAR2
1266 ,   p_attribute12                   IN  VARCHAR2
1267 ,   p_attribute13                   IN  VARCHAR2
1268 ,   p_attribute14                   IN  VARCHAR2
1269 ,   p_attribute15                   IN  VARCHAR2
1270 ,   p_attribute2                    IN  VARCHAR2
1271 ,   p_attribute3                    IN  VARCHAR2
1272 ,   p_attribute4                    IN  VARCHAR2
1273 ,   p_attribute5                    IN  VARCHAR2
1274 ,   p_attribute6                    IN  VARCHAR2
1275 ,   p_attribute7                    IN  VARCHAR2
1276 ,   p_attribute8                    IN  VARCHAR2
1277 ,   p_attribute9                    IN  VARCHAR2
1278 ,   p_attribute_category            IN  VARCHAR2
1279 ,   p_created_by                    IN  NUMBER
1280 ,   p_creation_date                 IN  DATE
1281 ,   p_date_required                 IN  DATE
1282 ,   p_description                   IN  VARCHAR2
1283 ,   p_from_subinventory_code        IN  VARCHAR2
1284 ,   p_header_id                     IN  NUMBER
1285 ,   p_header_status                 IN  NUMBER
1286 ,   p_last_updated_by               IN  NUMBER
1287 ,   p_last_update_date              IN  DATE
1288 ,   p_last_update_login             IN  NUMBER
1289 ,   p_organization_id               IN  NUMBER
1290 ,   p_program_application_id        IN  NUMBER
1291 ,   p_program_id                    IN  NUMBER
1292 ,   p_program_update_date           IN  DATE
1293 ,   p_request_id                    IN  NUMBER
1294 ,   p_request_number                IN  VARCHAR2
1295 ,   p_status_date                   IN  DATE
1296 ,   p_to_account_id                 IN  NUMBER
1297 ,   p_to_subinventory_code          IN  VARCHAR2
1298 ,   p_move_order_type               IN  NUMBER
1299 ,   p_transaction_type_id	    IN  NUMBER
1300 ,   p_ship_to_location_id           IN  NUMBER
1301 )
1302 IS
1303 l_return_status               VARCHAR2(1);
1304 l_trohdr_rec                  INV_Move_Order_PUB.Trohdr_Rec_Type;
1305 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1306 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1307 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1308 BEGIN
1309 
1310     --  Load trohdr record
1311 
1312     l_trohdr_rec.attribute1        := p_attribute1;
1313     l_trohdr_rec.attribute10       := p_attribute10;
1314     l_trohdr_rec.attribute11       := p_attribute11;
1315     l_trohdr_rec.attribute12       := p_attribute12;
1316     l_trohdr_rec.attribute13       := p_attribute13;
1317     l_trohdr_rec.attribute14       := p_attribute14;
1318     l_trohdr_rec.attribute15       := p_attribute15;
1319     l_trohdr_rec.attribute2        := p_attribute2;
1320     l_trohdr_rec.attribute3        := p_attribute3;
1321     l_trohdr_rec.attribute4        := p_attribute4;
1322     l_trohdr_rec.attribute5        := p_attribute5;
1323     l_trohdr_rec.attribute6        := p_attribute6;
1324     l_trohdr_rec.attribute7        := p_attribute7;
1325     l_trohdr_rec.attribute8        := p_attribute8;
1326     l_trohdr_rec.attribute9        := p_attribute9;
1327     l_trohdr_rec.attribute_category := p_attribute_category;
1328     l_trohdr_rec.created_by        := p_created_by;
1329     l_trohdr_rec.creation_date     := p_creation_date;
1330     l_trohdr_rec.date_required     := p_date_required;
1331     l_trohdr_rec.description       := p_description;
1332     l_trohdr_rec.from_subinventory_code := p_from_subinventory_code;
1333     l_trohdr_rec.header_id         := p_header_id;
1334     l_trohdr_rec.header_status     := p_header_status;
1335     l_trohdr_rec.last_updated_by   := p_last_updated_by;
1336     l_trohdr_rec.last_update_date  := p_last_update_date;
1337     l_trohdr_rec.last_update_login := p_last_update_login;
1338     l_trohdr_rec.organization_id   := p_organization_id;
1339     l_trohdr_rec.program_application_id := p_program_application_id;
1340     l_trohdr_rec.program_id        := p_program_id;
1341     l_trohdr_rec.program_update_date := p_program_update_date;
1342     l_trohdr_rec.request_id        := p_request_id;
1343     l_trohdr_rec.request_number    := p_request_number;
1344     l_trohdr_rec.status_date       := p_status_date;
1345     l_trohdr_rec.to_account_id     := p_to_account_id;
1346     l_trohdr_rec.to_subinventory_code := p_to_subinventory_code;
1347     l_trohdr_rec.move_order_type   := p_move_order_type; -- ssia mo enhancement changes
1348     l_trohdr_rec.transaction_type_id := p_transaction_type_id;
1349     l_trohdr_rec.ship_to_location_id := p_ship_to_location_id;
1350 
1351     --  Call INV_Transfer_Order_PVT.Lock_Transfer_Order
1352 
1353     INV_Transfer_Order_PVT.Lock_Transfer_Order
1354     (   p_api_version_number          => 1.0
1355     ,   p_init_msg_list               => FND_API.G_TRUE
1356     ,   x_return_status               => l_return_status
1357     ,   x_msg_count                   => x_msg_count
1358     ,   x_msg_data                    => x_msg_data
1359     ,   p_trohdr_rec                  => l_trohdr_rec
1360     ,   x_trohdr_rec                  => l_x_trohdr_rec
1361     ,   x_trolin_tbl                  => l_x_trolin_tbl
1362     );
1363 
1364     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1365 
1366         --  Set DB flag and write record to cache.
1367 
1368         l_x_trohdr_rec.db_flag := FND_API.G_TRUE;
1369 
1370         Write_trohdr
1371         (   p_trohdr_rec                  => l_x_trohdr_rec
1372         ,   p_db_record                   => TRUE
1373         );
1374 
1375     END IF;
1376 
1377     --  Set return status.
1378 
1379     x_return_status := l_return_status;
1380 
1381     --  Get message count and data
1382 
1383     FND_MSG_PUB.Count_And_Get
1384     (   p_count                       => x_msg_count
1385     ,   p_data                        => x_msg_data
1386     );
1387 
1388 
1389 EXCEPTION
1390 
1391     WHEN OTHERS THEN
1392 
1393         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1394         THEN
1395             FND_MSG_PUB.Add_Exc_Msg
1396             (   G_PKG_NAME
1397             ,   'Lock_Row'
1398             );
1399         END IF;
1400 
1401         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1402 
1403         --  Get message count and data
1404 
1405         FND_MSG_PUB.Count_And_Get
1406         (   p_count                       => x_msg_count
1407         ,   p_data                        => x_msg_data
1408         );
1409 
1410 
1411 
1412 END Lock_Row;
1413 
1414 --  Procedures maintaining trohdr record cache.
1415 
1416 PROCEDURE Write_trohdr
1417 (   p_trohdr_rec                    IN  INV_Move_Order_PUB.Trohdr_Rec_Type
1418 ,   p_db_record                     IN  BOOLEAN := FALSE
1419 )
1420 IS
1421 BEGIN
1422 
1423     g_trohdr_rec := p_trohdr_rec;
1424 
1425     IF p_db_record THEN
1426 
1427         g_db_trohdr_rec := p_trohdr_rec;
1428 
1429     END IF;
1430 
1431 END Write_Trohdr;
1432 
1433 FUNCTION Get_trohdr
1434 (   p_db_record                     IN  BOOLEAN := FALSE
1435 ,   p_header_id                     IN  NUMBER
1436 )
1437 RETURN INV_Move_Order_PUB.Trohdr_Rec_Type
1438 IS
1439 BEGIN
1440 
1441     IF  p_header_id <> g_trohdr_rec.header_id
1442     THEN
1443 
1444         --  Query row from DB
1445 
1446         g_trohdr_rec := INV_Trohdr_Util.Query_Row
1447         (   p_header_id                   => p_header_id
1448         );
1449 
1450         g_trohdr_rec.db_flag           := FND_API.G_TRUE;
1451 
1452         --  Load DB record
1453 
1454         g_db_trohdr_rec                := g_trohdr_rec;
1455 
1456     END IF;
1457 
1458     IF p_db_record THEN
1459 
1460         RETURN g_db_trohdr_rec;
1461 
1462     ELSE
1463 
1464         RETURN g_trohdr_rec;
1465 
1466     END IF;
1467 
1468 END Get_Trohdr;
1469 
1470 PROCEDURE Clear_Trohdr
1471 IS
1472 BEGIN
1473 
1474     g_trohdr_rec                   := INV_Move_Order_PUB.G_MISS_TROHDR_REC;
1475     g_db_trohdr_rec                := INV_Move_Order_PUB.G_MISS_TROHDR_REC;
1476 
1477 END Clear_Trohdr;
1478 
1479 END INV_TO_Form_Trohdr;