[Home] [Help]
PACKAGE BODY: APPS.GMD_VARIANT_TIME_POINT_GRP
Source
1 PACKAGE BODY GMD_VARIANT_TIME_POINT_GRP AS
2 /* $Header: GMDGSVTB.pls 120.2.12020000.2 2012/10/19 03:08:29 guobxu ship $ */
3
4 --
5 -- To modify this template, edit file PKGSPEC.TXT in TEMPLATE
6 -- directory of SQL Navigator
7 --
8 -- Purpose: Briefly explain the functionality of the package
9 --
10 -- MODIFICATION HISTORY
11 -- Person Date Comments
12 -- --------- ------ ------------------------------------------
13 -- Enter package declarations as shown below
14
15 l_variant_no NUMBER:=-1;
16
17 function get_max_variant_no(p_ss_id NUMBER) return NUMBER;
18
19 PROCEDURE create_variants_time_points
20 ( p_stability_study IN NUMBER,
21 p_material_source_id IN NUMBER,
22 x_return_status OUT NOCOPY VARCHAR2) IS
23
24
25 cursor c_stab_study(p_stability_study_id NUMBER) is
26 select packages_cnt,
27 base_spec_id ,
28 storage_plan_id,
29 storage_conditions_cnt ,
30 scheduled_start_date,
31 actual_start_date,
32 created_by
33 from gmd_stability_studies_b
34 where ss_id = p_stability_study_id
35 and delete_mark=0;
36
37
38 -- bug# 2962208.
39 -- For the variants generated by the system, the variant start date should be
40 -- defaulted to the variant material source yield date.If yield date is not present
41 -- take the Stability study schedule start date
42 -- include the yield date in the cursor.
43
44 -- JD Changed lot_no to lot_number and removed lot_id as not used.
45
46 cursor c_mat_source(p_ss_id number,
47 p_material_source_id NUMBER) is
48 select ss_id,
49 source_id,
50 batch_id,
51 recipe_id ,
52 lot_number ,
53 yield_date
54 from gmd_ss_material_sources
55 where delete_mark=0
56 and ss_id = p_ss_id
57 and (p_material_source_id IS NULL
58 OR
59 source_id = p_material_source_id)
60 ;
61
62 l_return_status VARCHAR2(1);
63 l_package_cnt NUMBER;
64 l_scheduled_start_date Date; -- bug 14469494
65
66
67 BEGIN
68 x_return_status := FND_API.G_RET_STS_SUCCESS;
69
70 l_variant_no := get_max_variant_no(p_stability_study);
71
72
73
74
75
76 for l_stab_study in c_stab_study(p_stability_study) loop
77
78 --When p_material_source_id is null, only package_cnt has changed.
79 -- if gmd_stability_studies.package_cnt < no. of records in variants
80 -- make the variants records for difference.
81 if (p_material_source_id IS NULL) then
82 select max(cnt)
83 into l_package_cnt
84 from
85 (select count(*) cnt,
86 material_source_id,
87 storage_spec_id
88 from gmd_ss_variants a
89 where a.ss_id = p_stability_study
90 group by material_source_id, storage_spec_id);
91
92 l_package_cnt := l_stab_study.packages_cnt - l_package_cnt;
93
94 --dbms_output.put_line('the value of l_package_cnt is '||l_package_cnt);
95 --dbms_output.put_line('the value of l_stab_study.packages_cnt is '||l_stab_study.packages_cnt);
96 if l_package_cnt <= 0 then
97 --dbms_output.put_line('the No. of variants package cnt is greater then or equal to stability study package cnt');
98 exit;
99 end if;
100 end if;
101
102 if l_package_cnt IS NULL then
103 l_package_cnt := l_stab_study.packages_cnt;
104 end if;
105
106 for l_mat_source in c_mat_source(p_stability_study,
107 p_material_source_id) loop
108
109 -- bug# 2962208.Pass yield date.
110 --call insert to variants table. variant_id
111 -- bug14469494
112 l_scheduled_start_date := l_stab_study.scheduled_start_date;
113 if nvl(l_mat_source.yield_date, l_stab_study.scheduled_start_date-1) > l_stab_study.scheduled_start_date then
114 l_scheduled_start_date := l_mat_source.yield_date;
115 end if;
116
117 create_variants(p_stability_study,
118 l_package_cnt,
119 l_mat_source.source_id,
120 l_stab_study.storage_plan_id,
121 l_stab_study.base_spec_id,
122 l_scheduled_start_date,
123 l_stab_study.actual_start_date,
124 l_stab_study.created_by,
125 l_return_status);
126
127 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
128 RAISE FND_API.G_EXC_ERROR;
129 END IF;
130
131 end loop;
132 end loop;
133
134 EXCEPTION
135 WHEN OTHERS THEN
136 --dbms_output.put_line('GMD_VARIANT_TIME_POINT_GRP.CREATE_VARIANTS_TIME_POINTS');
137 --dbms_output.put_line(SUBSTR(SQLERRM,1,100));
138 GMD_API_PUB.Log_Message('GMD_API_ERROR',
139 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.CREATE_VARIANTS_TIME_POINTS',
140 'ERROR', SUBSTR(SQLERRM,1,100));
141 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
142
143 END create_variants_time_points;
144
145
146 procedure create_variants(p_ss_id NUMBER,
147 p_no_of_packages NUMBER,
148 p_material_source_id NUMBER,
149 p_storage_plan_id NUMBER,
150 p_base_spec_id NUMBER,
151 p_scheduled_start_date DATE,
152 p_actual_start_date DATE,
153 p_created_by NUMBER,
154 x_return_status OUT NOCOPY VARCHAR2) IS
155 cursor c_storage_plan(p_storage_plan_id number) is
156 select storage_spec_id ,
157 resources ,
158 storage_organization_id,
159 storage_subinventory,
160 storage_locator_id,
161 test_interval_plan_id ,
162 storage_plan_detail_id
163 from gmd_storage_plan_details
164 where storage_plan_id = p_storage_plan_id;
165
166 -- JD changed whse_code to storage_subinventory.
167 -- JD changed location to storage_locator_id.
168
169 l_variant_id NUMBER;
170 l_return_status VARCHAR2(1);
171
172 begin
173 x_return_status := FND_API.G_RET_STS_SUCCESS;
174
175
176 for package_counter in 1..p_no_of_packages loop
177 for l_storage_plan in c_storage_plan(p_storage_plan_id) loop
178
179 select gmd_qc_ss_variant_id_s.nextval
180 into l_variant_id
181 from dual;
182 l_variant_no := l_variant_no +1;
183
184 -- JD changed whse_code to storage_subinventory.
185 -- JD changed location to storage_locator_id.
186
187 insert into gmd_ss_variants
188 (variant_id,
189 variant_no,
190 ss_id,
191 material_source_id,
192 storage_plan_detail_id,
193 default_spec_id,
194 scheduled_start_date,
195 samples_per_time_point,
196 retained_samples,
197 storage_spec_id,
198 resources,
199 storage_organization_id, --INVCONV
200 storage_subinventory, --INVCONV
201 storage_locator_id, --INVCONV
202 storage_date,
203 delete_mark,
204 creation_date,
205 created_by,
206 last_updated_by,
207 last_update_date,
208 last_update_login)
209 values (l_variant_id,
210 l_variant_no,
211 p_ss_id,
212 p_material_source_id,
213 l_storage_plan.storage_plan_detail_id,
214 p_base_spec_id,
215 p_scheduled_start_date,
216 1,
217 0,
218 l_storage_plan.storage_spec_id,
219 l_storage_plan.resources,
220 l_storage_plan.storage_organization_id, --INVCONV
221 l_storage_plan.storage_subinventory, --INVCONV
222 l_storage_plan.storage_locator_id, --INVCONV
223 p_scheduled_start_date,
224 0,
225 sysdate,
226 p_created_by,
227 p_created_by,
228 sysdate,
229 p_created_by);
230
231
232 create_time_points(l_variant_id,
233 p_scheduled_start_date,
234 p_base_spec_id,
235 l_storage_plan.test_interval_plan_id,
236 p_actual_start_date,
237 1,
238 p_created_by,
239 l_return_status);
240
241 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
242 RAISE FND_API.G_EXC_ERROR;
243 END IF;
244
245 end loop;
246 end loop;
247 EXCEPTION
248 WHEN OTHERS THEN
249 --dbms_output.put_line('GMD_VARIANT_TIME_POINT_GRP.CREATE_VARIANTS');
250 --dbms_output.put_line(SUBSTR(SQLERRM,1,100));
251 GMD_API_PUB.Log_Message('GMD_API_ERROR',
252 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.CREATE_VARIANTS',
253 'ERROR', SUBSTR(SQLERRM,1,100));
254 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
255 end create_variants;
256
257 procedure create_time_points(p_variant_id NUMBER,
258 p_scheduled_start_date DATE,
259 p_base_spec_id NUMBER,
260 p_test_interval_plan_id NUMBER,
261 p_actual_date DATE,
262 p_samples_per_time_point NUMBER,
263 p_created_by NUMBER,
264 x_return_status OUT NOCOPY VARCHAR2) IS
265 cursor c_time_interval_plan(p_test_interval_plan_id number) is
266 select period_id, name ,
267 years_from_start ,
268 months_from_start ,
269 weeks_from_start ,
270 days_from_start ,
271 hours_from_start
272 from gmd_test_interval_plan_periods
273 where test_interval_plan_id = p_test_interval_plan_id
274 and nvl(exclude,'N') = 'N'
275 order by simulated_date;
276
277
278
279 l_test_interval_plan_id NUMBER;
280
281 begin
282 x_return_status := FND_API.G_RET_STS_SUCCESS;
283 if (p_test_interval_plan_id IS NULL) then
284 select a.test_interval_plan_id
285 into l_test_interval_plan_id
286 from gmd_storage_plan_details a,
287 gmd_ss_variants b
288 where a.storage_plan_detail_id = b.storage_plan_detail_id
289 and b.variant_id = p_variant_id
290 ;
291 else
292 l_test_interval_plan_id := p_test_interval_plan_id;
293 end if;
294
295 for l_time_interval_plan in c_time_interval_plan(l_test_interval_plan_id) loop
296 insert into gmd_ss_time_points
297 (
298 time_point_id,
299 name,
300 variant_id,
301 period_id ,
302 years_from_start,
303 months_from_start,
304 weeks_from_start,
305 days_from_start,
306 hours_from_start,
307 additional_ind,
308 spec_id,
309 scheduled_date,
310 --actual_date,
311 samples_per_time_point,
312 delete_mark,
313 creation_date,
314 created_by,
315 last_updated_by,
316 last_update_date,
317 last_update_login)
318 values
319 (gmd_qc_ss_time_point_id_s.nextval,
320 l_time_interval_plan.name,
321 p_variant_id,
322 l_time_interval_plan.period_id,
323 l_time_interval_plan.years_from_start,
324 l_time_interval_plan.months_from_start,
325 l_time_interval_plan.weeks_from_start,
326 l_time_interval_plan.days_from_start ,
327 l_time_interval_plan.hours_from_start,
328 'N',
329 p_base_spec_id,
330 ADD_MONTHS(p_scheduled_start_date,
331 ((NVL(l_time_interval_plan.years_from_start,0) * 12 )
332 + NVL(l_time_interval_plan.months_from_start,0)))
333 +((NVL(l_time_interval_plan.weeks_from_start,0) * 7 )
334 + NVL(l_time_interval_plan.days_from_start,0)
335 + (NVL(l_time_interval_plan.hours_from_start,0)/24)),
336 /* ADD_MONTHS(p_actual_date,
337 ((NVL(l_time_interval_plan.years_from_start,0) * 12 )
338 + NVL(l_time_interval_plan.months_from_start,0)))
339 +((NVL(l_time_interval_plan.weeks_from_start,0) * 7 )
340 + NVL(l_time_interval_plan.days_from_start,0)
341 + (NVL(l_time_interval_plan.hours_from_start,0)/24)),*/
342 p_samples_per_time_point,
343 0,
344 sysdate,
345 p_created_by,
346 p_created_by,
347 sysdate,
348 p_created_by);
349 end loop;
350 EXCEPTION
351 WHEN OTHERS THEN
352 --dbms_output.put_line('GMD_VARIANT_TIME_POINT_GRP.CREATE_TIME_POINTS');
353 --dbms_output.put_line(SUBSTR(SQLERRM,1,100));
354
355 GMD_API_PUB.Log_Message('GMD_API_ERROR',
356 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.CREATE_TIME_POINTS',
357 'ERROR', SUBSTR(SQLERRM,1,100));
358 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
359 end create_time_points;
360
361
362 PROCEDURE delete_variants
363 (p_material_source_id IN NUMBER,
364 x_return_status OUT NOCOPY VARCHAR2) IS
365 Cursor c_ss_id is
366 select ss_id
367 from gmd_ss_variants
368 where material_source_id = p_material_source_id;
369 l_return_status VARCHAR2(1);
370 l_ss_id NUMBER;
371
372 -- mahesh.
373 CURSOR cr_variants IS
374 SELECT variant_id from gmd_ss_variants
375 where material_source_id = p_material_source_id
376 for update of variant_id NOWAIT;
377
378 CURSOR cr_time_points IS
379 SELECT time_point_id from gmd_ss_time_points
380 where variant_id in (select variant_id
381 from gmd_ss_variants
382 where material_source_id = p_material_source_id)
383 for update of time_point_id NOWAIT ;
384
385 record_lock EXCEPTION ;
386 pragma exception_init(record_lock,-00054) ;
387
388
389
390 begin
391
392 x_return_status := FND_API.G_RET_STS_SUCCESS;
393
394 OPEN c_ss_id;
395 FETCH c_ss_id into l_ss_id;
396 CLOSE c_ss_id;
397
398 -- lock the variants and time points before deleting.
399 -- mahesh
400 OPEN cr_variants ;
401 CLOSE cr_variants ;
402
403 OPEN cr_time_points ;
404 CLOSE cr_time_points ;
405
406 delete gmd_ss_time_points
407 where variant_id in (select variant_id
408 from gmd_ss_variants
409 where material_source_id = p_material_source_id);
410 delete gmd_ss_variants
411 where material_source_id = p_material_source_id;
412
413 update_variant_seq(l_ss_id, l_return_status);
414
415 EXCEPTION
416 WHEN RECORD_LOCK THEN -- mahesh
417 IF cr_variants%ISOPEN THEN
418 CLOSE cr_variants;
419 END IF;
420 IF cr_time_points%ISOPEN THEN
421 CLOSE cr_time_points;
422 END IF;
423 GMD_API_PUB.Log_Message('GMD_SS_VARIANTS_LOCKED');
424 x_return_status := FND_API.G_RET_STS_ERROR ;
425 WHEN OTHERS THEN
426 GMD_API_PUB.Log_Message('GMD_API_ERROR',
427 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.DELETE_VARIANTS',
428 'ERROR', SUBSTR(SQLERRM,1,100));
429 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
430 end delete_variants;
431
432
433
434 PROCEDURE delete_time_points
435 (p_variant_id IN NUMBER,
436 x_return_status OUT NOCOPY VARCHAR2) IS
437 Cursor c_ss_id is
438 select ss_id
439 from gmd_ss_material_sources
440 where ss_id = p_variant_id;
441 l_return_status VARCHAR2(1);
442 l_ss_id NUMBER;
443
444 -- mahesh.
445
446
447 CURSOR cr_time_points IS
448 SELECT time_point_id from gmd_ss_time_points
449 where variant_id = p_variant_id
450 for update of time_point_id NOWAIT ;
451
452 record_lock EXCEPTION ;
453 pragma exception_init(record_lock,-00054) ;
454
455
456
457 begin
458
459 x_return_status := FND_API.G_RET_STS_SUCCESS;
460
461 -- lock the variants and time points before deleting.
462 -- mahesh
463
464
465 OPEN cr_time_points ;
466 CLOSE cr_time_points ;
467
468 delete gmd_ss_time_points
469 where variant_id = p_variant_id;
470
471
472
473 EXCEPTION
474 WHEN RECORD_LOCK THEN -- mahesh
475
476 IF cr_time_points%ISOPEN THEN
477 CLOSE cr_time_points;
478 END IF;
479 GMD_API_PUB.Log_Message('GMD_SS_VARIANTS_LOCKED');
480 x_return_status := FND_API.G_RET_STS_ERROR ;
481 WHEN OTHERS THEN
482 GMD_API_PUB.Log_Message('GMD_API_ERROR',
483 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.DELETE_TIME_POINTS',
484 'ERROR', SUBSTR(SQLERRM,1,100));
485 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
486 end delete_time_points;
487
488
489 function get_max_variant_no(p_ss_id NUMBER) RETURN NUMBER IS
490 l_variant_num NUMBER;
491 begin
492 select nvl(max(a.variant_no),0)
493 into l_variant_num
494 from gmd_ss_variants a
495 where a.ss_id = p_ss_id
496 ;
497
498 return l_variant_num;
499 end get_max_variant_no;
500
501 PROCEDURE update_variant_seq
502 (ss_id IN NUMBER,
503 x_return_status OUT NOCOPY VARCHAR2) is
504 cursor c_variant_no (p_ss_id NUMBER) is
505 select variant_id,variant_no, rownum
506 from gmd_ss_variants
507 where ss_id = p_ss_id
508 order by variant_no;
509 begin
510 for l_variant_no in c_variant_no(ss_id) loop
511 update gmd_ss_variants
512 set variant_no = l_variant_no.rownum
513 where variant_id = l_variant_no.variant_id;
514 end loop;
515 EXCEPTION
516 WHEN OTHERS THEN
517 GMD_API_PUB.Log_Message('GMD_API_ERROR',
518 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.UPDATE_VARIANT_SEQ',
519 'ERROR', SUBSTR(SQLERRM,1,100));
520 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
521 end update_variant_seq;
522
523
524 PROCEDURE update_base_spec( p_ss_id IN NUMBER,
525 p_base_spec_id IN NUMBER,
526 x_return_status OUT NOCOPY VARCHAR2 ) IS
527 -- mahesh.
528 CURSOR cr_variants IS
529 SELECT default_spec_id from gmd_ss_variants
530 where ss_id = p_ss_id
531 for update of default_spec_id NOWAIT;
532
533 CURSOR cr_time_points IS
534 SELECT spec_id from gmd_ss_time_points
535 where variant_id in (select variant_id
536 from gmd_ss_variants
537 where ss_id = p_ss_id)
538 for update of spec_id NOWAIT ;
539
540 record_lock EXCEPTION ;
541 pragma exception_init(record_lock,-00054) ;
542 REQ_FIELDS_MISSING EXCEPTION;
543
544 BEGIN
545
546 x_return_status := FND_API.G_RET_STS_SUCCESS;
547
548 IF p_ss_id IS NULL OR p_base_spec_id IS NULL THEN
549 RAISE REQ_FIELDS_MISSING ;
550 END IF;
551
552 -- lock the variants and time points before updating.
553 -- mahesh
554 OPEN cr_variants ;
555 CLOSE cr_variants ;
556
557 OPEN cr_time_points ;
558 CLOSE cr_time_points ;
559
560 UPDATE gmd_ss_variants
561 SET default_spec_id = p_base_spec_id
562 WHERE ss_id = p_ss_id ;
563
564 UPDATE gmd_ss_time_points
565 SET spec_id = p_base_spec_id
566 WHERE variant_id in (select variant_id from gmd_ss_variants
567 where ss_id = p_ss_id) ;
568
569 EXCEPTION
570 WHEN RECORD_LOCK THEN -- mahesh
571 IF cr_variants%ISOPEN THEN
572 CLOSE cr_variants;
573 END IF;
574 IF cr_time_points%ISOPEN THEN
575 CLOSE cr_time_points;
576 END IF;
577 GMD_API_PUB.Log_Message('GMD_SS_VARIANTS_LOCKED');
578 x_return_status := FND_API.G_RET_STS_ERROR ;
579 WHEN REQ_FIELDS_MISSING THEN
580 gmd_api_pub.log_message('GMD_REQ_FIELD_MIS','PACKAGE','GMD_VARIANT_TIME_POINT_GRP.UPDATE_BASE_SPEC');
581 x_return_status := FND_API.G_RET_STS_ERROR ;
582 WHEN OTHERS THEN
583 GMD_API_PUB.Log_Message('GMD_API_ERROR',
584 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.UPDATE_BASE_SPEC','ERROR', SUBSTR(SQLERRM,1,100));
585 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
586 END update_base_spec ;
587
588 PROCEDURE update_scheduled_start_date
589 (p_ss_id IN NUMBER,
590 p_scheduled_start_date IN DATE,
591 x_return_status OUT NOCOPY VARCHAR2 ) IS
592 -- mahesh.
593 CURSOR cr_variants IS
594 SELECT scheduled_start_date from gmd_ss_variants
595 where ss_id = p_ss_id
596 for update of scheduled_start_date NOWAIT;
597
598 CURSOR cr_time_points IS
599 SELECT spec_id from gmd_ss_time_points
600 where variant_id in (select variant_id
601 from gmd_ss_variants
602 where ss_id = p_ss_id)
603 for update of spec_id NOWAIT ;
604
605 record_lock EXCEPTION ;
606 pragma exception_init(record_lock,-00054) ;
607
608 REQ_FIELDS_MISSING EXCEPTION;
609
610 BEGIN
611
612 x_return_status := FND_API.G_RET_STS_SUCCESS;
613
614 IF p_ss_id IS NULL OR p_scheduled_start_date IS NULL THEN
615 RAISE REQ_FIELDS_MISSING ;
616 END IF;
617
618 -- lock the variants and time points before deleting.
619 -- mahesh
620 OPEN cr_variants ;
621 CLOSE cr_variants ;
622
623 OPEN cr_time_points ;
624 CLOSE cr_time_points ;
625
626 UPDATE gmd_ss_variants
627 SET scheduled_start_date = p_scheduled_start_date
628 WHERE ss_id = p_ss_id ;
629
630 UPDATE gmd_ss_time_points
631 SET scheduled_date = ADD_MONTHS(p_scheduled_start_date,((nvl(years_from_start,0) * 12 ) + nvl(months_from_start,0))) +
632 ((nvl(weeks_from_start,0) * 7 ) + nvl(days_from_start,0) + (nvl(hours_from_start,0)/24))
633 WHERE variant_id in (select variant_id from gmd_ss_variants
634 where ss_id = p_ss_id) ;
635
636
637
638 EXCEPTION
639 WHEN RECORD_LOCK THEN -- mahesh
640 IF cr_variants%ISOPEN THEN
641 CLOSE cr_variants;
642 END IF;
643 IF cr_time_points%ISOPEN THEN
644 CLOSE cr_time_points;
645 END IF;
646 GMD_API_PUB.Log_Message('GMD_SS_VARIANTS_LOCKED');
647 x_return_status := FND_API.G_RET_STS_ERROR ;
648 WHEN REQ_FIELDS_MISSING THEN
649 gmd_api_pub.log_message('GMD_REQ_FIELD_MIS','PACKAGE','GMD_VARIANT_TIME_POINT_GRP.UPDATE_SCHEDULED_START_DATE');
650 x_return_status := FND_API.G_RET_STS_ERROR ;
651 WHEN OTHERS THEN
652 GMD_API_PUB.Log_Message('GMD_API_ERROR',
653 'PACKAGE','GMD_VARIANT_TIME_POINT_GRP.UPDATE_SCHEDULED_START_DATE','ERROR', SUBSTR(SQLERRM,1,100));
654 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
655
656 END update_scheduled_start_date;
657
658
659 PROCEDURE submit_srs_request(p_variant_id IN NUMBER,
660 p_time_point_id IN NUMBER,
661 p_conc_id OUT NOCOPY NUMBER ) is
662 BEGIN
663 p_conc_id := FND_REQUEST.SUBMIT_REQUEST('GMD', 'SAMPLE_LABEL_GEN_STBL', '', '', FALSE,
664 '', '', '',',',p_variant_id, p_time_point_id);
665 END submit_srs_request;
666 END GMD_VARIANT_TIME_POINT_GRP; -- Package body