DBA Data[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