[Home] [Help]
PACKAGE BODY: APPS.MRP_WFS_FORM_FLOW_SCHEDULE
Source
1 PACKAGE BODY MRP_WFS_Form_Flow_Schedule AS
2 /* $Header: MRPFSCNB.pls 120.2.12000000.2 2007/07/26 01:43:53 ksuleman ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'MRP_WFS_Form_Flow_Schedule';
7
8 -- Global variables holding cached record.
9
10 g_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
11 g_db_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14 /*
15 Enhancement : 2665434
16 Description : Changed the usage of the record type from old record type
17 (MRP_FLow_Schedule_PUB.Flow_Schedule_Rec_Type) to new record type
18 (MRP_FLow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type)
19 */
20
21 PROCEDURE Write_flow_schedule
22 ( p_flow_schedule_rec IN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
23 , p_db_record IN BOOLEAN := NULL
24 );
25
26 /*
27 Enhancement : 2665434
28 Description : Changed the usage of the record type from old record type
29 (MRP_FLow_Schedule_PUB.Flow_Schedule_Rec_Type) to new record type
30 (MRP_FLow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type)
31 */
32 FUNCTION Get_flow_schedule
33 ( p_db_record IN BOOLEAN := NULL
34 , p_wip_entity_id IN NUMBER
35 )
36 RETURN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
37
38 /*Enhancement : 2665434
39 Changed the usage of the record type from old record type
40 (MRP_FLow_Schedule_PUB.Flow_Schedule_Rec_Type) to new record type
41 (MRP_FLow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type)
42 Using the logic to initialize g_flow_schedule_rec and g_db_flow_schedule_rec to NULL instead
43 of G_MISS_REC.
44 */
45 PROCEDURE Clear_flow_schedule;
46
47 /*Enhancement : 2665434
48 New Function created to store the value in the cache correctly.
49 */
50 FUNCTION Convert_Null_To_Miss
51 ( p_flow_schedule_rec IN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
52 ) RETURN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type ;
53
54
55 -- Global variable holding performed operations.
56
57 g_opr__tbl MRP_Flow_Schedule_PUB.Flow_Schedule_Tbl_Type;
58
59 -- Procedure : Default_Attributes
60 --
61
62 PROCEDURE Default_Attributes
63 ( x_return_status OUT NOCOPY VARCHAR2
64 , x_msg_count OUT NOCOPY NUMBER
65 , x_msg_data OUT NOCOPY VARCHAR2
66 , x_alternate_bom_designator OUT NOCOPY VARCHAR2
67 , x_alternate_routing_desig OUT NOCOPY VARCHAR2
68 , x_attribute1 OUT NOCOPY VARCHAR2
69 , x_attribute10 OUT NOCOPY VARCHAR2
70 , x_attribute11 OUT NOCOPY VARCHAR2
71 , x_attribute12 OUT NOCOPY VARCHAR2
72 , x_attribute13 OUT NOCOPY VARCHAR2
73 , x_attribute14 OUT NOCOPY VARCHAR2
74 , x_attribute15 OUT NOCOPY VARCHAR2
75 , x_attribute2 OUT NOCOPY VARCHAR2
76 , x_attribute3 OUT NOCOPY VARCHAR2
77 , x_attribute4 OUT NOCOPY VARCHAR2
78 , x_attribute5 OUT NOCOPY VARCHAR2
79 , x_attribute6 OUT NOCOPY VARCHAR2
80 , x_attribute7 OUT NOCOPY VARCHAR2
81 , x_attribute8 OUT NOCOPY VARCHAR2
82 , x_attribute9 OUT NOCOPY VARCHAR2
83 , x_attribute_category OUT NOCOPY VARCHAR2
84 , x_bom_revision OUT NOCOPY VARCHAR2
85 , x_bom_revision_date OUT NOCOPY DATE
86 , x_build_sequence OUT NOCOPY NUMBER
87 , x_class_code OUT NOCOPY VARCHAR2
88 , x_completion_locator_id OUT NOCOPY NUMBER
89 , x_completion_subinventory OUT NOCOPY VARCHAR2
90 , x_date_closed OUT NOCOPY DATE
91 , x_demand_class OUT NOCOPY VARCHAR2
92 , x_demand_source_delivery OUT NOCOPY VARCHAR2
93 , x_demand_source_header_id OUT NOCOPY NUMBER
94 , x_demand_source_line OUT NOCOPY VARCHAR2
95 , x_demand_source_type OUT NOCOPY NUMBER
96 , x_line_id OUT NOCOPY NUMBER
97 , x_material_account OUT NOCOPY NUMBER
98 , x_material_overhead_account OUT NOCOPY NUMBER
99 , x_material_variance_account OUT NOCOPY NUMBER
100 , x_mps_net_quantity OUT NOCOPY NUMBER
101 , x_mps_scheduled_comp_date OUT NOCOPY DATE
102 , x_organization_id OUT NOCOPY NUMBER
103 , x_outside_processing_acct OUT NOCOPY NUMBER
104 , x_outside_proc_var_acct OUT NOCOPY NUMBER
105 , x_overhead_account OUT NOCOPY NUMBER
106 , x_overhead_variance_account OUT NOCOPY NUMBER
107 , x_planned_quantity OUT NOCOPY NUMBER
108 , x_primary_item_id OUT NOCOPY NUMBER
109 , x_project_id OUT NOCOPY NUMBER
110 , x_quantity_completed OUT NOCOPY NUMBER
111 , x_resource_account OUT NOCOPY NUMBER
112 , x_resource_variance_account OUT NOCOPY NUMBER
113 , x_routing_revision OUT NOCOPY VARCHAR2
114 , x_routing_revision_date OUT NOCOPY DATE
115 , x_scheduled_completion_date OUT NOCOPY DATE
116 , x_scheduled_flag OUT NOCOPY NUMBER
117 , x_scheduled_start_date OUT NOCOPY DATE
118 , x_schedule_group_id OUT NOCOPY NUMBER
119 , x_schedule_number OUT NOCOPY VARCHAR2
120 , x_status OUT NOCOPY NUMBER
121 , x_std_cost_adjustment_acct OUT NOCOPY NUMBER
122 , x_task_id OUT NOCOPY NUMBER
123 , x_wip_entity_id OUT NOCOPY NUMBER
124 , x_completion_locator OUT NOCOPY VARCHAR2
125 , x_line OUT NOCOPY VARCHAR2
126 , x_organization OUT NOCOPY VARCHAR2
127 , x_primary_item OUT NOCOPY VARCHAR2
128 , x_project OUT NOCOPY VARCHAR2
129 , x_schedule_group OUT NOCOPY VARCHAR2
130 , x_task OUT NOCOPY VARCHAR2
131 , x_wip_entity OUT NOCOPY VARCHAR2
132 , x_end_item_unit_number OUT NOCOPY VARCHAR2
133 , x_quantity_scrapped OUT NOCOPY NUMBER
134 )
135 IS
136 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
137 l_flow_schedule_val_rec MRP_Flow_Schedule_PVT.Flow_Schedule_Val_PVT_Rec_Type;
138 l_control_rec MRP_GLOBALS.Control_Rec_Type;
139 l_return_status VARCHAR2(1);
140 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
141 l_p_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
142 BEGIN
143
144 -- Set control flags.
145
146 l_control_rec.controlled_operation := TRUE;
147 l_control_rec.default_attributes := TRUE;
148
149 l_control_rec.change_attributes := FALSE;
150 l_control_rec.validate_entity := FALSE;
151 l_control_rec.write_to_DB := FALSE;
152 l_control_rec.process := FALSE;
153
154 -- Instruct API to retain its caches
155
156 l_control_rec.clear_api_cache := FALSE;
157 l_control_rec.clear_api_requests := FALSE;
158
159 -- Load IN parameters if any exist
160
161
162 -- Defaulting of flex values is currently done by the form.
163 -- Set flex attributes to NULL in order to avoid defaulting them.
164 -- Take this out so the default values in the form works.
165 /*
166 l_flow_schedule_rec.attribute1 := 'NULL';
167 l_flow_schedule_rec.attribute10 := 'NULL';
168 l_flow_schedule_rec.attribute11 := 'NULL';
169 l_flow_schedule_rec.attribute12 := 'NULL';
170 l_flow_schedule_rec.attribute13 := 'NULL';
171 l_flow_schedule_rec.attribute14 := 'NULL';
172 l_flow_schedule_rec.attribute15 := 'NULL';
173 l_flow_schedule_rec.attribute2 := 'NULL';
174 l_flow_schedule_rec.attribute3 := 'NULL';
175 l_flow_schedule_rec.attribute4 := 'NULL';
176 l_flow_schedule_rec.attribute5 := 'NULL';
177 l_flow_schedule_rec.attribute6 := 'NULL';
178 l_flow_schedule_rec.attribute7 := 'NULL';
179 l_flow_schedule_rec.attribute8 := 'NULL';
180 l_flow_schedule_rec.attribute9 := 'NULL';
181 l_flow_schedule_rec.attribute_category := 'NULL';
182 */
183
184 -- Schedule number must be set by the form so that the
185 -- sequence can be maintained
186 l_flow_schedule_rec.schedule_number := NULL;
187
188 -- Set Operation to Create
189
190 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_CREATE;
191
192 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
193
194 MRP_Flow_Schedule_PVT.Process_flow_schedule
195 ( p_api_version_number => 1.0
196 , p_init_msg_list => FND_API.G_TRUE
197 , x_return_status => l_return_status
198 , x_msg_count => x_msg_count
199 , x_msg_data => x_msg_data
200 , p_control_rec => l_control_rec
201 , p_flow_schedule_rec => l_flow_schedule_rec
202 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
203 , x_flow_schedule_rec => l_x_flow_schedule_rec
204 );
205
206 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
207 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
208 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
209 RAISE FND_API.G_EXC_ERROR;
210 END IF;
211
212
213 -- Load OUT parameters.
214
215 x_alternate_bom_designator := l_x_flow_schedule_rec.alternate_bom_designator;
216 x_alternate_routing_desig := l_x_flow_schedule_rec.alternate_routing_desig;
217 x_attribute1 := l_x_flow_schedule_rec.attribute1;
218 x_attribute10 := l_x_flow_schedule_rec.attribute10;
219 x_attribute11 := l_x_flow_schedule_rec.attribute11;
220 x_attribute12 := l_x_flow_schedule_rec.attribute12;
221 x_attribute13 := l_x_flow_schedule_rec.attribute13;
222 x_attribute14 := l_x_flow_schedule_rec.attribute14;
223 x_attribute15 := l_x_flow_schedule_rec.attribute15;
224 x_attribute2 := l_x_flow_schedule_rec.attribute2;
225 x_attribute3 := l_x_flow_schedule_rec.attribute3;
226 x_attribute4 := l_x_flow_schedule_rec.attribute4;
227 x_attribute5 := l_x_flow_schedule_rec.attribute5;
228 x_attribute6 := l_x_flow_schedule_rec.attribute6;
229 x_attribute7 := l_x_flow_schedule_rec.attribute7;
230 x_attribute8 := l_x_flow_schedule_rec.attribute8;
231 x_attribute9 := l_x_flow_schedule_rec.attribute9;
232 x_attribute_category := l_x_flow_schedule_rec.attribute_category;
233 x_bom_revision := l_x_flow_schedule_rec.bom_revision;
234 x_bom_revision_date := l_x_flow_schedule_rec.bom_revision_date;
235 x_build_sequence := l_x_flow_schedule_rec.build_sequence;
236 x_class_code := l_x_flow_schedule_rec.class_code;
237 x_completion_locator_id := l_x_flow_schedule_rec.completion_locator_id;
238 x_completion_subinventory := l_x_flow_schedule_rec.completion_subinventory;
239 x_date_closed := l_x_flow_schedule_rec.date_closed;
240 x_demand_class := l_x_flow_schedule_rec.demand_class;
241 x_demand_source_delivery := l_x_flow_schedule_rec.demand_source_delivery;
242 x_demand_source_header_id := l_x_flow_schedule_rec.demand_source_header_id;
243 x_demand_source_line := l_x_flow_schedule_rec.demand_source_line;
244 x_demand_source_type := l_x_flow_schedule_rec.demand_source_type;
245 x_line_id := l_x_flow_schedule_rec.line_id;
246 x_material_account := l_x_flow_schedule_rec.material_account;
247 x_material_overhead_account := l_x_flow_schedule_rec.material_overhead_account;
248 x_material_variance_account := l_x_flow_schedule_rec.material_variance_account;
249 x_mps_net_quantity := l_x_flow_schedule_rec.mps_net_quantity;
250 x_mps_scheduled_comp_date := l_x_flow_schedule_rec.mps_scheduled_comp_date;
251 x_organization_id := l_x_flow_schedule_rec.organization_id;
252 x_outside_processing_acct := l_x_flow_schedule_rec.outside_processing_acct;
253 x_outside_proc_var_acct := l_x_flow_schedule_rec.outside_proc_var_acct;
254 x_overhead_account := l_x_flow_schedule_rec.overhead_account;
255 x_overhead_variance_account := l_x_flow_schedule_rec.overhead_variance_account;
256 x_planned_quantity := l_x_flow_schedule_rec.planned_quantity;
257 x_primary_item_id := l_x_flow_schedule_rec.primary_item_id;
258 x_project_id := l_x_flow_schedule_rec.project_id;
259 x_quantity_completed := l_x_flow_schedule_rec.quantity_completed;
260 x_resource_account := l_x_flow_schedule_rec.resource_account;
261 x_resource_variance_account := l_x_flow_schedule_rec.resource_variance_account;
262 x_routing_revision := l_x_flow_schedule_rec.routing_revision;
263 x_routing_revision_date := l_x_flow_schedule_rec.routing_revision_date;
264 x_scheduled_completion_date := l_x_flow_schedule_rec.scheduled_completion_date;
265 x_scheduled_flag := l_x_flow_schedule_rec.scheduled_flag;
266 x_scheduled_start_date := l_x_flow_schedule_rec.scheduled_start_date;
267 x_schedule_group_id := l_x_flow_schedule_rec.schedule_group_id;
268 x_schedule_number := l_x_flow_schedule_rec.schedule_number;
269 x_status := l_x_flow_schedule_rec.status;
270 x_std_cost_adjustment_acct := l_x_flow_schedule_rec.std_cost_adjustment_acct;
271 x_task_id := l_x_flow_schedule_rec.task_id;
272 x_wip_entity_id := l_x_flow_schedule_rec.wip_entity_id;
273 x_end_item_unit_number := l_x_flow_schedule_rec.end_item_unit_number;
274 x_quantity_scrapped := l_x_flow_schedule_rec.quantity_scrapped;
275 -- Load display out parameters if any
276
277 l_flow_schedule_val_rec := MRP_Flow_Schedule_Util.Get_Values
278 ( p_flow_schedule_rec => l_x_flow_schedule_rec
279 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
280 );
281
282 x_completion_locator := l_flow_schedule_val_rec.completion_locator;
283 x_line := l_flow_schedule_val_rec.line;
284 x_organization := l_flow_schedule_val_rec.organization;
285 x_primary_item := l_flow_schedule_val_rec.primary_item;
286 x_project := l_flow_schedule_val_rec.project;
287 x_schedule_group := l_flow_schedule_val_rec.schedule_group;
288 x_task := l_flow_schedule_val_rec.task;
289 x_wip_entity := l_flow_schedule_val_rec.wip_entity;
290
291 -- Write to cache.
292 -- Set db_flag to False before writing to cache
293
294 l_x_flow_schedule_rec.db_flag := FND_API.G_FALSE;
295
296 Write_flow_schedule
297 ( p_flow_schedule_rec => l_x_flow_schedule_rec
298 );
299
300 -- Set return status.
301
302 x_return_status := FND_API.G_RET_STS_SUCCESS;
303
304 -- Get message count and data
305
306 FND_MSG_PUB.Count_And_Get
307 ( p_count => x_msg_count
308 , p_data => x_msg_data
309 );
310
311
312 EXCEPTION
313
314 WHEN FND_API.G_EXC_ERROR THEN
315
316 x_return_status := FND_API.G_RET_STS_ERROR;
317
318 -- Get message count and data
319
320 FND_MSG_PUB.Count_And_Get
321 ( p_count => x_msg_count
322 , p_data => x_msg_data
323 );
324
325 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
326
327 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
328
329 -- Get message count and data
330
331 FND_MSG_PUB.Count_And_Get
332 ( p_count => x_msg_count
333 , p_data => x_msg_data
334 );
335
336 WHEN OTHERS THEN
337
338 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
339
340 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
341 THEN
342 FND_MSG_PUB.Add_Exc_Msg
343 ( G_PKG_NAME
344 , 'Default_Attributes'
345 );
346 END IF;
347
348 -- Get message count and data
349
350 FND_MSG_PUB.Count_And_Get
351 ( p_count => x_msg_count
352 , p_data => x_msg_data
353 );
354
355 END Default_Attributes;
356
357 -- Procedure : Change_Attribute
358 --
359
360 PROCEDURE Change_Attribute
361 ( x_return_status OUT NOCOPY VARCHAR2
362 , x_msg_count OUT NOCOPY NUMBER
363 , x_msg_data OUT NOCOPY VARCHAR2
364 , p_wip_entity_id IN NUMBER
365 , p_attr_id IN NUMBER
366 , p_attr_value IN VARCHAR2
367 , p_attribute1 IN VARCHAR2
368 , p_attribute10 IN VARCHAR2
369 , p_attribute11 IN VARCHAR2
370 , p_attribute12 IN VARCHAR2
371 , p_attribute13 IN VARCHAR2
372 , p_attribute14 IN VARCHAR2
373 , p_attribute15 IN VARCHAR2
374 , p_attribute2 IN VARCHAR2
375 , p_attribute3 IN VARCHAR2
376 , p_attribute4 IN VARCHAR2
377 , p_attribute5 IN VARCHAR2
378 , p_attribute6 IN VARCHAR2
379 , p_attribute7 IN VARCHAR2
380 , p_attribute8 IN VARCHAR2
381 , p_attribute9 IN VARCHAR2
382 , p_attribute_category IN VARCHAR2
383 , x_alternate_bom_designator OUT NOCOPY VARCHAR2
384 , x_alternate_routing_desig OUT NOCOPY VARCHAR2
385 , x_attribute1 OUT NOCOPY VARCHAR2
386 , x_attribute10 OUT NOCOPY VARCHAR2
387 , x_attribute11 OUT NOCOPY VARCHAR2
388 , x_attribute12 OUT NOCOPY VARCHAR2
389 , x_attribute13 OUT NOCOPY VARCHAR2
390 , x_attribute14 OUT NOCOPY VARCHAR2
391 , x_attribute15 OUT NOCOPY VARCHAR2
392 , x_attribute2 OUT NOCOPY VARCHAR2
393 , x_attribute3 OUT NOCOPY VARCHAR2
394 , x_attribute4 OUT NOCOPY VARCHAR2
395 , x_attribute5 OUT NOCOPY VARCHAR2
396 , x_attribute6 OUT NOCOPY VARCHAR2
397 , x_attribute7 OUT NOCOPY VARCHAR2
398 , x_attribute8 OUT NOCOPY VARCHAR2
399 , x_attribute9 OUT NOCOPY VARCHAR2
400 , x_attribute_category OUT NOCOPY VARCHAR2
401 , x_bom_revision OUT NOCOPY VARCHAR2
402 , x_bom_revision_date OUT NOCOPY DATE
403 , x_build_sequence OUT NOCOPY NUMBER
404 , x_class_code OUT NOCOPY VARCHAR2
405 , x_completion_locator_id OUT NOCOPY NUMBER
406 , x_completion_subinventory OUT NOCOPY VARCHAR2
407 , x_date_closed OUT NOCOPY DATE
408 , x_demand_class OUT NOCOPY VARCHAR2
409 , x_demand_source_delivery OUT NOCOPY VARCHAR2
410 , x_demand_source_header_id OUT NOCOPY NUMBER
411 , x_demand_source_line OUT NOCOPY VARCHAR2
412 , x_demand_source_type OUT NOCOPY NUMBER
413 , x_line_id OUT NOCOPY NUMBER
414 , x_material_account OUT NOCOPY NUMBER
415 , x_material_overhead_account OUT NOCOPY NUMBER
416 , x_material_variance_account OUT NOCOPY NUMBER
417 , x_mps_net_quantity OUT NOCOPY NUMBER
418 , x_mps_scheduled_comp_date OUT NOCOPY DATE
419 , x_organization_id OUT NOCOPY NUMBER
420 , x_outside_processing_acct OUT NOCOPY NUMBER
421 , x_outside_proc_var_acct OUT NOCOPY NUMBER
422 , x_overhead_account OUT NOCOPY NUMBER
423 , x_overhead_variance_account OUT NOCOPY NUMBER
424 , x_planned_quantity OUT NOCOPY NUMBER
425 , x_primary_item_id OUT NOCOPY NUMBER
426 , x_project_id OUT NOCOPY NUMBER
427 , x_quantity_completed OUT NOCOPY NUMBER
428 , x_request_id OUT NOCOPY NUMBER
429 , x_resource_account OUT NOCOPY NUMBER
430 , x_resource_variance_account OUT NOCOPY NUMBER
431 , x_routing_revision OUT NOCOPY VARCHAR2
432 , x_routing_revision_date OUT NOCOPY DATE
433 , x_scheduled_completion_date OUT NOCOPY DATE
434 , x_scheduled_flag OUT NOCOPY NUMBER
435 , x_scheduled_start_date OUT NOCOPY DATE
436 , x_schedule_group_id OUT NOCOPY NUMBER
437 , x_schedule_number OUT NOCOPY VARCHAR2
438 , x_status OUT NOCOPY NUMBER
439 , x_std_cost_adjustment_acct OUT NOCOPY NUMBER
440 , x_task_id OUT NOCOPY NUMBER
441 , x_wip_entity_id OUT NOCOPY NUMBER
442 , x_completion_locator OUT NOCOPY VARCHAR2
443 , x_line OUT NOCOPY VARCHAR2
444 , x_organization OUT NOCOPY VARCHAR2
445 , x_primary_item OUT NOCOPY VARCHAR2
446 , x_project OUT NOCOPY VARCHAR2
447 , x_schedule_group OUT NOCOPY VARCHAR2
448 , x_task OUT NOCOPY VARCHAR2
449 , x_wip_entity OUT NOCOPY VARCHAR2
450 , x_end_item_unit_number OUT NOCOPY VARCHAR2
451 , x_quantity_scrapped OUT NOCOPY NUMBER
452 )
453 IS
454 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
455 l_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
456 l_flow_schedule_val_rec MRP_Flow_Schedule_PVT.Flow_Schedule_Val_PVT_Rec_Type;
457 l_control_rec MRP_GLOBALS.Control_Rec_Type;
458 l_return_status VARCHAR2(1);
459 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
460 temp varchar2(1000);
461 BEGIN
462
463 -- Set control flags.
464
465 l_control_rec.controlled_operation := TRUE;
466 l_control_rec.change_attributes := TRUE;
467
468 l_control_rec.default_attributes := FALSE;
469 l_control_rec.validate_entity := FALSE;
470 l_control_rec.write_to_DB := FALSE;
471 l_control_rec.process := FALSE;
472
473 -- Instruct API to retain its caches
474
475 l_control_rec.clear_api_cache := FALSE;
476 l_control_rec.clear_api_requests := FALSE;
477
478 -- Read flow_schedule from cache
479
480 l_flow_schedule_rec := Get_flow_schedule
481 ( p_db_record => FALSE
482 , p_wip_entity_id => p_wip_entity_id
483 );
484
485 l_old_flow_schedule_rec := l_flow_schedule_rec;
486
487 IF p_attr_id = MRP_Flow_Schedule_Util.G_ALTERNATE_BOM_DESIGNATOR THEN
488 l_flow_schedule_rec.alternate_bom_designator := p_attr_value;
489 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_ALTERNATE_ROUTING_DESIG THEN
490 l_flow_schedule_rec.alternate_routing_desig := p_attr_value;
491 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_BOM_REVISION THEN
492 l_flow_schedule_rec.bom_revision := p_attr_value;
493 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_BOM_REVISION_DATE THEN
494 l_flow_schedule_rec.bom_revision_date := fnd_date.canonical_to_date(p_attr_value);
495 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_BUILD_SEQUENCE THEN
496 l_flow_schedule_rec.build_sequence := TO_NUMBER(p_attr_value);
497 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_CLASS THEN
498 l_flow_schedule_rec.class_code := p_attr_value;
499 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_COMPLETION_LOCATOR THEN
500 l_flow_schedule_rec.completion_locator_id := TO_NUMBER(p_attr_value);
501 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_COMPLETION_SUBINVENTORY THEN
502 l_flow_schedule_rec.completion_subinventory := p_attr_value;
503 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DATE_CLOSED THEN
504 l_flow_schedule_rec.date_closed := fnd_date.canonical_to_date(p_attr_value);
505 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DEMAND_CLASS THEN
506 l_flow_schedule_rec.demand_class := p_attr_value;
507 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DEMAND_SOURCE_DELIVERY THEN
508 l_flow_schedule_rec.demand_source_delivery := p_attr_value;
509 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DEMAND_SOURCE_HEADER THEN
510 l_flow_schedule_rec.demand_source_header_id := TO_NUMBER(p_attr_value);
511 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DEMAND_SOURCE_LINE THEN
512 l_flow_schedule_rec.demand_source_line := p_attr_value;
513 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_DEMAND_SOURCE_TYPE THEN
514 l_flow_schedule_rec.demand_source_type := TO_NUMBER(p_attr_value);
515 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_LINE THEN
516 l_flow_schedule_rec.line_id := TO_NUMBER(p_attr_value);
517 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_MATERIAL_ACCOUNT THEN
518 l_flow_schedule_rec.material_account := TO_NUMBER(p_attr_value);
519 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_MATERIAL_OVERHEAD_ACCOUNT THEN
520 l_flow_schedule_rec.material_overhead_account := TO_NUMBER(p_attr_value);
521 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_MATERIAL_VARIANCE_ACCOUNT THEN
522 l_flow_schedule_rec.material_variance_account := TO_NUMBER(p_attr_value);
523 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_MPS_NET_QUANTITY THEN
524 l_flow_schedule_rec.mps_net_quantity := TO_NUMBER(p_attr_value);
525 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_MPS_SCHEDULED_COMP_DATE THEN
526 l_flow_schedule_rec.mps_scheduled_comp_date := fnd_date.canonical_to_date(p_attr_value);
527 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_ORGANIZATION THEN
528 l_flow_schedule_rec.organization_id := TO_NUMBER(p_attr_value);
529 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_OUTSIDE_PROCESSING_ACCT THEN
530 l_flow_schedule_rec.outside_processing_acct := TO_NUMBER(p_attr_value);
531 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_OUTSIDE_PROC_VAR_ACCT THEN
532 l_flow_schedule_rec.outside_proc_var_acct := TO_NUMBER(p_attr_value);
533 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_OVERHEAD_ACCOUNT THEN
534 l_flow_schedule_rec.overhead_account := TO_NUMBER(p_attr_value);
535 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_OVERHEAD_VARIANCE_ACCOUNT THEN
536 l_flow_schedule_rec.overhead_variance_account := TO_NUMBER(p_attr_value);
537 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_PLANNED_QUANTITY THEN
538 l_flow_schedule_rec.planned_quantity := TO_NUMBER(p_attr_value);
539 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_PRIMARY_ITEM THEN
540 l_flow_schedule_rec.primary_item_id := TO_NUMBER(p_attr_value);
541 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_PROJECT THEN
542 l_flow_schedule_rec.project_id := TO_NUMBER(p_attr_value);
543 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_QUANTITY_COMPLETED THEN
544 l_flow_schedule_rec.quantity_completed := TO_NUMBER(p_attr_value);
545 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_REQUEST THEN
546 l_flow_schedule_rec.request_id := TO_NUMBER(p_attr_value);
547 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_RESOURCE_ACCOUNT THEN
548 l_flow_schedule_rec.resource_account := TO_NUMBER(p_attr_value);
549 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_RESOURCE_VARIANCE_ACCOUNT THEN
550 l_flow_schedule_rec.resource_variance_account := TO_NUMBER(p_attr_value);
551 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_ROUTING_REVISION THEN
552 l_flow_schedule_rec.routing_revision := p_attr_value;
553 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_ROUTING_REVISION_DATE THEN
554 l_flow_schedule_rec.routing_revision_date := fnd_date.canonical_to_date(p_attr_value);
555 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_SCHEDULED_COMPLETION_DATE THEN
556 l_flow_schedule_rec.scheduled_completion_date := fnd_date.canonical_to_date(p_attr_value);
557 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_SCHEDULED THEN
558 l_flow_schedule_rec.scheduled_flag := TO_NUMBER(p_attr_value);
559 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_SCHEDULED_START_DATE THEN
560 l_flow_schedule_rec.scheduled_start_date := fnd_date.canonical_to_date(p_attr_value);
561 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_SCHEDULE_GROUP THEN
562 l_flow_schedule_rec.schedule_group_id := TO_NUMBER(p_attr_value);
563 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_SCHEDULE_NUMBER THEN
564 l_flow_schedule_rec.schedule_number := p_attr_value;
565 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_STATUS THEN
566 l_flow_schedule_rec.status := TO_NUMBER(p_attr_value);
567 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_STD_COST_ADJUSTMENT_ACCT THEN
568 l_flow_schedule_rec.std_cost_adjustment_acct := TO_NUMBER(p_attr_value);
569 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_TASK THEN
570 l_flow_schedule_rec.task_id := TO_NUMBER(p_attr_value);
571 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_WIP_ENTITY THEN
572 l_flow_schedule_rec.wip_entity_id := TO_NUMBER(p_attr_value);
573 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_END_ITEM_UNIT_NUMBER THEN
574 l_flow_schedule_rec.end_item_unit_number:= p_attr_value;
575 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_QUANTITY_SCRAPPED THEN
576 l_flow_schedule_rec.quantity_scrapped:= TO_NUMBER(p_attr_value);
577 ELSIF p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE1
578 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE10
579 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE11
580 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE12
581 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE13
582 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE14
583 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE15
584 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE2
585 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE3
586 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE4
587 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE5
588 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE6
589 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE7
590 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE8
591 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE9
592 OR p_attr_id = MRP_Flow_Schedule_Util.G_ATTRIBUTE_CATEGORY
593 THEN
594
595 l_flow_schedule_rec.attribute1 := p_attribute1;
596 l_flow_schedule_rec.attribute10 := p_attribute10;
597 l_flow_schedule_rec.attribute11 := p_attribute11;
598 l_flow_schedule_rec.attribute12 := p_attribute12;
599 l_flow_schedule_rec.attribute13 := p_attribute13;
600 l_flow_schedule_rec.attribute14 := p_attribute14;
601 l_flow_schedule_rec.attribute15 := p_attribute15;
602 l_flow_schedule_rec.attribute2 := p_attribute2;
603 l_flow_schedule_rec.attribute3 := p_attribute3;
604 l_flow_schedule_rec.attribute4 := p_attribute4;
605 l_flow_schedule_rec.attribute5 := p_attribute5;
606 l_flow_schedule_rec.attribute6 := p_attribute6;
607 l_flow_schedule_rec.attribute7 := p_attribute7;
608 l_flow_schedule_rec.attribute8 := p_attribute8;
609 l_flow_schedule_rec.attribute9 := p_attribute9;
610 l_flow_schedule_rec.attribute_category := p_attribute_category;
611
612 ELSE
613
614 -- Unexpected error, unrecognized attribute
615
616 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
617 THEN
618 FND_MSG_PUB.Add_Exc_Msg
619 ( G_PKG_NAME
620 , 'Change_Attribute'
621 , 'Unrecognized attribute'
622 );
623 END IF;
624
625 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
626
627 END IF;
628
629 -- Set Operation.
630
631 IF FND_API.To_Boolean(l_flow_schedule_rec.db_flag) THEN
632 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_UPDATE;
633 ELSE
634 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_CREATE;
635 END IF;
636
637 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
638
639 MRP_Flow_Schedule_PVT.Process_flow_schedule
640 ( p_api_version_number => 1.0
641 , p_init_msg_list => FND_API.G_TRUE
642 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
643 , x_return_status => l_return_status
644 , x_msg_count => x_msg_count
645 , x_msg_data => x_msg_data
646 , p_control_rec => l_control_rec
647 , p_flow_schedule_rec => l_flow_schedule_rec
648 , p_old_flow_schedule_rec => l_old_flow_schedule_rec
649 , x_flow_schedule_rec => l_x_flow_schedule_rec
650 );
651
652 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
653 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
654 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
655 RAISE FND_API.G_EXC_ERROR;
656 END IF;
657
658
659 -- Init OUT parameters to missing.
660
661 x_alternate_bom_designator := NULL;
662 x_alternate_routing_desig := NULL;
663 x_attribute1 := NULL;
664 x_attribute10 := NULL;
665 x_attribute11 := NULL;
666 x_attribute12 := NULL;
667 x_attribute13 := NULL;
668 x_attribute14 := NULL;
669 x_attribute15 := NULL;
670 x_attribute2 := NULL;
671 x_attribute3 := NULL;
672 x_attribute4 := NULL;
673 x_attribute5 := NULL;
674 x_attribute6 := NULL;
675 x_attribute7 := NULL;
676 x_attribute8 := NULL;
677 x_attribute9 := NULL;
678 x_attribute_category := NULL;
679 x_bom_revision := NULL;
680 x_bom_revision_date := NULL;
681 x_build_sequence := NULL;
682 x_class_code := NULL;
683 x_completion_locator_id := NULL;
684 x_completion_subinventory := NULL;
685 x_date_closed := NULL;
686 x_demand_class := NULL;
687 x_demand_source_delivery := NULL;
688 x_demand_source_header_id := NULL;
689 x_demand_source_line := NULL;
690 x_demand_source_type := NULL;
691 x_line_id := NULL;
692 x_material_account := NULL;
693 x_material_overhead_account := NULL;
694 x_material_variance_account := NULL;
695 x_mps_net_quantity := NULL;
696 x_mps_scheduled_comp_date := NULL;
697 x_organization_id := NULL;
698 x_outside_processing_acct := NULL;
699 x_outside_proc_var_acct := NULL;
700 x_overhead_account := NULL;
701 x_overhead_variance_account := NULL;
702 x_planned_quantity := NULL;
703 x_primary_item_id := NULL;
704 x_project_id := NULL;
705 x_quantity_completed := NULL;
706 x_request_id := NULL;
707 x_resource_account := NULL;
708 x_resource_variance_account := NULL;
709 x_routing_revision := NULL;
710 x_routing_revision_date := NULL;
711 x_scheduled_completion_date := NULL;
712 x_scheduled_flag := NULL;
713 x_scheduled_start_date := NULL;
714 x_schedule_group_id := NULL;
715 x_schedule_number := NULL;
716 x_status := NULL;
717 x_std_cost_adjustment_acct := NULL;
718 x_task_id := NULL;
719 x_wip_entity_id := NULL;
720 x_completion_locator := NULL;
721 x_line := NULL;
722 x_organization := NULL;
723 x_primary_item := NULL;
724 x_project := NULL;
725 x_schedule_group := NULL;
726 x_task := NULL;
727 x_wip_entity := NULL;
728 x_end_item_unit_number := NULL;
729 x_quantity_scrapped := NULL;
730
731 -- Load display out parameters if any
732
733 l_flow_schedule_val_rec := MRP_Flow_Schedule_Util.Get_Values
734 ( p_flow_schedule_rec => l_x_flow_schedule_rec
735 , p_old_flow_schedule_rec => l_flow_schedule_rec
736 );
737
738 -- Return changed attributes.
739
740 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.alternate_bom_designator,
741 l_flow_schedule_rec.alternate_bom_designator)
742 THEN
743 x_alternate_bom_designator := l_x_flow_schedule_rec.alternate_bom_designator;
744 END IF;
745
746 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.alternate_routing_desig,
747 l_flow_schedule_rec.alternate_routing_desig)
748 THEN
749 x_alternate_routing_desig := l_x_flow_schedule_rec.alternate_routing_desig;
750 END IF;
751
752 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute1,
753 l_flow_schedule_rec.attribute1)
754 THEN
755 x_attribute1 := l_x_flow_schedule_rec.attribute1;
756 END IF;
757
758 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute10,
759 l_flow_schedule_rec.attribute10)
760 THEN
761 x_attribute10 := l_x_flow_schedule_rec.attribute10;
762 END IF;
763
764 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute11,
765 l_flow_schedule_rec.attribute11)
766 THEN
767 x_attribute11 := l_x_flow_schedule_rec.attribute11;
768 END IF;
769
770 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute12,
771 l_flow_schedule_rec.attribute12)
772 THEN
773 x_attribute12 := l_x_flow_schedule_rec.attribute12;
774 END IF;
775
776 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute13,
777 l_flow_schedule_rec.attribute13)
778 THEN
779 x_attribute13 := l_x_flow_schedule_rec.attribute13;
780 END IF;
781
782 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute14,
783 l_flow_schedule_rec.attribute14)
784 THEN
785 x_attribute14 := l_x_flow_schedule_rec.attribute14;
786 END IF;
787
788 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute15,
789 l_flow_schedule_rec.attribute15)
790 THEN
791 x_attribute15 := l_x_flow_schedule_rec.attribute15;
792 END IF;
793
794 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute2,
795 l_flow_schedule_rec.attribute2)
796 THEN
797 x_attribute2 := l_x_flow_schedule_rec.attribute2;
798 END IF;
799
800 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute3,
801 l_flow_schedule_rec.attribute3)
802 THEN
803 x_attribute3 := l_x_flow_schedule_rec.attribute3;
804 END IF;
805
806 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute4,
807 l_flow_schedule_rec.attribute4)
808 THEN
809 x_attribute4 := l_x_flow_schedule_rec.attribute4;
810 END IF;
811
812 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute5,
813 l_flow_schedule_rec.attribute5)
814 THEN
815 x_attribute5 := l_x_flow_schedule_rec.attribute5;
816 END IF;
817
818 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute6,
819 l_flow_schedule_rec.attribute6)
820 THEN
821 x_attribute6 := l_x_flow_schedule_rec.attribute6;
822 END IF;
823
824 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute7,
825 l_flow_schedule_rec.attribute7)
826 THEN
827 x_attribute7 := l_x_flow_schedule_rec.attribute7;
828 END IF;
829
830 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute8,
831 l_flow_schedule_rec.attribute8)
832 THEN
833 x_attribute8 := l_x_flow_schedule_rec.attribute8;
834 END IF;
835
836 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute9,
837 l_flow_schedule_rec.attribute9)
838 THEN
839 x_attribute9 := l_x_flow_schedule_rec.attribute9;
840 END IF;
841
842 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.attribute_category,
843 l_flow_schedule_rec.attribute_category)
844 THEN
845 x_attribute_category := l_x_flow_schedule_rec.attribute_category;
846 END IF;
847
848 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.bom_revision,
849 l_flow_schedule_rec.bom_revision)
850 THEN
851 x_bom_revision := l_x_flow_schedule_rec.bom_revision;
852 END IF;
853
854 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.bom_revision_date,
855 l_flow_schedule_rec.bom_revision_date)
856 THEN
857 x_bom_revision_date := l_x_flow_schedule_rec.bom_revision_date;
858 END IF;
859
860 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.build_sequence,
861 l_flow_schedule_rec.build_sequence)
862 THEN
863 x_build_sequence := l_x_flow_schedule_rec.build_sequence;
864 END IF;
865
866 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.class_code,
867 l_flow_schedule_rec.class_code)
868 THEN
869 x_class_code := l_x_flow_schedule_rec.class_code;
870 END IF;
871
872 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.completion_locator_id,
873 l_flow_schedule_rec.completion_locator_id)
874 THEN
875 x_completion_locator_id := l_x_flow_schedule_rec.completion_locator_id;
876 x_completion_locator := l_flow_schedule_val_rec.completion_locator;
877 END IF;
878
879 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.completion_subinventory,
880 l_flow_schedule_rec.completion_subinventory)
881 THEN
882 x_completion_subinventory := l_x_flow_schedule_rec.completion_subinventory;
883 END IF;
884
885 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.date_closed,
886 l_flow_schedule_rec.date_closed)
887 THEN
888 x_date_closed := l_x_flow_schedule_rec.date_closed;
889 END IF;
890
891 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.demand_class,
892 l_flow_schedule_rec.demand_class)
893 THEN
894 x_demand_class := l_x_flow_schedule_rec.demand_class;
895 END IF;
896
897 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.demand_source_delivery,
898 l_flow_schedule_rec.demand_source_delivery)
899 THEN
900 x_demand_source_delivery := l_x_flow_schedule_rec.demand_source_delivery;
901 END IF;
902
903 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.demand_source_header_id,
904 l_flow_schedule_rec.demand_source_header_id)
905 THEN
906 x_demand_source_header_id := l_x_flow_schedule_rec.demand_source_header_id;
907 END IF;
908
909 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.demand_source_line,
910 l_flow_schedule_rec.demand_source_line)
911 THEN
912 x_demand_source_line := l_x_flow_schedule_rec.demand_source_line;
913 END IF;
914
915 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.demand_source_type,
916 l_flow_schedule_rec.demand_source_type)
917 THEN
918 x_demand_source_type := l_x_flow_schedule_rec.demand_source_type;
919 END IF;
920
921 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.line_id,
922 l_flow_schedule_rec.line_id)
923 THEN
924 x_line_id := l_x_flow_schedule_rec.line_id;
925 x_line := l_flow_schedule_val_rec.line;
926 END IF;
927
928 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.material_account,
929 l_flow_schedule_rec.material_account)
930 THEN
931 x_material_account := l_x_flow_schedule_rec.material_account;
932 END IF;
933
934 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.material_overhead_account,
935 l_flow_schedule_rec.material_overhead_account)
936 THEN
937 x_material_overhead_account := l_x_flow_schedule_rec.material_overhead_account;
938 END IF;
939
940 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.material_variance_account,
941 l_flow_schedule_rec.material_variance_account)
942 THEN
943 x_material_variance_account := l_x_flow_schedule_rec.material_variance_account;
944 END IF;
945
946 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.mps_net_quantity,
947 l_flow_schedule_rec.mps_net_quantity)
948 THEN
949 x_mps_net_quantity := l_x_flow_schedule_rec.mps_net_quantity;
950 END IF;
951
952 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.mps_scheduled_comp_date,
953 l_flow_schedule_rec.mps_scheduled_comp_date)
954 THEN
955 x_mps_scheduled_comp_date := l_x_flow_schedule_rec.mps_scheduled_comp_date;
956 END IF;
957
958 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.organization_id,
959 l_flow_schedule_rec.organization_id)
960 THEN
961 x_organization_id := l_x_flow_schedule_rec.organization_id;
962 x_organization := l_flow_schedule_val_rec.organization;
963 END IF;
964
965 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.outside_processing_acct,
966 l_flow_schedule_rec.outside_processing_acct)
967 THEN
968 x_outside_processing_acct := l_x_flow_schedule_rec.outside_processing_acct;
969 END IF;
970
971 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.outside_proc_var_acct,
972 l_flow_schedule_rec.outside_proc_var_acct)
973 THEN
974 x_outside_proc_var_acct := l_x_flow_schedule_rec.outside_proc_var_acct;
975 END IF;
976
977 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.overhead_account,
978 l_flow_schedule_rec.overhead_account)
979 THEN
980 x_overhead_account := l_x_flow_schedule_rec.overhead_account;
981 END IF;
982
983 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.overhead_variance_account,
984 l_flow_schedule_rec.overhead_variance_account)
985 THEN
986 x_overhead_variance_account := l_x_flow_schedule_rec.overhead_variance_account;
987 END IF;
988
989 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.planned_quantity,
990 l_flow_schedule_rec.planned_quantity)
991 THEN
992 x_planned_quantity := l_x_flow_schedule_rec.planned_quantity;
993 END IF;
994
995 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.primary_item_id,
996 l_flow_schedule_rec.primary_item_id)
997 THEN
998 x_primary_item_id := l_x_flow_schedule_rec.primary_item_id;
999 x_primary_item := l_flow_schedule_val_rec.primary_item;
1000 END IF;
1001
1002 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.project_id,
1003 l_flow_schedule_rec.project_id)
1004 THEN
1005 x_project_id := l_x_flow_schedule_rec.project_id;
1006 x_project := l_flow_schedule_val_rec.project;
1007 END IF;
1008
1009 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.quantity_completed,
1010 l_flow_schedule_rec.quantity_completed)
1011 THEN
1012 x_quantity_completed := l_x_flow_schedule_rec.quantity_completed;
1013 END IF;
1014
1015 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.request_id,
1016 l_flow_schedule_rec.request_id)
1017 THEN
1018 x_request_id := l_x_flow_schedule_rec.request_id;
1019 END IF;
1020
1021 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.resource_account,
1022 l_flow_schedule_rec.resource_account)
1023 THEN
1024 x_resource_account := l_x_flow_schedule_rec.resource_account;
1025 END IF;
1026
1027 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.resource_variance_account,
1028 l_flow_schedule_rec.resource_variance_account)
1029 THEN
1030 x_resource_variance_account := l_x_flow_schedule_rec.resource_variance_account;
1031 END IF;
1032
1033 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.routing_revision,
1034 l_flow_schedule_rec.routing_revision)
1035 THEN
1036 x_routing_revision := l_x_flow_schedule_rec.routing_revision;
1037 END IF;
1038
1039 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.routing_revision_date,
1040 l_flow_schedule_rec.routing_revision_date)
1041 THEN
1042 x_routing_revision_date := l_x_flow_schedule_rec.routing_revision_date;
1043 END IF;
1044
1045 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.scheduled_completion_date,
1046 l_flow_schedule_rec.scheduled_completion_date)
1047 THEN
1048 x_scheduled_completion_date := l_x_flow_schedule_rec.scheduled_completion_date;
1049 END IF;
1050
1051 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.scheduled_flag,
1052 l_flow_schedule_rec.scheduled_flag)
1053 THEN
1054 x_scheduled_flag := l_x_flow_schedule_rec.scheduled_flag;
1055 END IF;
1056
1057 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.scheduled_start_date,
1058 l_flow_schedule_rec.scheduled_start_date)
1059 THEN
1060 x_scheduled_start_date := l_x_flow_schedule_rec.scheduled_start_date;
1061 END IF;
1062
1063 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.schedule_group_id,
1064 l_flow_schedule_rec.schedule_group_id)
1065 THEN
1066 x_schedule_group_id := l_x_flow_schedule_rec.schedule_group_id;
1067 x_schedule_group := l_flow_schedule_val_rec.schedule_group;
1068 END IF;
1069
1070 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.schedule_number,
1071 l_flow_schedule_rec.schedule_number)
1072 THEN
1073 x_schedule_number := l_x_flow_schedule_rec.schedule_number;
1074 END IF;
1075
1076 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.status,
1077 l_flow_schedule_rec.status)
1078 THEN
1079 x_status := l_x_flow_schedule_rec.status;
1080 END IF;
1081
1082 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.std_cost_adjustment_acct,
1083 l_flow_schedule_rec.std_cost_adjustment_acct)
1084 THEN
1085 x_std_cost_adjustment_acct := l_x_flow_schedule_rec.std_cost_adjustment_acct;
1086 END IF;
1087
1088 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.task_id,
1089 l_flow_schedule_rec.task_id)
1090 THEN
1091 x_task_id := l_x_flow_schedule_rec.task_id;
1092 x_task := l_flow_schedule_val_rec.task;
1093 END IF;
1094
1095 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.wip_entity_id,
1096 l_flow_schedule_rec.wip_entity_id)
1097 THEN
1098 x_wip_entity_id := l_x_flow_schedule_rec.wip_entity_id;
1099 x_wip_entity := l_flow_schedule_val_rec.wip_entity;
1100 END IF;
1101
1102 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.end_item_unit_number,
1103 l_flow_schedule_rec.end_item_unit_number)
1104 THEN
1105 x_end_item_unit_number := l_x_flow_schedule_rec.end_item_unit_number;
1106 END IF;
1107
1108 IF NOT MRP_GLOBALS.Equal(l_x_flow_schedule_rec.quantity_scrapped,
1109 l_flow_schedule_rec.quantity_scrapped)
1110 THEN
1111 x_quantity_scrapped := l_x_flow_schedule_rec.quantity_scrapped;
1112 END IF;
1113
1114 /*Store in the cache G_MISS values instead of NULL .So that when we call
1115 complete_record finally it can update to NULL */
1116
1117 l_x_flow_schedule_rec := convert_null_to_miss(l_x_flow_schedule_rec);
1118
1119 -- Write to cache.
1120
1121 Write_flow_schedule
1122 ( p_flow_schedule_rec => l_x_flow_schedule_rec
1123 );
1124
1125 -- Set return status.
1126
1127 x_return_status := FND_API.G_RET_STS_SUCCESS;
1128
1129 -- Get message count and data
1130
1131 FND_MSG_PUB.Count_And_Get
1132 ( p_count => x_msg_count
1133 , p_data => x_msg_data
1134 );
1135
1136
1137 EXCEPTION
1138
1139 WHEN FND_API.G_EXC_ERROR THEN
1140
1141 x_return_status := FND_API.G_RET_STS_ERROR;
1142
1143 -- Get message count and data
1144
1145 FND_MSG_PUB.Count_And_Get
1146 ( p_count => x_msg_count
1147 , p_data => x_msg_data
1148 );
1149
1150 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1151
1152 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1153
1154 -- Get message count and data
1155
1156 FND_MSG_PUB.Count_And_Get
1157 ( p_count => x_msg_count
1158 , p_data => x_msg_data
1159 );
1160
1161 WHEN OTHERS THEN
1162
1163 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1164
1165 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1166 THEN
1167 FND_MSG_PUB.Add_Exc_Msg
1168 ( G_PKG_NAME
1169 , 'Change_Attribute'
1170 );
1171 END IF;
1172
1173 -- Get message count and data
1174
1175 FND_MSG_PUB.Count_And_Get
1176 ( p_count => x_msg_count
1177 , p_data => x_msg_data
1178 );
1179
1180 END Change_Attribute;
1181
1182 -- Function Convert_Miss_To_Null
1183 --
1184
1185 FUNCTION Convert_Null_To_Miss
1186 ( p_flow_schedule_rec IN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
1187 ) RETURN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
1188 IS
1189 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type:= p_flow_schedule_rec;
1190 BEGIN
1191
1192 IF l_flow_schedule_rec.alternate_bom_designator IS NULL THEN
1193 l_flow_schedule_rec.alternate_bom_designator := FND_API.G_MISS_CHAR;
1194 END IF;
1195
1196 IF l_flow_schedule_rec.alternate_routing_desig IS NULL THEN
1197 l_flow_schedule_rec.alternate_routing_desig := FND_API.G_MISS_CHAR;
1198 END IF;
1199
1200 IF l_flow_schedule_rec.attribute1 IS NULL THEN
1201 l_flow_schedule_rec.attribute1 := FND_API.G_MISS_CHAR;
1202 END IF;
1203
1204 IF l_flow_schedule_rec.attribute10 IS NULL THEN
1205 l_flow_schedule_rec.attribute10 := FND_API.G_MISS_CHAR;
1206 END IF;
1207
1208 IF l_flow_schedule_rec.attribute11 IS NULL THEN
1209 l_flow_schedule_rec.attribute11 := FND_API.G_MISS_CHAR;
1210 END IF;
1211
1212 IF l_flow_schedule_rec.attribute12 IS NULL THEN
1213 l_flow_schedule_rec.attribute12 := FND_API.G_MISS_CHAR;
1214 END IF;
1215
1216 IF l_flow_schedule_rec.attribute13 IS NULL THEN
1217 l_flow_schedule_rec.attribute13 := FND_API.G_MISS_CHAR;
1218 END IF;
1219
1220 IF l_flow_schedule_rec.attribute14 IS NULL THEN
1221 l_flow_schedule_rec.attribute14 := FND_API.G_MISS_CHAR;
1222 END IF;
1223
1224 IF l_flow_schedule_rec.attribute15 IS NULL THEN
1225 l_flow_schedule_rec.attribute15 := FND_API.G_MISS_CHAR;
1226 END IF;
1227
1228 IF l_flow_schedule_rec.attribute2 IS NULL THEN
1229 l_flow_schedule_rec.attribute2 := FND_API.G_MISS_CHAR;
1230 END IF;
1231
1232 IF l_flow_schedule_rec.attribute3 IS NULL THEN
1233 l_flow_schedule_rec.attribute3 := FND_API.G_MISS_CHAR;
1234 END IF;
1235
1236 IF l_flow_schedule_rec.attribute4 IS NULL THEN
1237 l_flow_schedule_rec.attribute4 := FND_API.G_MISS_CHAR;
1238 END IF;
1239
1240 IF l_flow_schedule_rec.attribute5 IS NULL THEN
1241 l_flow_schedule_rec.attribute5 := FND_API.G_MISS_CHAR;
1242 END IF;
1243
1244 IF l_flow_schedule_rec.attribute6 IS NULL THEN
1245 l_flow_schedule_rec.attribute6 := FND_API.G_MISS_CHAR;
1246 END IF;
1247
1248 IF l_flow_schedule_rec.attribute7 IS NULL THEN
1249 l_flow_schedule_rec.attribute7 := FND_API.G_MISS_CHAR;
1250 END IF;
1251
1252 IF l_flow_schedule_rec.attribute8 IS NULL THEN
1253 l_flow_schedule_rec.attribute8 := FND_API.G_MISS_CHAR;
1254 END IF;
1255
1256 IF l_flow_schedule_rec.attribute9 IS NULL THEN
1257 l_flow_schedule_rec.attribute9 := FND_API.G_MISS_CHAR;
1258 END IF;
1259
1260 IF l_flow_schedule_rec.attribute_category IS NULL THEN
1261 l_flow_schedule_rec.attribute_category := FND_API.G_MISS_CHAR;
1262 END IF;
1263
1264 IF l_flow_schedule_rec.bom_revision IS NULL THEN
1265 l_flow_schedule_rec.bom_revision := FND_API.G_MISS_CHAR;
1266 END IF;
1267
1268 IF l_flow_schedule_rec.bom_revision_date IS NULL THEN
1269 l_flow_schedule_rec.bom_revision_date := FND_API.G_MISS_DATE;
1270 END IF;
1271
1272 IF l_flow_schedule_rec.build_sequence IS NULL THEN
1273 l_flow_schedule_rec.build_sequence := FND_API.G_MISS_NUM;
1274 END IF;
1275
1276 IF l_flow_schedule_rec.class_code IS NULL THEN
1277 l_flow_schedule_rec.class_code := FND_API.G_MISS_CHAR;
1278 END IF;
1279
1280 IF l_flow_schedule_rec.completion_locator_id IS NULL THEN
1281 l_flow_schedule_rec.completion_locator_id := FND_API.G_MISS_NUM;
1282 END IF;
1283
1284 IF l_flow_schedule_rec.completion_subinventory IS NULL THEN
1285 l_flow_schedule_rec.completion_subinventory := FND_API.G_MISS_CHAR;
1286 END IF;
1287
1288 IF l_flow_schedule_rec.created_by IS NULL THEN
1289 l_flow_schedule_rec.created_by := FND_API.G_MISS_NUM;
1290 END IF;
1291
1292 IF l_flow_schedule_rec.creation_date IS NULL THEN
1293 l_flow_schedule_rec.creation_date := FND_API.G_MISS_DATE;
1294 END IF;
1295
1296 IF l_flow_schedule_rec.date_closed IS NULL THEN
1297 l_flow_schedule_rec.date_closed := FND_API.G_MISS_DATE;
1298 END IF;
1299
1300 IF l_flow_schedule_rec.demand_class IS NULL THEN
1301 l_flow_schedule_rec.demand_class := FND_API.G_MISS_CHAR;
1302 END IF;
1303
1304 IF l_flow_schedule_rec.demand_source_delivery IS NULL THEN
1305 l_flow_schedule_rec.demand_source_delivery := FND_API.G_MISS_CHAR;
1306 END IF;
1307
1308 IF l_flow_schedule_rec.demand_source_header_id IS NULL THEN
1309 l_flow_schedule_rec.demand_source_header_id := FND_API.G_MISS_NUM;
1310 END IF;
1311
1312 IF l_flow_schedule_rec.demand_source_line IS NULL THEN
1313 l_flow_schedule_rec.demand_source_line := FND_API.G_MISS_CHAR;
1314 END IF;
1315
1316 IF l_flow_schedule_rec.demand_source_type IS NULL THEN
1317 l_flow_schedule_rec.demand_source_type := FND_API.G_MISS_NUM;
1318 END IF;
1319
1320 IF l_flow_schedule_rec.last_updated_by IS NULL THEN
1321 l_flow_schedule_rec.last_updated_by := FND_API.G_MISS_NUM;
1322 END IF;
1323
1324 IF l_flow_schedule_rec.last_update_date IS NULL THEN
1325 l_flow_schedule_rec.last_update_date := FND_API.G_MISS_DATE;
1326 END IF;
1327
1328 IF l_flow_schedule_rec.last_update_login IS NULL THEN
1329 l_flow_schedule_rec.last_update_login := FND_API.G_MISS_NUM;
1330 END IF;
1331
1332 IF l_flow_schedule_rec.line_id IS NULL THEN
1333 l_flow_schedule_rec.line_id := FND_API.G_MISS_NUM;
1334 END IF;
1335
1336 IF l_flow_schedule_rec.material_account IS NULL THEN
1337 l_flow_schedule_rec.material_account := FND_API.G_MISS_NUM;
1338 END IF;
1339
1340 IF l_flow_schedule_rec.material_overhead_account IS NULL THEN
1341 l_flow_schedule_rec.material_overhead_account := FND_API.G_MISS_NUM;
1342 END IF;
1343
1344 IF l_flow_schedule_rec.material_variance_account IS NULL THEN
1345 l_flow_schedule_rec.material_variance_account := FND_API.G_MISS_NUM;
1346 END IF;
1347
1348 IF l_flow_schedule_rec.mps_net_quantity IS NULL THEN
1349 l_flow_schedule_rec.mps_net_quantity := FND_API.G_MISS_NUM;
1350 END IF;
1351
1352 IF l_flow_schedule_rec.mps_scheduled_comp_date IS NULL THEN
1353 l_flow_schedule_rec.mps_scheduled_comp_date := FND_API.G_MISS_DATE;
1354 END IF;
1355
1356 IF l_flow_schedule_rec.organization_id IS NULL THEN
1357 l_flow_schedule_rec.organization_id := FND_API.G_MISS_NUM;
1358 END IF;
1359
1360 IF l_flow_schedule_rec.outside_processing_acct IS NULL THEN
1361 l_flow_schedule_rec.outside_processing_acct := FND_API.G_MISS_NUM;
1362 END IF;
1363
1364 IF l_flow_schedule_rec.outside_proc_var_acct IS NULL THEN
1365 l_flow_schedule_rec.outside_proc_var_acct := FND_API.G_MISS_NUM;
1366 END IF;
1367
1368 IF l_flow_schedule_rec.overhead_account IS NULL THEN
1369 l_flow_schedule_rec.overhead_account := FND_API.G_MISS_NUM;
1370 END IF;
1371
1372 IF l_flow_schedule_rec.overhead_variance_account IS NULL THEN
1373 l_flow_schedule_rec.overhead_variance_account := FND_API.G_MISS_NUM;
1374 END IF;
1375
1376 IF l_flow_schedule_rec.planned_quantity IS NULL THEN
1377 l_flow_schedule_rec.planned_quantity := FND_API.G_MISS_NUM;
1378 END IF;
1379
1380 IF l_flow_schedule_rec.primary_item_id IS NULL THEN
1381 l_flow_schedule_rec.primary_item_id := FND_API.G_MISS_NUM;
1382 END IF;
1383
1384 IF l_flow_schedule_rec.program_application_id IS NULL THEN
1385 l_flow_schedule_rec.program_application_id := FND_API.G_MISS_NUM;
1386 END IF;
1387
1388 IF l_flow_schedule_rec.program_id IS NULL THEN
1389 l_flow_schedule_rec.program_id := FND_API.G_MISS_NUM;
1390 END IF;
1391
1392 IF l_flow_schedule_rec.program_update_date IS NULL THEN
1393 l_flow_schedule_rec.program_update_date := FND_API.G_MISS_DATE;
1394 END IF;
1395
1396 IF l_flow_schedule_rec.project_id IS NULL THEN
1397 l_flow_schedule_rec.project_id := FND_API.G_MISS_NUM;
1398 END IF;
1399
1400 IF l_flow_schedule_rec.quantity_completed IS NULL THEN
1401 l_flow_schedule_rec.quantity_completed := FND_API.G_MISS_NUM;
1402 END IF;
1403
1404 IF l_flow_schedule_rec.request_id IS NULL THEN
1405 l_flow_schedule_rec.request_id := FND_API.G_MISS_NUM;
1406 END IF;
1407
1408 IF l_flow_schedule_rec.resource_account IS NULL THEN
1409 l_flow_schedule_rec.resource_account := FND_API.G_MISS_NUM;
1410 END IF;
1411
1412 IF l_flow_schedule_rec.resource_variance_account IS NULL THEN
1413 l_flow_schedule_rec.resource_variance_account := FND_API.G_MISS_NUM;
1414 END IF;
1415
1416 IF l_flow_schedule_rec.routing_revision IS NULL THEN
1417 l_flow_schedule_rec.routing_revision := FND_API.G_MISS_CHAR;
1418 END IF;
1419
1420 IF l_flow_schedule_rec.routing_revision_date IS NULL THEN
1421 l_flow_schedule_rec.routing_revision_date := FND_API.G_MISS_DATE;
1422 END IF;
1423
1424 IF l_flow_schedule_rec.scheduled_completion_date IS NULL THEN
1425 l_flow_schedule_rec.scheduled_completion_date := FND_API.G_MISS_DATE;
1426 END IF;
1427
1428 IF l_flow_schedule_rec.scheduled_flag IS NULL THEN
1429 l_flow_schedule_rec.scheduled_flag := FND_API.G_MISS_NUM;
1430 END IF;
1431
1432 IF l_flow_schedule_rec.scheduled_start_date IS NULL THEN
1433 l_flow_schedule_rec.scheduled_start_date := FND_API.G_MISS_DATE;
1434 END IF;
1435
1436 IF l_flow_schedule_rec.schedule_group_id IS NULL THEN
1437 l_flow_schedule_rec.schedule_group_id := FND_API.G_MISS_NUM;
1438 END IF;
1439
1440 IF l_flow_schedule_rec.schedule_number IS NULL THEN
1441 l_flow_schedule_rec.schedule_number := FND_API.G_MISS_CHAR;
1442 END IF;
1443
1444 IF l_flow_schedule_rec.status IS NULL THEN
1445 l_flow_schedule_rec.status := FND_API.G_MISS_NUM;
1446 END IF;
1447
1448 IF l_flow_schedule_rec.std_cost_adjustment_acct IS NULL THEN
1449 l_flow_schedule_rec.std_cost_adjustment_acct := FND_API.G_MISS_NUM;
1450 END IF;
1451
1452 IF l_flow_schedule_rec.task_id IS NULL THEN
1453 l_flow_schedule_rec.task_id := FND_API.G_MISS_NUM;
1454 END IF;
1455
1456 IF l_flow_schedule_rec.wip_entity_id IS NULL THEN
1457 l_flow_schedule_rec.wip_entity_id := FND_API.G_MISS_NUM;
1458 END IF;
1459
1460 IF l_flow_schedule_rec.end_item_unit_number IS NULL THEN
1461 l_flow_schedule_rec.end_item_unit_number := FND_API.G_MISS_CHAR;
1462 END IF;
1463
1464 IF l_flow_schedule_rec.quantity_scrapped IS NULL THEN
1465 l_flow_schedule_rec.quantity_scrapped := FND_API.G_MISS_NUM;
1466 END IF;
1467
1468 RETURN l_flow_schedule_rec;
1469
1470 END Convert_Null_To_Miss;
1471
1472 -- Procedure Validate_And_Write
1473 --
1474
1475 PROCEDURE Validate_And_Write
1476 ( x_return_status OUT NOCOPY VARCHAR2
1477 , x_msg_count OUT NOCOPY NUMBER
1478 , x_msg_data OUT NOCOPY VARCHAR2
1479 , p_wip_entity_id IN NUMBER
1480 , x_creation_date OUT NOCOPY DATE
1481 , x_created_by OUT NOCOPY NUMBER
1482 , x_last_update_date OUT NOCOPY DATE
1483 , x_last_updated_by OUT NOCOPY NUMBER
1484 , x_last_update_login OUT NOCOPY NUMBER
1485 )
1486 IS
1487 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1488 l_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1489 l_control_rec MRP_GLOBALS.Control_Rec_Type;
1490 l_return_status VARCHAR2(1);
1491 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1492 BEGIN
1493
1494 -- Set control flags.
1495
1496 l_control_rec.controlled_operation := TRUE;
1497 l_control_rec.validate_entity := TRUE;
1498 l_control_rec.write_to_DB := TRUE;
1499
1500 l_control_rec.default_attributes := FALSE;
1501 l_control_rec.change_attributes := FALSE;
1502 l_control_rec.process := FALSE;
1503
1504 -- Instruct API to retain its caches
1505
1506 l_control_rec.clear_api_cache := FALSE;
1507 l_control_rec.clear_api_requests := FALSE;
1508
1509 -- Read flow_schedule from cache
1510
1511 l_old_flow_schedule_rec := Get_flow_schedule
1512 ( p_db_record => TRUE
1513 , p_wip_entity_id => p_wip_entity_id
1514 );
1515
1516 l_flow_schedule_rec := Get_flow_schedule
1517 ( p_db_record => FALSE
1518 , p_wip_entity_id => p_wip_entity_id
1519 );
1520
1521 -- Set Operation.
1522
1523 IF FND_API.To_Boolean(l_flow_schedule_rec.db_flag) THEN
1524 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_UPDATE;
1525 ELSE
1526 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_CREATE;
1527 END IF;
1528
1529 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
1530 MRP_Flow_Schedule_PVT.Process_flow_schedule
1531 ( p_api_version_number => 1.0
1532 , p_init_msg_list => FND_API.G_TRUE
1533 , x_return_status => l_return_status
1534 , x_msg_count => x_msg_count
1535 , x_msg_data => x_msg_data
1536 , p_control_rec => l_control_rec
1537 , p_flow_schedule_rec => l_flow_schedule_rec
1538 , p_old_flow_schedule_rec => l_old_flow_schedule_rec
1539 , x_flow_schedule_rec => l_x_flow_schedule_rec
1540 );
1541
1542 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1543 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1544 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1545 RAISE FND_API.G_EXC_ERROR;
1546 END IF;
1547
1548 -- Load OUT parameters.
1549
1550
1551 x_creation_date := l_x_flow_schedule_rec.creation_date;
1552 x_created_by := l_x_flow_schedule_rec.created_by;
1553 x_last_update_date := l_x_flow_schedule_rec.last_update_date;
1554 x_last_updated_by := l_x_flow_schedule_rec.last_updated_by;
1555 x_last_update_login := l_x_flow_schedule_rec.last_update_login;
1556
1557 -- Clear flow_schedule record cache
1558
1559 Clear_flow_schedule;
1560
1561 -- Keep track of performed operations.
1562
1563 l_old_flow_schedule_rec.operation := l_flow_schedule_rec.operation;
1564
1565
1566 -- Set return status.
1567
1568 x_return_status := FND_API.G_RET_STS_SUCCESS;
1569
1570 -- Get message count and data
1571
1572 FND_MSG_PUB.Count_And_Get
1573 ( p_count => x_msg_count
1574 , p_data => x_msg_data
1575 );
1576
1577
1578 EXCEPTION
1579
1580 WHEN FND_API.G_EXC_ERROR THEN
1581
1582 x_return_status := FND_API.G_RET_STS_ERROR;
1583
1584 -- Get message count and data
1585
1586 FND_MSG_PUB.Count_And_Get
1587 ( p_count => x_msg_count
1588 , p_data => x_msg_data
1589 );
1590
1591 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1592
1593 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1594
1595 -- Get message count and data
1596
1597 FND_MSG_PUB.Count_And_Get
1598 ( p_count => x_msg_count
1599 , p_data => x_msg_data
1600 );
1601
1602 WHEN OTHERS THEN
1603
1604 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1605
1606 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1607 THEN
1608 FND_MSG_PUB.Add_Exc_Msg
1609 ( G_PKG_NAME
1610 , 'Validate_And_Write'
1611 );
1612 END IF;
1613
1614 -- Get message count and data
1615
1616 FND_MSG_PUB.Count_And_Get
1617 ( p_count => x_msg_count
1618 , p_data => x_msg_data
1619 );
1620
1621 END Validate_And_Write;
1622
1623 -- Procedure Delete_Row
1624 --
1625
1626 PROCEDURE Delete_Row
1627 ( x_return_status OUT NOCOPY VARCHAR2
1628 , x_msg_count OUT NOCOPY NUMBER
1629 , x_msg_data OUT NOCOPY VARCHAR2
1630 , p_wip_entity_id IN NUMBER
1631 )
1632 IS
1633 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1634 l_p_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1635 l_control_rec MRP_GLOBALS.Control_Rec_Type;
1636 l_return_status VARCHAR2(1);
1637 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1638 BEGIN
1639
1640 -- Set control flags.
1641
1642 l_control_rec.controlled_operation := TRUE;
1643 l_control_rec.validate_entity := TRUE;
1644 l_control_rec.write_to_DB := TRUE;
1645
1646 l_control_rec.default_attributes := FALSE;
1647 l_control_rec.change_attributes := FALSE;
1648 l_control_rec.process := FALSE;
1649
1650 -- Instruct API to retain its caches
1651
1652 l_control_rec.clear_api_cache := FALSE;
1653 l_control_rec.clear_api_requests := FALSE;
1654
1655 -- Read DB record from cache
1656
1657 l_flow_schedule_rec := Get_flow_schedule
1658 ( p_db_record => TRUE
1659 , p_wip_entity_id => p_wip_entity_id
1660 );
1661
1662 -- Set Operation.
1663
1664 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_DELETE;
1665
1666 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
1667
1668 MRP_Flow_Schedule_PVT.Process_flow_schedule
1669 ( p_api_version_number => 1.0
1670 , p_init_msg_list => FND_API.G_TRUE
1671 , x_return_status => l_return_status
1672 , x_msg_count => x_msg_count
1673 , x_msg_data => x_msg_data
1674 , p_control_rec => l_control_rec
1675 , p_flow_schedule_rec => l_flow_schedule_rec
1676 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
1677 , x_flow_schedule_rec => l_x_flow_schedule_rec
1678 );
1679
1680 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1681 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1682 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1683 RAISE FND_API.G_EXC_ERROR;
1684 END IF;
1685
1686
1687 -- Clear flow_schedule record cache
1688
1689 Clear_flow_schedule;
1690
1691 -- Set return status.
1692
1693 x_return_status := FND_API.G_RET_STS_SUCCESS;
1694
1695 -- Get message count and data
1696
1697 FND_MSG_PUB.Count_And_Get
1698 ( p_count => x_msg_count
1699 , p_data => x_msg_data
1700 );
1701
1702
1703 EXCEPTION
1704
1705 WHEN FND_API.G_EXC_ERROR THEN
1706
1707 x_return_status := FND_API.G_RET_STS_ERROR;
1708
1709 -- Get message count and data
1710
1711 FND_MSG_PUB.Count_And_Get
1712 ( p_count => x_msg_count
1713 , p_data => x_msg_data
1714 );
1715
1716 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1717
1718 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1719
1720 -- Get message count and data
1721
1722 FND_MSG_PUB.Count_And_Get
1723 ( p_count => x_msg_count
1724 , p_data => x_msg_data
1725 );
1726
1727 WHEN OTHERS THEN
1728
1729 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1730
1731 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1732 THEN
1733 FND_MSG_PUB.Add_Exc_Msg
1734 ( G_PKG_NAME
1735 , 'Delete_Row'
1736 );
1737 END IF;
1738
1739 -- Get message count and data
1740
1741 FND_MSG_PUB.Count_And_Get
1742 ( p_count => x_msg_count
1743 , p_data => x_msg_data
1744 );
1745
1746 END Delete_Row;
1747
1748 -- Procedure Process_Entity
1749 --
1750
1751 PROCEDURE Process_Entity
1752 ( x_return_status OUT NOCOPY VARCHAR2
1753 , x_msg_count OUT NOCOPY NUMBER
1754 , x_msg_data OUT NOCOPY VARCHAR2
1755 )
1756 IS
1757 l_control_rec MRP_GLOBALS.Control_Rec_Type;
1758 l_return_status VARCHAR2(1);
1759 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1760 l_p_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1761 l_p_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1762 BEGIN
1763
1764 -- Set control flags.
1765
1766 l_control_rec.controlled_operation := TRUE;
1767 l_control_rec.process := TRUE;
1768 l_control_rec.process_entity := MRP_GLOBALS.G_ENTITY_FLOW_SCHEDULE;
1769
1770 l_control_rec.default_attributes := FALSE;
1771 l_control_rec.change_attributes := FALSE;
1772 l_control_rec.validate_entity := FALSE;
1773 l_control_rec.write_to_DB := FALSE;
1774
1775 -- Instruct API to clear its request table
1776
1777 l_control_rec.clear_api_cache := FALSE;
1778 l_control_rec.clear_api_requests := FALSE;
1779
1780 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
1781
1782 MRP_Flow_Schedule_PVT.Process_flow_schedule
1783 ( p_api_version_number => 1.0
1784 , p_init_msg_list => FND_API.G_TRUE
1785 , x_return_status => l_return_status
1786 , x_msg_count => x_msg_count
1787 , x_msg_data => x_msg_data
1788 , p_control_rec => l_control_rec
1789 , x_flow_schedule_rec => l_x_flow_schedule_rec
1790 , p_flow_schedule_rec => l_p_flow_schedule_rec
1791 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
1792 );
1793
1794 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1795 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1796 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1797 RAISE FND_API.G_EXC_ERROR;
1798 END IF;
1799
1800
1801 -- Set return status.
1802
1803 x_return_status := FND_API.G_RET_STS_SUCCESS;
1804
1805 -- Get message count and data
1806
1807 FND_MSG_PUB.Count_And_Get
1808 ( p_count => x_msg_count
1809 , p_data => x_msg_data
1810 );
1811
1812
1813 EXCEPTION
1814
1815 WHEN FND_API.G_EXC_ERROR THEN
1816
1817 x_return_status := FND_API.G_RET_STS_ERROR;
1818
1819 -- Get message count and data
1820
1821 FND_MSG_PUB.Count_And_Get
1822 ( p_count => x_msg_count
1823 , p_data => x_msg_data
1824 );
1825
1826 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1827
1828 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1829
1830 -- Get message count and data
1831
1832 FND_MSG_PUB.Count_And_Get
1833 ( p_count => x_msg_count
1834 , p_data => x_msg_data
1835 );
1836
1837 WHEN OTHERS THEN
1838
1839 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1840
1841 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1842 THEN
1843 FND_MSG_PUB.Add_Exc_Msg
1844 ( G_PKG_NAME
1845 , 'Process_Entity'
1846 );
1847 END IF;
1848
1849 -- Get message count and data
1850
1851 FND_MSG_PUB.Count_And_Get
1852 ( p_count => x_msg_count
1853 , p_data => x_msg_data
1854 );
1855
1856 END Process_Entity;
1857
1858 -- Procedure Process_Object
1859 --
1860
1861 PROCEDURE Process_Object
1862 ( x_return_status OUT NOCOPY VARCHAR2
1863 , x_msg_count OUT NOCOPY NUMBER
1864 , x_msg_data OUT NOCOPY VARCHAR2
1865 )
1866 IS
1867 l_control_rec MRP_GLOBALS.Control_Rec_Type;
1868 l_return_status VARCHAR2(1);
1869 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1870 l_p_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1871 l_p_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
1872
1873 BEGIN
1874
1875 -- Set control flags.
1876
1877 l_control_rec.controlled_operation := TRUE;
1878 l_control_rec.process := TRUE;
1879 l_control_rec.process_entity := MRP_GLOBALS.G_ENTITY_ALL;
1880
1881 l_control_rec.default_attributes := FALSE;
1882 l_control_rec.change_attributes := FALSE;
1883 l_control_rec.validate_entity := FALSE;
1884 l_control_rec.write_to_DB := FALSE;
1885
1886 -- Instruct API to clear its request table
1887
1888 l_control_rec.clear_api_cache := FALSE;
1889 l_control_rec.clear_api_requests := TRUE;
1890
1891 -- Call MRP_Flow_Schedule_PVT.Process_flow_schedule
1892
1893 MRP_Flow_Schedule_PVT.Process_flow_schedule
1894 ( p_api_version_number => 1.0
1895 , p_init_msg_list => FND_API.G_TRUE
1896 , x_return_status => l_return_status
1897 , x_msg_count => x_msg_count
1898 , x_msg_data => x_msg_data
1899 , p_control_rec => l_control_rec
1900 , x_flow_schedule_rec => l_x_flow_schedule_rec
1901 , p_flow_schedule_rec => l_p_flow_schedule_rec
1902 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
1903 );
1904
1905 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1906 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1907 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1908 RAISE FND_API.G_EXC_ERROR;
1909 END IF;
1910
1911
1912 -- Set return status.
1913
1914 x_return_status := FND_API.G_RET_STS_SUCCESS;
1915
1916 -- Get message count and data
1917
1918 FND_MSG_PUB.Count_And_Get
1919 ( p_count => x_msg_count
1920 , p_data => x_msg_data
1921 );
1922
1923
1924 EXCEPTION
1925
1926 WHEN FND_API.G_EXC_ERROR THEN
1927
1928 x_return_status := FND_API.G_RET_STS_ERROR;
1929
1930 -- Get message count and data
1931
1932 FND_MSG_PUB.Count_And_Get
1933 ( p_count => x_msg_count
1934 , p_data => x_msg_data
1935 );
1936
1937 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1938
1939 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1940
1941 -- Get message count and data
1942
1943 FND_MSG_PUB.Count_And_Get
1944 ( p_count => x_msg_count
1945 , p_data => x_msg_data
1946 );
1947
1948 WHEN OTHERS THEN
1949
1950 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1951
1952 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1953 THEN
1954 FND_MSG_PUB.Add_Exc_Msg
1955 ( G_PKG_NAME
1956 , 'Process_Object'
1957 );
1958 END IF;
1959
1960 -- Get message count and data
1961
1962 FND_MSG_PUB.Count_And_Get
1963 ( p_count => x_msg_count
1964 , p_data => x_msg_data
1965 );
1966
1967 END Process_Object;
1968
1969 -- Procedure lock_Row
1970 --
1971
1972 PROCEDURE Lock_Row
1973 ( x_return_status OUT NOCOPY VARCHAR2
1974 , x_msg_count OUT NOCOPY NUMBER
1975 , x_msg_data OUT NOCOPY VARCHAR2
1976 , p_alternate_bom_designator IN VARCHAR2
1977 , p_alternate_routing_desig IN VARCHAR2
1978 , p_attribute1 IN VARCHAR2
1979 , p_attribute10 IN VARCHAR2
1980 , p_attribute11 IN VARCHAR2
1981 , p_attribute12 IN VARCHAR2
1982 , p_attribute13 IN VARCHAR2
1983 , p_attribute14 IN VARCHAR2
1984 , p_attribute15 IN VARCHAR2
1985 , p_attribute2 IN VARCHAR2
1986 , p_attribute3 IN VARCHAR2
1987 , p_attribute4 IN VARCHAR2
1988 , p_attribute5 IN VARCHAR2
1989 , p_attribute6 IN VARCHAR2
1990 , p_attribute7 IN VARCHAR2
1991 , p_attribute8 IN VARCHAR2
1992 , p_attribute9 IN VARCHAR2
1993 , p_attribute_category IN VARCHAR2
1994 , p_bom_revision IN VARCHAR2
1995 , p_bom_revision_date IN DATE
1996 , p_build_sequence IN NUMBER
1997 , p_class_code IN VARCHAR2
1998 , p_completion_locator_id IN NUMBER
1999 , p_completion_subinventory IN VARCHAR2
2000 , p_created_by IN NUMBER
2001 , p_creation_date IN DATE
2002 , p_date_closed IN DATE
2003 , p_demand_class IN VARCHAR2
2004 , p_demand_source_delivery IN VARCHAR2
2005 , p_demand_source_header_id IN NUMBER
2006 , p_demand_source_line IN VARCHAR2
2007 , p_demand_source_type IN NUMBER
2008 , p_last_updated_by IN NUMBER
2009 , p_last_update_date IN DATE
2010 , p_last_update_login IN NUMBER
2011 , p_line_id IN NUMBER
2012 , p_material_account IN NUMBER
2013 , p_material_overhead_account IN NUMBER
2014 , p_material_variance_account IN NUMBER
2015 , p_mps_net_quantity IN NUMBER
2016 , p_mps_scheduled_comp_date IN DATE
2017 , p_organization_id IN NUMBER
2018 , p_outside_processing_acct IN NUMBER
2019 , p_outside_proc_var_acct IN NUMBER
2020 , p_overhead_account IN NUMBER
2021 , p_overhead_variance_account IN NUMBER
2022 , p_planned_quantity IN NUMBER
2023 , p_primary_item_id IN NUMBER
2024 , p_program_application_id IN NUMBER
2025 , p_program_id IN NUMBER
2026 , p_program_update_date IN DATE
2027 , p_project_id IN NUMBER
2028 , p_quantity_completed IN NUMBER
2029 , p_request_id IN NUMBER
2030 , p_resource_account IN NUMBER
2031 , p_resource_variance_account IN NUMBER
2032 , p_routing_revision IN VARCHAR2
2033 , p_routing_revision_date IN DATE
2034 , p_scheduled_completion_date IN DATE
2035 , p_scheduled_flag IN NUMBER
2036 , p_scheduled_start_date IN DATE
2037 , p_schedule_group_id IN NUMBER
2038 , p_schedule_number IN VARCHAR2
2039 , p_status IN NUMBER
2040 , p_std_cost_adjustment_acct IN NUMBER
2041 , p_task_id IN NUMBER
2042 , p_wip_entity_id IN NUMBER
2043 , p_end_item_unit_number IN VARCHAR2
2044 , p_quantity_scrapped IN NUMBER
2045 )
2046 IS
2047 l_return_status VARCHAR2(1);
2048 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2049 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2050 l_file UTL_FILE.file_type;
2051 BEGIN
2052
2053 -- Load flow_schedule record
2054
2055 l_flow_schedule_rec.alternate_bom_designator := p_alternate_bom_designator;
2056 l_flow_schedule_rec.alternate_routing_desig := p_alternate_routing_desig;
2057 l_flow_schedule_rec.attribute1 := p_attribute1;
2058 l_flow_schedule_rec.attribute10 := p_attribute10;
2059 l_flow_schedule_rec.attribute11 := p_attribute11;
2060 l_flow_schedule_rec.attribute12 := p_attribute12;
2061 l_flow_schedule_rec.attribute13 := p_attribute13;
2062 l_flow_schedule_rec.attribute14 := p_attribute14;
2063 l_flow_schedule_rec.attribute15 := p_attribute15;
2064 l_flow_schedule_rec.attribute2 := p_attribute2;
2065 l_flow_schedule_rec.attribute3 := p_attribute3;
2066 l_flow_schedule_rec.attribute4 := p_attribute4;
2067 l_flow_schedule_rec.attribute5 := p_attribute5;
2068 l_flow_schedule_rec.attribute6 := p_attribute6;
2069 l_flow_schedule_rec.attribute7 := p_attribute7;
2070 l_flow_schedule_rec.attribute8 := p_attribute8;
2071 l_flow_schedule_rec.attribute9 := p_attribute9;
2072 l_flow_schedule_rec.attribute_category := p_attribute_category;
2073 l_flow_schedule_rec.bom_revision := p_bom_revision;
2074 l_flow_schedule_rec.bom_revision_date := p_bom_revision_date;
2075 l_flow_schedule_rec.build_sequence := p_build_sequence;
2076 l_flow_schedule_rec.class_code := p_class_code;
2077 l_flow_schedule_rec.completion_locator_id := p_completion_locator_id;
2078 l_flow_schedule_rec.completion_subinventory := p_completion_subinventory;
2079 l_flow_schedule_rec.created_by := p_created_by;
2080 l_flow_schedule_rec.creation_date := p_creation_date;
2081 l_flow_schedule_rec.date_closed := p_date_closed;
2082 l_flow_schedule_rec.demand_class := p_demand_class;
2083 l_flow_schedule_rec.demand_source_delivery := p_demand_source_delivery;
2084 l_flow_schedule_rec.demand_source_header_id := p_demand_source_header_id;
2085 l_flow_schedule_rec.demand_source_line := p_demand_source_line;
2086 l_flow_schedule_rec.demand_source_type := p_demand_source_type;
2087 l_flow_schedule_rec.last_updated_by := p_last_updated_by;
2088 l_flow_schedule_rec.last_update_date := p_last_update_date;
2089 l_flow_schedule_rec.last_update_login := p_last_update_login;
2090 l_flow_schedule_rec.line_id := p_line_id;
2091 l_flow_schedule_rec.material_account := p_material_account;
2092 l_flow_schedule_rec.material_overhead_account := p_material_overhead_account;
2093 l_flow_schedule_rec.material_variance_account := p_material_variance_account;
2094 l_flow_schedule_rec.mps_net_quantity := p_mps_net_quantity;
2095 l_flow_schedule_rec.mps_scheduled_comp_date := p_mps_scheduled_comp_date;
2096 l_flow_schedule_rec.organization_id := p_organization_id;
2097 l_flow_schedule_rec.outside_processing_acct := p_outside_processing_acct;
2098 l_flow_schedule_rec.outside_proc_var_acct := p_outside_proc_var_acct;
2099 l_flow_schedule_rec.overhead_account := p_overhead_account;
2100 l_flow_schedule_rec.overhead_variance_account := p_overhead_variance_account;
2101 l_flow_schedule_rec.planned_quantity := p_planned_quantity;
2102 l_flow_schedule_rec.primary_item_id := p_primary_item_id;
2103 l_flow_schedule_rec.program_application_id := p_program_application_id;
2104 l_flow_schedule_rec.program_id := p_program_id;
2105 l_flow_schedule_rec.program_update_date := p_program_update_date;
2106 l_flow_schedule_rec.project_id := p_project_id;
2107 l_flow_schedule_rec.quantity_completed := p_quantity_completed;
2108 l_flow_schedule_rec.request_id := p_request_id;
2109 l_flow_schedule_rec.resource_account := p_resource_account;
2110 l_flow_schedule_rec.resource_variance_account := p_resource_variance_account;
2111 l_flow_schedule_rec.routing_revision := p_routing_revision;
2112 l_flow_schedule_rec.routing_revision_date := p_routing_revision_date;
2113 l_flow_schedule_rec.scheduled_completion_date := p_scheduled_completion_date;
2114 l_flow_schedule_rec.scheduled_flag := p_scheduled_flag;
2115 l_flow_schedule_rec.scheduled_start_date := p_scheduled_start_date;
2116 l_flow_schedule_rec.schedule_group_id := p_schedule_group_id;
2117 l_flow_schedule_rec.schedule_number := p_schedule_number;
2118 l_flow_schedule_rec.status := p_status;
2119 l_flow_schedule_rec.std_cost_adjustment_acct := p_std_cost_adjustment_acct;
2120 l_flow_schedule_rec.task_id := p_task_id;
2121 l_flow_schedule_rec.wip_entity_id := p_wip_entity_id;
2122 l_flow_schedule_rec.end_item_unit_number := p_end_item_unit_number;
2123 l_flow_schedule_rec.quantity_scrapped := p_quantity_scrapped;
2124
2125 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_LOCK;
2126
2127 -- Call MRP_Flow_Schedule_PVT.Lock_flow_schedule
2128
2129 MRP_Flow_Schedule_PVT.Lock_flow_schedule
2130 ( p_api_version_number => 1.0
2131 , p_init_msg_list => FND_API.G_TRUE
2132 , x_return_status => l_return_status
2133 , x_msg_count => x_msg_count
2134 , x_msg_data => x_msg_data
2135 , p_flow_schedule_rec => l_flow_schedule_rec
2136 , x_flow_schedule_rec => l_x_flow_schedule_rec
2137 );
2138
2139 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
2140
2141 -- Set DB flag and write record to cache.
2142
2143 l_x_flow_schedule_rec.db_flag := FND_API.G_TRUE;
2144
2145 Write_flow_schedule
2146 ( p_flow_schedule_rec => l_x_flow_schedule_rec
2147 , p_db_record => TRUE
2148 );
2149
2150 END IF;
2151
2152 -- Set return status.
2153
2154 x_return_status := l_return_status;
2155
2156 -- Get message count and data
2157
2158 FND_MSG_PUB.Count_And_Get
2159 ( p_count => x_msg_count
2160 , p_data => x_msg_data
2161 );
2162
2163
2164 EXCEPTION
2165
2166 WHEN OTHERS THEN
2167
2168 FND_MSG_PUB.Add_Exc_Msg
2169 ( G_PKG_NAME
2170 , 'Lock_Row: yes you really are here'
2171 );
2172 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2173 THEN
2174 FND_MSG_PUB.Add_Exc_Msg
2175 ( G_PKG_NAME
2176 , 'Lock_Row'
2177 );
2178 END IF;
2179
2180 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2181
2182 -- Get message count and data
2183
2184 FND_MSG_PUB.Count_And_Get
2185 ( p_count => x_msg_count
2186 , p_data => x_msg_data
2187 );
2188
2189 END Lock_Row;
2190
2191 PROCEDURE Create_Flow_Schedule
2192 ( x_return_status OUT NOCOPY VARCHAR2
2193 , x_msg_count OUT NOCOPY NUMBER
2194 , x_msg_data OUT NOCOPY VARCHAR2
2195 , p_alternate_bom_designator IN VARCHAR2
2196 , p_alternate_routing_desig IN VARCHAR2
2197 , p_attribute1 IN VARCHAR2
2198 , p_attribute10 IN VARCHAR2
2199 , p_attribute11 IN VARCHAR2
2200 , p_attribute12 IN VARCHAR2
2201 , p_attribute13 IN VARCHAR2
2202 , p_attribute14 IN VARCHAR2
2203 , p_attribute15 IN VARCHAR2
2204 , p_attribute2 IN VARCHAR2
2205 , p_attribute3 IN VARCHAR2
2206 , p_attribute4 IN VARCHAR2
2207 , p_attribute5 IN VARCHAR2
2208 , p_attribute6 IN VARCHAR2
2209 , p_attribute7 IN VARCHAR2
2210 , p_attribute8 IN VARCHAR2
2211 , p_attribute9 IN VARCHAR2
2212 , p_attribute_category IN VARCHAR2
2213 , p_bom_revision IN VARCHAR2
2214 , p_bom_revision_date IN DATE
2215 , p_build_sequence IN NUMBER
2216 , p_class_code IN VARCHAR2
2217 , p_completion_locator_id IN NUMBER
2218 , p_completion_subinventory IN VARCHAR2
2219 , p_created_by IN NUMBER
2220 , p_creation_date IN DATE
2221 , p_date_closed IN DATE
2222 , p_demand_class IN VARCHAR2
2223 , p_demand_source_delivery IN VARCHAR2
2224 , p_demand_source_header_id IN NUMBER
2225 , p_demand_source_line IN VARCHAR2
2226 , p_demand_source_type IN NUMBER
2227 , p_last_updated_by IN NUMBER
2228 , p_last_update_date IN DATE
2229 , p_last_update_login IN NUMBER
2230 , p_line_id IN NUMBER
2231 , p_material_account IN NUMBER
2232 , p_material_overhead_account IN NUMBER
2233 , p_material_variance_account IN NUMBER
2234 , p_mps_net_quantity IN NUMBER
2235 , p_mps_scheduled_comp_date IN DATE
2236 , p_organization_id IN NUMBER
2237 , p_outside_processing_acct IN NUMBER
2238 , p_outside_proc_var_acct IN NUMBER
2239 , p_overhead_account IN NUMBER
2240 , p_overhead_variance_account IN NUMBER
2241 , p_planned_quantity IN NUMBER
2242 , p_primary_item_id IN NUMBER
2243 , p_program_application_id IN NUMBER
2244 , p_program_id IN NUMBER
2245 , p_program_update_date IN DATE
2246 , p_project_id IN NUMBER
2247 , p_quantity_completed IN NUMBER
2248 , p_request_id IN NUMBER
2249 , p_resource_account IN NUMBER
2250 , p_resource_variance_account IN NUMBER
2251 , p_routing_revision IN VARCHAR2
2252 , p_routing_revision_date IN DATE
2253 , p_scheduled_completion_date IN DATE
2254 , p_scheduled_flag IN NUMBER
2255 , p_scheduled_start_date IN DATE
2256 , p_schedule_group_id IN NUMBER
2257 , p_schedule_number IN VARCHAR2
2258 , p_status IN NUMBER
2259 , p_std_cost_adjustment_acct IN NUMBER
2260 , p_task_id IN NUMBER
2261 , p_wip_entity_id IN NUMBER
2262 , p_end_item_unit_number IN VARCHAR2
2263 , p_quantity_scrapped IN NUMBER
2264 , x_wip_entity_id OUT NOCOPY NUMBER
2265
2266 )
2267 IS
2268 l_return_status VARCHAR2(1);
2269 l_control_rec MRP_GLOBALS.Control_Rec_Type ;
2270 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2271 l_x_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2272 l_p_old_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2273 BEGIN
2274
2275 -- Load flow_schedule record
2276
2277 l_flow_schedule_rec.alternate_bom_designator := p_alternate_bom_designator;
2278 l_flow_schedule_rec.alternate_routing_desig := p_alternate_routing_desig;
2279 l_flow_schedule_rec.attribute1 := p_attribute1;
2280 l_flow_schedule_rec.attribute10 := p_attribute10;
2281 l_flow_schedule_rec.attribute11 := p_attribute11;
2282 l_flow_schedule_rec.attribute12 := p_attribute12;
2283 l_flow_schedule_rec.attribute13 := p_attribute13;
2284 l_flow_schedule_rec.attribute14 := p_attribute14;
2285 l_flow_schedule_rec.attribute15 := p_attribute15;
2286 l_flow_schedule_rec.attribute2 := p_attribute2;
2287 l_flow_schedule_rec.attribute3 := p_attribute3;
2288 l_flow_schedule_rec.attribute4 := p_attribute4;
2289 l_flow_schedule_rec.attribute5 := p_attribute5;
2290 l_flow_schedule_rec.attribute6 := p_attribute6;
2291 l_flow_schedule_rec.attribute7 := p_attribute7;
2292 l_flow_schedule_rec.attribute8 := p_attribute8;
2293 l_flow_schedule_rec.attribute9 := p_attribute9;
2294 l_flow_schedule_rec.attribute_category := p_attribute_category;
2295 l_flow_schedule_rec.bom_revision := p_bom_revision;
2296 l_flow_schedule_rec.bom_revision_date := p_bom_revision_date;
2297 l_flow_schedule_rec.build_sequence := p_build_sequence;
2298 l_flow_schedule_rec.class_code := p_class_code;
2299 l_flow_schedule_rec.completion_locator_id := p_completion_locator_id;
2300 l_flow_schedule_rec.completion_subinventory := p_completion_subinventory;
2301 l_flow_schedule_rec.created_by := p_created_by;
2302 l_flow_schedule_rec.creation_date := p_creation_date;
2303 l_flow_schedule_rec.date_closed := p_date_closed;
2304 l_flow_schedule_rec.demand_class := p_demand_class;
2305 l_flow_schedule_rec.demand_source_delivery := p_demand_source_delivery;
2306 l_flow_schedule_rec.demand_source_header_id := p_demand_source_header_id;
2307 l_flow_schedule_rec.demand_source_line := p_demand_source_line;
2308 l_flow_schedule_rec.demand_source_type := p_demand_source_type;
2309 l_flow_schedule_rec.last_updated_by := p_last_updated_by;
2310 l_flow_schedule_rec.last_update_date := p_last_update_date;
2311 l_flow_schedule_rec.last_update_login := p_last_update_login;
2312 l_flow_schedule_rec.line_id := p_line_id;
2313 l_flow_schedule_rec.material_account := p_material_account;
2314 l_flow_schedule_rec.material_overhead_account := p_material_overhead_account;
2315 l_flow_schedule_rec.material_variance_account := p_material_variance_account;
2316 l_flow_schedule_rec.mps_net_quantity := p_mps_net_quantity;
2317 l_flow_schedule_rec.mps_scheduled_comp_date := p_mps_scheduled_comp_date;
2318 l_flow_schedule_rec.organization_id := p_organization_id;
2319 l_flow_schedule_rec.outside_processing_acct := p_outside_processing_acct;
2320 l_flow_schedule_rec.outside_proc_var_acct := p_outside_proc_var_acct;
2321 l_flow_schedule_rec.overhead_account := p_overhead_account;
2322 l_flow_schedule_rec.overhead_variance_account := p_overhead_variance_account;
2323 l_flow_schedule_rec.planned_quantity := p_planned_quantity;
2324 l_flow_schedule_rec.primary_item_id := p_primary_item_id;
2325 l_flow_schedule_rec.program_application_id := p_program_application_id;
2326 l_flow_schedule_rec.program_id := p_program_id;
2327 l_flow_schedule_rec.program_update_date := p_program_update_date;
2328 l_flow_schedule_rec.project_id := p_project_id;
2329 l_flow_schedule_rec.quantity_completed := p_quantity_completed;
2330 l_flow_schedule_rec.request_id := p_request_id;
2331 l_flow_schedule_rec.resource_account := p_resource_account;
2332 l_flow_schedule_rec.resource_variance_account := p_resource_variance_account;
2333 l_flow_schedule_rec.routing_revision := p_routing_revision;
2334 l_flow_schedule_rec.routing_revision_date := p_routing_revision_date;
2335 l_flow_schedule_rec.scheduled_completion_date := p_scheduled_completion_date;
2336 l_flow_schedule_rec.scheduled_flag := p_scheduled_flag;
2337 l_flow_schedule_rec.scheduled_start_date := p_scheduled_start_date;
2338 l_flow_schedule_rec.schedule_group_id := p_schedule_group_id;
2339 l_flow_schedule_rec.schedule_number := p_schedule_number;
2340 l_flow_schedule_rec.status := p_status;
2341 l_flow_schedule_rec.std_cost_adjustment_acct := p_std_cost_adjustment_acct;
2342 l_flow_schedule_rec.task_id := p_task_id;
2343 l_flow_schedule_rec.wip_entity_id := p_wip_entity_id;
2344 l_flow_schedule_rec.end_item_unit_number := p_end_item_unit_number;
2345 l_flow_schedule_rec.quantity_scrapped := p_quantity_scrapped;
2346 l_flow_schedule_rec.operation := MRP_GLOBALS.G_OPR_CREATE;
2347
2348 -- Call MRP_Flow_Schedule_PVT.Process_Flow_Schedule
2349
2350 MRP_Flow_Schedule_PVT.Process_Flow_Schedule
2351 ( p_api_version_number => 1.0
2352 , p_init_msg_list => FND_API.G_TRUE
2353 , x_return_status => l_return_status
2354 , x_msg_count => x_msg_count
2355 , x_msg_data => x_msg_data
2356 , p_control_rec => l_control_rec
2357 , p_flow_schedule_rec => l_flow_schedule_rec
2358 , p_old_flow_schedule_rec => l_p_old_flow_schedule_rec
2359 , x_flow_schedule_rec => l_x_flow_schedule_rec
2360 );
2361
2362 x_wip_entity_id := l_x_flow_schedule_rec.wip_entity_id;
2363
2364 x_return_status := l_return_status;
2365
2366 -- Get message count and data
2367
2368 FND_MSG_PUB.Count_And_Get
2369 ( p_count => x_msg_count
2370 , p_data => x_msg_data
2371 );
2372
2373
2374 EXCEPTION
2375
2376 WHEN OTHERS THEN
2377
2378 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2379 THEN
2380 FND_MSG_PUB.Add_Exc_Msg
2381 ( G_PKG_NAME
2382 , 'Create_Flow_Schedule'
2383 );
2384 END IF;
2385
2386 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2387
2388 -- Get message count and data
2389
2390 FND_MSG_PUB.Count_And_Get
2391 ( p_count => x_msg_count
2392 , p_data => x_msg_data
2393 );
2394
2395 END Create_Flow_Schedule;
2396
2397
2398 -- Procedures maintaining flow_schedule record cache.
2399
2400 PROCEDURE Write_flow_schedule
2401 ( p_flow_schedule_rec IN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
2402 , p_db_record IN BOOLEAN := NULL
2403 )
2404 IS
2405 BEGIN
2406
2407 g_flow_schedule_rec := p_flow_schedule_rec;
2408
2409 IF nvl(p_db_record,FALSE) THEN
2410
2411 g_db_flow_schedule_rec := p_flow_schedule_rec;
2412
2413 END IF;
2414
2415 END Write_Flow_Schedule;
2416
2417 FUNCTION Get_flow_schedule
2418 ( p_db_record IN BOOLEAN := NULL
2419 , p_wip_entity_id IN NUMBER
2420 )
2421 RETURN MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type
2422 IS
2423 BEGIN
2424
2425 IF ((p_wip_entity_id <> g_flow_schedule_rec.wip_entity_id ) or (g_flow_schedule_rec.wip_entity_id IS NULL)) and (p_wip_entity_id IS NOT NULL)
2426 THEN
2427
2428 -- Query row from DB
2429
2430 g_flow_schedule_rec := MRP_Flow_Schedule_Util.Query_Row
2431 ( p_wip_entity_id => p_wip_entity_id
2432 );
2433
2434 g_flow_schedule_rec.db_flag := FND_API.G_TRUE;
2435
2436 -- Load DB record
2437
2438 g_db_flow_schedule_rec := g_flow_schedule_rec;
2439
2440 END IF;
2441
2442 IF nvl(p_db_record,FALSE) THEN
2443
2444 RETURN g_db_flow_schedule_rec;
2445
2446 ELSE
2447
2448 RETURN g_flow_schedule_rec;
2449
2450 END IF;
2451
2452 END Get_Flow_Schedule;
2453
2454 PROCEDURE Clear_Flow_Schedule
2455 IS
2456 l_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2457 l_db_flow_schedule_rec MRP_Flow_Schedule_PVT.Flow_Schedule_PVT_Rec_Type;
2458 BEGIN
2459
2460 g_flow_schedule_rec := l_flow_schedule_rec ;
2461 g_db_flow_schedule_rec := l_db_flow_schedule_rec ;
2462
2463 END Clear_Flow_Schedule;
2464
2465 PROCEDURE get_default_dff (
2466 x_return_status OUT NOCOPY varchar2,
2467 p_attribute1 IN OUT NOCOPY varchar2,
2468 p_attribute2 IN OUT NOCOPY varchar2,
2469 p_attribute3 IN OUT NOCOPY varchar2,
2470 p_attribute4 IN OUT NOCOPY varchar2,
2471 p_attribute5 IN OUT NOCOPY varchar2,
2472 p_attribute6 IN OUT NOCOPY varchar2,
2473 p_attribute7 IN OUT NOCOPY varchar2,
2474 p_attribute8 IN OUT NOCOPY varchar2,
2475 p_attribute9 IN OUT NOCOPY varchar2,
2476 p_attribute10 IN OUT NOCOPY varchar2,
2477 p_attribute11 IN OUT NOCOPY varchar2,
2478 p_attribute12 IN OUT NOCOPY varchar2,
2479 p_attribute13 IN OUT NOCOPY varchar2,
2480 p_attribute14 IN OUT NOCOPY varchar2,
2481 p_attribute15 IN OUT NOCOPY varchar2
2482
2483 ) IS
2484 flexfield fnd_dflex.dflex_r;
2485 flexinfo fnd_dflex.dflex_dr;
2486 contexts fnd_dflex.contexts_dr;
2487 cur_context fnd_dflex.context_r;
2488 i BINARY_INTEGER;
2489 segments fnd_dflex.segments_dr;
2490
2491 BEGIN
2492
2493 x_return_status := NULL;
2494 fnd_dflex.get_flexfield('WIP', 'WIP_FLOW_SCHEDULES', flexfield, flexinfo);
2495
2496 fnd_dflex.get_contexts(flexfield, contexts);
2497 FOR i IN 1 .. contexts.ncontexts LOOP
2498 IF(contexts.is_enabled(i) and (contexts.is_global(i) or flexinfo.default_context_value = contexts.context_code(i))) THEN
2499 cur_context.flexfield := flexfield;
2500 cur_context.context_code := contexts.context_code(i);
2501 fnd_dflex.get_segments(cur_context,segments,TRUE);
2502 FOR j IN 1 .. segments.nsegments LOOP
2503 IF (segments.application_column_name(j) = 'ATTRIBUTE1') THEN
2504 p_attribute1 := segments.default_value(j);
2505 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE2') THEN
2506 p_attribute2 := segments.default_value(j);
2507 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE3') THEN
2508 p_attribute3 := segments.default_value(j);
2509 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE4') THEN
2510 p_attribute4 := segments.default_value(j);
2511 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE5') THEN
2512 p_attribute5 := segments.default_value(j);
2513 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE6') THEN
2514 p_attribute6 := segments.default_value(j);
2515 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE7') THEN
2516 p_attribute7 := segments.default_value(j);
2517 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE8') THEN
2518 p_attribute8 := segments.default_value(j);
2519 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE9') THEN
2520 p_attribute9 := segments.default_value(j);
2521 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE10') THEN
2522 p_attribute10 := segments.default_value(j);
2523 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE11') THEN
2524 p_attribute11 := segments.default_value(j);
2525 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE12') THEN
2526 p_attribute12 := segments.default_value(j);
2527 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE13') THEN
2528 p_attribute13 := segments.default_value(j);
2529 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE14') THEN
2530 p_attribute14 := segments.default_value(j);
2531 ELSIF (segments.application_column_name(j) = 'ATTRIBUTE15') THEN
2532 p_attribute15 := segments.default_value(j);
2533 END IF;
2534 END LOOP;
2535 END IF;
2536 END LOOP;
2537
2538 EXCEPTION
2539 WHEN OTHERS THEN
2540
2541 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2542
2543 END get_default_dff;
2544
2545 PROCEDURE Create_Raw_Flow_Schedules
2546 ( x_return_status OUT NOCOPY VARCHAR2
2547 , x_msg_count OUT NOCOPY NUMBER
2548 , x_msg_data OUT NOCOPY VARCHAR2
2549 , x_created_count IN OUT NOCOPY NUMBER
2550 , x_lock_count IN OUT NOCOPY NUMBER
2551 , p_organization_id IN NUMBER
2552 , p_line_id IN NUMBER
2553 , p_unscheduled_order_type IN NUMBER
2554 , p_demand_start_date IN DATE
2555 , p_demand_end_date IN DATE
2556 , p_schedule_group_id IN NUMBER
2557 , p_schedule_rule_id IN NUMBER
2558 , p_rule_user_defined IN NUMBER
2559 , p_primary_routing IN NUMBER /* Bug 2906442 */
2560 )
2561 IS
2562 l_return_status varchar2(1);
2563 l_msg_count NUMBER;
2564 l_msg_data VARCHAR2(2000);
2565 l_wip_entity_id NUMBER;
2566 l_wip_entity_id2 NUMBER;
2567 l_valid_demand BOOLEAN;
2568
2569
2570 l_demand_class VARCHAR2(30) := NULL;
2571 l_demand_source_delivery VARCHAR2(30) := NULL;
2572 l_demand_source_header_id NUMBER := NULL;
2573 l_demand_source_line VARCHAR2(30) := NULL;
2574 l_demand_source_type NUMBER := NULL;
2575 l_line_id NUMBER := NULL;
2576 l_organization_id NUMBER := NULL;
2577 l_planned_quantity NUMBER := NULL;
2578 l_primary_item_id NUMBER := NULL;
2579 l_project_id NUMBER := NULL;
2580 l_scheduled_completion_date DATE := NULL;
2581 l_schedule_group_id NUMBER := NULL;
2582 l_task_id NUMBER := NULL;
2583 l_schedule_number VARCHAR2(30) := NULL;
2584 l_scheduled_flag NUMBER := NULL;
2585 l_end_item_unit_number VARCHAR2(30) := NULL;
2586 l_replenish_to_order_flag VARCHAR2(1) := 'N';
2587 l_build_in_wip_flag VARCHAR2(1) := 'N';
2588
2589 l_attribute1 VARCHAR2(150);
2590 l_attribute10 VARCHAR2(150);
2591 l_attribute11 VARCHAR2(150);
2592 l_attribute12 VARCHAR2(150);
2593 l_attribute13 VARCHAR2(150);
2594 l_attribute14 VARCHAR2(150);
2595 l_attribute15 VARCHAR2(150);
2596 l_attribute2 VARCHAR2(150);
2597 l_attribute3 VARCHAR2(150);
2598 l_attribute4 VARCHAR2(150);
2599 l_attribute5 VARCHAR2(150);
2600 l_attribute6 VARCHAR2(150);
2601 l_attribute7 VARCHAR2(150);
2602 l_attribute8 VARCHAR2(150);
2603 l_attribute9 VARCHAR2(150);
2604
2605 l_rowid VARCHAR2(100);
2606
2607 /* performance bug 4911906 - split C1 to so/po part */
2608 CURSOR C1_SO IS
2609 SELECT
2610 row_id,
2611 demand_class,
2612 demand_source_delivery,
2613 demand_source_header_id,
2614 demand_source_line,
2615 demand_source_type,
2616 order_quantity,
2617 inventory_item_id,
2618 project_id,
2619 order_date,
2620 task_id,
2621 end_item_unit_number,
2622 replenish_to_order_flag,
2623 build_in_wip_flag
2624 FROM
2625 /*mrp_unscheduled_orders_v */
2626 (
2627 SELECT
2628 sl1.rowid row_id,
2629 sl1.ship_from_org_id organization_id,
2630 sl1.inventory_item_id,
2631 inv_salesorder.get_salesorder_for_oeheader(SL1.HEADER_ID) demand_source_header_id,
2632 TO_CHAR(SL1.LINE_ID) demand_source_line,
2633 TO_CHAR(NULL) demand_source_delivery,
2634 2 demand_source_type,
2635 wl.line_id,
2636 sl1.schedule_ship_date order_date,
2637 GREATEST((INV_DECIMALS_PUB.GET_PRIMARY_QUANTITY(SL1.SHIP_FROM_ORG_ID,
2638 SL1.INVENTORY_ITEM_ID,
2639 SL1.ORDER_QUANTITY_UOM,
2640 SL1.ORDERED_QUANTITY) -
2641 MRP_FLOW_SCHEDULE_UTIL.GET_FLOW_QUANTITY(SL1.LINE_ID,
2642 2,
2643 TO_CHAR(NULL),
2644 MSI1.REPLENISH_TO_ORDER_FLAG) -
2645 MRP_FLOW_SCHEDULE_UTIL.GET_RESERVATION_QUANTITY(SL1.SHIP_FROM_ORG_ID,
2646 SL1.INVENTORY_ITEM_ID,
2647 SL1.LINE_ID,
2648 MSI1.REPLENISH_TO_ORDER_FLAG)),
2649 0) order_quantity,
2650 SL1.Project_Id,
2651 SL1.Task_Id,
2652 sl1.demand_class_code demand_class,
2653 sl1.end_item_unit_number,
2654 msi1.replenish_to_order_flag,
2655 msi1.build_in_wip_flag,
2656 MRP_FLOW_SCHEDULE_UTIL.GET_ROUTING_DESIGNATOR(SL1.INVENTORY_ITEM_ID,
2657 SL1.SHIP_FROM_ORG_ID,
2658 WL.LINE_ID) alternate_routing_designator
2659 FROM
2660 OE_ORDER_LINES_ALL SL1,
2661 MTL_SYSTEM_ITEMS_KFV MSI1,
2662 WIP_LINES WL,
2663 (select sl2.line_id,
2664 decode((select 1
2665 from oe_order_holds_all oh
2666 where oh.header_id = sl2.header_id
2667 and rownum = 1
2668 and oh.released_flag = 'N'),
2669 null,
2670 0,
2671 decode(sl2.ato_line_id,
2672 null,
2673 mrp_flow_schedule_util.check_holds(sl2.header_id,
2674 sl2.line_id,
2675 'OEOL',
2676 'LINE_SCHEDULING'),
2677 mrp_flow_schedule_util.check_holds(sl2.header_id,
2678 sl2.line_id,
2679 null,
2680 null))) hold
2681 from oe_order_lines_all sl2) line_holds,
2682 (select sl2.line_id,
2683 CTO_WIP_WORKFLOW_API_PK.workflow_build_status(sl2.LINE_ID) status
2684 from oe_order_lines_all sl2) line_build
2685 WHERE
2686 line_build.line_id = sl1.line_id
2687 AND 1 = decode(MSI1.REPLENISH_TO_ORDER_FLAG, 'N', 1, line_build.status)
2688 AND MSI1.BUILD_IN_WIP_FLAG = 'Y'
2689 AND MSI1.PICK_COMPONENTS_FLAG = 'N'
2690 AND MSI1.BOM_ITEM_TYPE = 4
2691 AND MSI1.ORGANIZATION_ID = SL1.SHIP_FROM_ORG_ID
2692 AND MSI1.INVENTORY_ITEM_ID = SL1.INVENTORY_ITEM_ID
2693 AND SL1.ORDERED_QUANTITY > 0
2694 AND SL1.VISIBLE_DEMAND_FLAG = 'Y'
2695 AND SL1.OPEN_FLAG = 'Y'
2696 AND SL1.ITEM_TYPE_CODE in ('STANDARD', 'CONFIG', 'INCLUDED', 'OPTION')
2697 AND OE_INSTALL.GET_ACTIVE_PRODUCT = 'ONT'
2698 AND wl.organization_id = sl1.ship_from_org_id
2699 AND wl.line_id in (select line_id
2700 from bom_operational_routings bor2
2701 where bor2.assembly_item_id = sl1.inventory_item_id
2702 and bor2.organization_id = sl1.ship_from_org_id
2703 and bor2.cfm_routing_flag = 1)
2704 AND SL1.SHIPPED_QUANTITY is NULL
2705 and sl1.line_id = line_holds.line_id
2706 and line_holds.hold = 0
2707 AND NVL(SL1.FULFILLED_FLAG, 'N') <> 'Y'
2708 ) so_orders
2709 WHERE line_id = p_line_id
2710 AND organization_id = p_organization_id
2711 AND order_quantity > 0
2712 /* AND unscheduled_order_option = p_unscheduled_order_type */
2713 AND order_date >= p_demand_start_date
2714 AND order_date <= p_demand_end_date
2715 AND ((p_primary_routing = 1 /* Bug 2906442 */
2716 and alternate_routing_designator is null)
2717 or
2718 p_primary_routing = 2 );
2719
2720
2721 CURSOR C1_PO IS
2722 SELECT
2723 row_id,
2724 demand_class,
2725 demand_source_delivery,
2726 demand_source_header_id,
2727 demand_source_line,
2728 demand_source_type,
2729 order_quantity,
2730 inventory_item_id,
2731 project_id,
2732 order_date,
2733 task_id,
2734 end_item_unit_number,
2735 replenish_to_order_flag,
2736 build_in_wip_flag
2737 FROM
2738 (
2739 SELECT MR1.ROWID row_id,
2740 MR1.ORGANIZATION_ID,
2741 MR1.INVENTORY_ITEM_ID,
2742 mr1.demand_class,
2743 100 demand_source_type,
2744 null DEMAND_SOURCE_HEADER_ID,
2745 TO_CHAR(MR1.TRANSACTION_ID) DEMAND_SOURCE_LINE,
2746 null demand_source_delivery,
2747 WL.LINE_ID,
2748 NVL(MR1.FIRM_DATE, MR1.NEW_SCHEDULE_DATE) order_date,
2749 GREATEST((NVL(MR1.FIRM_QUANTITY, MR1.NEW_ORDER_QUANTITY) -
2750 MRP_FLOW_SCHEDULE_UTIL.GET_FLOW_QUANTITY(TO_CHAR(MR1.TRANSACTION_ID),
2751 100,
2752 NULL,
2753 NULL)),
2754 0) order_quantity,
2755 MR1.PROJECT_ID,
2756 MR1.TASK_ID,
2757 MR1.END_ITEM_UNIT_NUMBER,
2758 KFV.REPLENISH_TO_ORDER_FLAG,
2759 KFV.BUILD_IN_WIP_FLAG,
2760 MRP_FLOW_SCHEDULE_UTIL.GET_ROUTING_DESIGNATOR(MR1.INVENTORY_ITEM_ID,
2761 MR1.ORGANIZATION_ID,
2762 WL.LINE_ID) alternate_routing_designator
2763 FROM MTL_SYSTEM_ITEMS_B KFV,
2764 MRP_SYSTEM_ITEMS RSI1,
2765 MRP_PLANS MP1,
2766 MRP_RECOMMENDATIONS MR1,
2767 WIP_LINES WL
2768 WHERE MP1.PLAN_COMPLETION_DATE IS NOT NULL
2769 AND MP1.DATA_COMPLETION_DATE IS NOT NULL
2770 AND MP1.COMPILE_DESIGNATOR = MR1.COMPILE_DESIGNATOR
2771 AND (MP1.ORGANIZATION_ID = MR1.ORGANIZATION_ID OR
2772 (MP1.ORGANIZATION_ID IN
2773 (SELECT ORGANIZATION_ID
2774 FROM MRP_PLAN_ORGANIZATIONS
2775 WHERE COMPILE_DESIGNATOR = MR1.COMPILE_DESIGNATOR
2776 AND PLANNED_ORGANIZATION = MR1.ORGANIZATION_ID)))
2777 AND MR1.ORGANIZATION_ID = MR1.SOURCE_ORGANIZATION_ID
2778 AND KFV.INVENTORY_ITEM_ID = RSI1.INVENTORY_ITEM_ID
2779 AND KFV.ORGANIZATION_ID = RSI1.ORGANIZATION_ID
2780 AND NVL(KFV.RELEASE_TIME_FENCE_CODE, -1) <> 6 /* KANBAN ITEM */
2781 AND MR1.ORDER_TYPE = 5 /* PLANNED ORDER */
2782 AND MR1.ORGANIZATION_ID = RSI1.ORGANIZATION_ID
2783 AND MR1.COMPILE_DESIGNATOR = RSI1.COMPILE_DESIGNATOR
2784 AND MR1.INVENTORY_ITEM_ID = RSI1.INVENTORY_ITEM_ID
2785 AND MR1.COMPILE_DESIGNATOR =
2786 (SELECT DESIGNATOR
2787 FROM MRP_DESIGNATORS_VIEW
2788 WHERE PRODUCTION = 1
2789 AND ORGANIZATION_ID = MP1.ORGANIZATION_ID
2790 AND DESIGNATOR = MR1.COMPILE_DESIGNATOR)
2791 AND RSI1.BUILD_IN_WIP_FLAG = 1 /* YES */
2792 AND RSI1.BOM_ITEM_TYPE = 4
2793 AND (RSI1.IN_SOURCE_PLAN = 2 OR RSI1.IN_SOURCE_PLAN IS NULL)
2794 AND wl.organization_id = MR1.ORGANIZATION_ID
2795 AND wl.line_id in (select line_id
2796 from bom_operational_routings bor2
2797 where bor2.assembly_item_id = MR1.INVENTORY_ITEM_ID
2798 and bor2.organization_id = MR1.ORGANIZATION_ID
2799 and bor2.cfm_routing_flag = 1)
2800 ) po_orders
2801 WHERE line_id = p_line_id
2802 AND organization_id = p_organization_id
2803 AND order_quantity > 0
2804 /* AND unscheduled_order_option = p_unscheduled_order_type */
2805 AND order_date >= p_demand_start_date
2806 AND order_date <= p_demand_end_date
2807 AND ((p_primary_routing = 1 /* Bug 2906442 */
2808 and alternate_routing_designator is null)
2809 or
2810 p_primary_routing = 2 );
2811
2812 CURSOR C2 IS
2813 SELECT
2814 wip_entities_s.nextval
2815 FROM dual;
2816
2817 BEGIN
2818
2819 x_created_count := 0;
2820 x_lock_count := 0;
2821 l_return_status := FND_API.G_RET_STS_SUCCESS;
2822
2823
2824 l_line_id := p_LINE_ID;
2825 l_organization_id := p_ORGANIZATION_ID;
2826 l_schedule_group_id := p_SCHEDULE_GROUP_ID;
2827
2828 -- Set the status to 3 for to be scheduled
2829 l_scheduled_flag := 3;
2830
2831 MRP_WFS_Form_Flow_Schedule.get_default_dff
2832 (
2833 l_return_status,
2834 l_attribute1,
2835 l_attribute2,
2836 l_attribute3,
2837 l_attribute4,
2838 l_attribute5,
2839 l_attribute6,
2840 l_attribute7,
2841 l_attribute8,
2842 l_attribute9,
2843 l_attribute10,
2844 l_attribute11,
2845 l_attribute12,
2846 l_attribute13,
2847 l_attribute14,
2848 l_attribute15);
2849
2850 /* OPEN C1; */
2851 if( p_unscheduled_order_type = 1 ) then /* sales order */
2852 OPEN C1_SO;
2853 else
2854 OPEN C1_PO;
2855 end if;
2856
2857 LOOP
2858
2859 if( p_unscheduled_order_type = 1 ) then
2860 FETCH C1_SO INTO
2861 l_rowid,
2862 l_demand_class,
2863 l_demand_source_delivery,
2864 l_demand_source_header_id,
2865 l_demand_source_line,
2866 l_demand_source_type,
2867 l_planned_quantity,
2868 l_primary_item_id,
2869 l_project_id,
2870 l_scheduled_completion_date,
2871 l_task_id,
2872 l_end_item_unit_number,
2873 l_replenish_to_order_flag,
2874 l_build_in_wip_flag;
2875
2876 EXIT WHEN C1_SO%NOTFOUND;
2877 else
2878 FETCH C1_PO INTO
2879 l_rowid,
2880 l_demand_class,
2881 l_demand_source_delivery,
2882 l_demand_source_header_id,
2883 l_demand_source_line,
2884 l_demand_source_type,
2885 l_planned_quantity,
2886 l_primary_item_id,
2887 l_project_id,
2888 l_scheduled_completion_date,
2889 l_task_id,
2890 l_end_item_unit_number,
2891 l_replenish_to_order_flag,
2892 l_build_in_wip_flag;
2893
2894 EXIT WHEN C1_PO%NOTFOUND;
2895 end if;
2896
2897 IF (p_SCHEDULE_RULE_ID <> -1 AND p_RULE_USER_DEFINED = 1) THEN
2898 MRP_CUSTOM_LINE_SCHEDULE.Is_Valid_Demand
2899 (
2900 1.0,
2901 p_SCHEDULE_RULE_ID,
2902 p_LINE_ID,
2903 p_ORGANIZATION_ID,
2904 l_demand_source_type,
2905 l_demand_source_line,
2906 l_valid_demand,
2907 l_return_status,
2908 l_msg_count,
2909 l_msg_data
2910 );
2911
2912 -- Check return status
2913 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2914 x_return_status := l_return_status;
2915 x_msg_count := l_msg_count;
2916 x_msg_data := l_msg_data;
2917
2918 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2919 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2920 ELSE
2921 RAISE FND_API.G_EXC_ERROR;
2922 END IF;
2923 END IF;
2924
2925 ELSE
2926 l_valid_demand := TRUE;
2927 END IF;
2928
2929 IF l_valid_demand THEN
2930 -- Planned orders
2931 IF p_unscheduled_order_type = 2 THEN
2932 BEGIN
2933 -- Lock the planned order rows so we don't get duplicate
2934 -- flow schedules
2935 SELECT rowid
2936 INTO l_rowid
2937 FROM mrp_recommendations
2938 WHERE rowid = l_rowid
2939 FOR UPDATE of quantity_in_process NOWAIT;
2940
2941 EXCEPTION
2942 WHEN NO_DATA_FOUND THEN
2943 NULL;
2944 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
2945 x_lock_count := x_lock_count + 1;
2946 END;
2947 END IF;
2948
2949 OPEN C2;
2950 FETCH C2 INTO l_wip_entity_id;
2951 CLOSE C2;
2952
2953 --l_schedule_number := nvl(substr(FND_PROFILE.value('WIP_JOB_PREFIX'),1,20), 'X')
2954 -- || to_char(l_wip_entity_id);
2955
2956 --Bug 6122344
2957 l_schedule_number := 'FLM-INTERNAL' || to_char(l_wip_entity_id);
2958
2959 MRP_WFS_Form_Flow_Schedule.Create_Flow_Schedule
2960 (
2961 x_return_status => l_return_status,
2962 x_msg_count => l_msg_count,
2963 x_msg_data => l_msg_data,
2964 p_alternate_bom_designator => FND_API.G_MISS_CHAR,
2965 p_alternate_routing_desig => FND_API.G_MISS_CHAR,
2966 p_attribute1 => l_attribute1,
2967 p_attribute10 => l_attribute10,
2968 p_attribute11 => l_attribute11,
2969 p_attribute12 => l_attribute12,
2970 p_attribute13 => l_attribute13,
2971 p_attribute14 => l_attribute14,
2972 p_attribute15 => l_attribute15,
2973 p_attribute2 => l_attribute2,
2974 p_attribute3 => l_attribute3,
2975 p_attribute4 => l_attribute4,
2976 p_attribute5 => l_attribute5,
2977 p_attribute6 => l_attribute6,
2978 p_attribute7 => l_attribute7,
2979 p_attribute8 => l_attribute8,
2980 p_attribute9 => l_attribute9,
2981 p_attribute_category => FND_API.G_MISS_CHAR,
2982 p_bom_revision => FND_API.G_MISS_CHAR,
2983 p_bom_revision_date => FND_API.G_MISS_DATE,
2984 p_build_sequence => FND_API.G_MISS_NUM,
2985 p_class_code => FND_API.G_MISS_CHAR,
2986 p_completion_locator_id => FND_API.G_MISS_NUM,
2987 p_completion_subinventory => FND_API.G_MISS_CHAR,
2988 p_created_by => FND_API.G_MISS_NUM,
2989 p_creation_date => FND_API.G_MISS_DATE,
2990 p_date_closed => FND_API.G_MISS_DATE,
2991 p_demand_class => l_demand_class,
2992 p_demand_source_delivery => l_demand_source_delivery,
2993 p_demand_source_header_id => l_demand_source_header_id,
2994 p_demand_source_line => l_demand_source_line,
2995 p_demand_source_type => l_demand_source_type,
2996 p_last_updated_by => FND_API.G_MISS_NUM,
2997 p_last_update_date => FND_API.G_MISS_DATE,
2998 p_last_update_login => FND_API.G_MISS_NUM,
2999 p_line_id => l_line_id,
3000 p_material_account => FND_API.G_MISS_NUM,
3001 p_material_overhead_account => FND_API.G_MISS_NUM,
3002 p_material_variance_account => FND_API.G_MISS_NUM,
3003 p_mps_net_quantity => FND_API.G_MISS_NUM,
3004 p_mps_scheduled_comp_date => FND_API.G_MISS_DATE,
3005 p_organization_id => l_organization_id,
3006 p_outside_processing_acct => FND_API.G_MISS_NUM,
3007 p_outside_proc_var_acct => FND_API.G_MISS_NUM,
3008 p_overhead_account => FND_API.G_MISS_NUM,
3009 p_overhead_variance_account => FND_API.G_MISS_NUM,
3010 p_planned_quantity => l_planned_quantity,
3011 p_primary_item_id => l_primary_item_id,
3012 p_program_application_id => FND_API.G_MISS_NUM,
3013 p_program_id => FND_API.G_MISS_NUM,
3014 p_program_update_date => FND_API.G_MISS_DATE,
3015 p_project_id => l_project_id,
3016 p_quantity_completed => FND_API.G_MISS_NUM,
3017 p_request_id => USERENV('SESSIONID'), -- bug 4529167
3018 p_resource_account => FND_API.G_MISS_NUM,
3019 p_resource_variance_account => FND_API.G_MISS_NUM,
3020 p_routing_revision => FND_API.G_MISS_CHAR,
3021 p_routing_revision_date => FND_API.G_MISS_DATE,
3022 p_scheduled_completion_date => l_scheduled_completion_date,
3023 p_scheduled_flag => l_scheduled_flag,
3024 p_scheduled_start_date => FND_API.G_MISS_DATE,
3025 p_schedule_group_id => l_schedule_group_id,
3026 p_schedule_number => l_schedule_number,
3027 p_status => FND_API.G_MISS_NUM,
3028 p_std_cost_adjustment_acct => FND_API.G_MISS_NUM,
3029 p_task_id => l_task_id,
3030 p_wip_entity_id => l_wip_entity_id,
3031 p_end_item_unit_number => l_end_item_unit_number,
3032 p_quantity_scrapped => FND_API.G_MISS_NUM,
3033 x_wip_entity_id => l_wip_entity_id2
3034 );
3035
3036 -- Check return status
3037 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3038 x_return_status := l_return_status;
3039 x_msg_count := l_msg_count;
3040 x_msg_data := l_msg_data;
3041
3042 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3043 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3044 ELSE
3045 RAISE FND_API.G_EXC_ERROR;
3046 END IF;
3047 END IF;
3048
3049 --fix bug#3235193
3050 --Description: move the CTO create API call to a centralized place in
3051 -- MRPSLSWB.fmb - pu MRPSLSWB - set_schedule_number()
3052 -- comment CTO create API call below
3053 -- For config item linked to SO, call CTO create API to notify workflow
3054 /*IF (l_replenish_to_order_flag = 'Y' AND
3055 l_build_in_wip_flag = 'Y' AND
3056 l_demand_source_line IS NOT NULL AND
3057 l_demand_source_type = 2) THEN
3058 CTO_WIP_WORKFLOW_API_PK.flow_creation
3059 (
3060 to_number(l_demand_source_line),
3061 l_return_status,
3062 l_msg_count,
3063 l_msg_data);
3064 END IF;*/
3065 --end of fix bug#3235193
3066
3067 x_created_count := x_created_count + 1;
3068
3069 END IF;
3070
3071 END LOOP;
3072
3073 /* CLOSE C1; */
3074 if(p_unscheduled_order_type = 1 ) then
3075 CLOSE C1_SO;
3076 else
3077 CLOSE C1_PO;
3078 end if;
3079
3080 x_return_status := l_return_status;
3081
3082 -- Get message count and data
3083
3084 FND_MSG_PUB.Count_And_Get
3085 ( p_count => x_msg_count
3086 ,p_data => x_msg_data
3087 );
3088
3089 EXCEPTION
3090
3091 WHEN OTHERS THEN
3092
3093 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3094 THEN
3095 FND_MSG_PUB.Add_Exc_Msg
3096 ( G_PKG_NAME
3097 ,'Create_Schedules'
3098 );
3099 END IF;
3100
3101 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3102
3103 -- Get message count and data
3104
3105 FND_MSG_PUB.Count_And_Get
3106 (
3107 p_count => x_msg_count
3108 ,p_data => x_msg_data
3109 );
3110
3111 END Create_Raw_Flow_Schedules;
3112
3113
3114 END MRP_WFS_Form_Flow_Schedule;