DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_RESUB_PRIVATE

Source


1 package body FND_RESUB_PRIVATE as
2 /* $Header: AFCPRSPB.pls 120.5 2005/12/27 11:29:23 tkamiya ship $ */
3 
4 
5 
6   -- PRIVATE VARIABLES
7   --
8 
9         P_nargs			number		:= null;
10 	P_ProgName		varchar2(30)    := null;
11         P_ProgAppName		varchar2(30)    := null;
12         P_ReqStartDate		date		:= null;
13         P_reqid			number		:= null;
14         P_delta			number		:= null;
15         P_count			integer         := null;
16         P_increment_flag	varchar2(1)     :='N';
17         P_sch_type		varchar2(1)     := null;
18 	P_sch_app_id		number		:= null;
19         P_sch_id                number          := null;
20         P_sch_name		VARCHAR2(20)	:= null;
21         P_errbuf		varchar2(240)	:= null;
22         P_errnum		number		:= 0;
23         P_inc_proc		varchar2(61)    := null;
24         P_fsegs			fnd_dflex.segments_dr;
25         P_rsub_int              number          := null;  -- Resubmit_Interval
26         P_rsub_int_unit_code    varchar2(30)    := null;  -- Resubmit_Interval_Unit_Code
27         P_IncrOpt               varchar2(1)     :='S'; -- profile: CONC_DATE_INCREMENT_OPTION
28 
29         TYPE t_arglist IS varray(100) OF VARCHAR2(240);
30         p_args	t_arglist := t_arglist(CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
31                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
32                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
33                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
34                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
35                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
36                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
37                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
38                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0),
39                                        CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0), CHR(0));
40 
41 
42 ----------------------------------------------------------------------
43 ---           PRIVATE PROCEDURES
44 ----------------------------------------------------------------------
45 
46 procedure RETURN_INFO(errcode in number, errbuf in varchar2) is
47 
48 begin
49   P_errbuf := errbuf;
50   P_errnum := errcode;
51 end;
52 
53 procedure set_resub_delta (old_req_start  IN  date) is
54 
55 begin
56   if (P_IncrOpt = 'S') then
57 
58      P_delta := P_ReqStartDate - old_req_start;
59 
60   else
61 
62      if (P_rsub_int_unit_code = 'MINUTES') then
63         P_delta := P_rsub_int/1440;
64      elsif (P_rsub_int_unit_code = 'HOURS') then
65         P_delta := P_rsub_int/24;
66      else -- P_rsub_int_unit_code = 'DAYS'
67         P_delta := P_rsub_int;
68      end if;
69 
70   end if;
71 
72 end;
73 
74 
75 
76 procedure execute_increment_proc is
77 
78    cur_dyn INTEGER;
79    row_dyn INTEGER;
80 
81 begin
82 
83    begin
84 
85    cur_dyn := dbms_sql.open_cursor;
86    exception
87         when others then
88            P_errnum := -1;
89 	   P_errbuf := 'dbms_sql.open_cursor failed';
90            return;
91    end;
92 
93    begin
94         /* choosing V7 as language flag as less likely to cause problems */
95         dbms_sql.parse(cur_dyn, 'begin ' || P_inc_proc || '; end;',dbms_sql.V7);
96    exception
97         when others then
98            P_errnum := -1;
99 	   P_errbuf := 'dbms_sql.parse failed';
100            return;
101    end;
102 
103    begin
104         /* choosing V7 as language flag as less likely to cause problems */
105         row_dyn := dbms_sql.execute(cur_dyn);
106    exception
107         when others then
108            P_errnum := -1;
109 	   P_errbuf := 'dbms_sql.execute failed';
110            return;
111    end;
112 
113    begin
114         /* choosing V7 as language flag as less likely to cause problems */
115         dbms_sql.close_cursor(cur_dyn);
116    exception
117         when others then
118            P_errnum := -1;
119 	   P_errbuf := 'dbms_sql.close_cursor failed';
120            return;
121    end;
122 
123 end;
124 
125 procedure start_toy(req_id in number, new_req_start in varchar2) is
126 
127 flexi fnd_dflex.dflex_dr;
128 fcontexts fnd_dflex.contexts_dr;
129 fcontext fnd_dflex.context_r;
130 prog_app_name varchar2(30);
131 prog_name varchar2(30);
132 old_req_start date;
133 
134 begin
135 
136    /* init params */
137    RETURN_INFO(0,NULL);
138    P_reqid := req_id;
139    P_ReqStartDate := fnd_conc_date.string_to_date(new_req_start);
140 
141    select NVL(resub_count, 1), REQUESTED_START_DATE, NUMBER_OF_ARGUMENTS,
142    r.RESUBMIT_INTERVAL, r.RESUBMIT_INTERVAL_UNIT_CODE,
143    ARGUMENT1, ARGUMENT2, ARGUMENT3, ARGUMENT4, ARGUMENT5,
144    ARGUMENT6, ARGUMENT7, ARGUMENT8, ARGUMENT9, ARGUMENT10,
145    ARGUMENT11, ARGUMENT12, ARGUMENT13, ARGUMENT14, ARGUMENT15,
146    ARGUMENT16, ARGUMENT17, ARGUMENT18, ARGUMENT19, ARGUMENT20,
147    ARGUMENT21, ARGUMENT22, ARGUMENT23, ARGUMENT24, ARGUMENT25,
148    INCREMENT_DATES, RELEASE_CLASS_APP_ID, r.RELEASE_CLASS_ID,
149    CONCURRENT_PROGRAM_NAME, APPLICATION_SHORT_NAME,
150    RELEASE_CLASS_NAME, CLASS_TYPE, INCREMENT_PROC
151    into P_count, old_req_start, P_nargs,
152    P_rsub_int, P_rsub_int_unit_code,
153    p_args(1), p_args(2), p_args(3), p_args(4), p_args(5), p_args(6), p_args(7),
154    p_args(8), p_args(9), p_args(10), p_args(11), p_args(12), p_args(13), p_args(14),
155    p_args(15), p_args(16), p_args(17), p_args(18), p_args(19), p_args(20),
156    p_args(21), p_args(22), p_args(23), p_args(24), p_args(25),
157    P_increment_flag, P_sch_app_id, P_sch_id,
158    prog_name, prog_app_name,
159    P_sch_name,P_sch_type,P_inc_proc
160    from fnd_concurrent_requests r,
161    fnd_concurrent_programs p,
162    fnd_application a,
163    fnd_conc_release_classes c
164    where r.request_id = req_id
165    and r.concurrent_program_id = p.concurrent_program_id
166    and r.program_application_id = p.application_id
167    and r.program_application_id = a.application_id
168    and c.RELEASE_CLASS_ID = r.RELEASE_CLASS_ID
169    and r.RELEASE_CLASS_APP_ID = c.APPLICATION_ID;
170 
171    if (P_nargs >25) then
172      select
173 	 	 Argument26, Argument27, Argument28, Argument29, Argument30,
174                  Argument31, Argument32, Argument33, Argument34, Argument35,
175                  Argument36, Argument37, Argument38, Argument39, Argument40,
176                  Argument41, Argument42, Argument43, Argument44, Argument45,
177                  Argument46, Argument47, Argument48, Argument49, Argument50,
178                  Argument51, Argument52, Argument53, Argument54, Argument55,
179                  Argument56, Argument57, Argument58, Argument59, Argument60,
180                  Argument61, Argument62, Argument63, Argument64, Argument65,
181                  Argument66, Argument67, Argument68, Argument69, Argument70,
182                  Argument71, Argument72, Argument73, Argument74, Argument75,
183                  Argument76, Argument77, Argument78, Argument79, Argument80,
184                  Argument81, Argument82, Argument83, Argument84, Argument85,
185                  Argument86, Argument87, Argument88, Argument89, Argument90,
186                  Argument91, Argument92, Argument93, Argument94, Argument95,
187                  Argument96, Argument97, Argument98, Argument99, Argument100
188      into       p_args(26), p_args(27), p_args(28), p_args(29), p_args(30),
189 		p_args(31), p_args(32), p_args(33), p_args(34), p_args(35),
190 		p_args(36), p_args(37), p_args(38), p_args(39), p_args(40),
191 		p_args(41), p_args(42), p_args(43), p_args(44), p_args(45),
192 		p_args(46), p_args(47), p_args(48), p_args(49), p_args(50),
193 		p_args(51), p_args(52), p_args(53), p_args(54), p_args(55),
194 		p_args(56), p_args(57), p_args(58), p_args(59), p_args(60),
195 		p_args(61), p_args(62), p_args(63), p_args(64), p_args(65),
196 		p_args(66), p_args(67), p_args(68), p_args(69), p_args(70),
197 		p_args(71), p_args(72), p_args(73), p_args(74), p_args(75),
198 		p_args(76), p_args(77), p_args(78), p_args(79), p_args(80),
199 		p_args(81), p_args(82), p_args(83), p_args(84), p_args(85),
200 		p_args(86), p_args(87), p_args(88), p_args(89), p_args(90),
201 		p_args(91), p_args(92), p_args(93), p_args(94), p_args(95),
202 		p_args(96), p_args(97), p_args(98), p_args(99), p_args(100)
203      from Fnd_Conc_Request_Arguments
204      where Request_Id = req_id;
205 
206    end if;
207 
208    if P_inc_proc is null then
209       P_inc_proc := 'FND_RESUB_PRIVATE.DEFAULT_INCREMENT_PROC';
210    end if;
211 
212    fnd_dflex.get_flexfield(prog_app_name, '$SRS$.' || prog_name,
213 	fcontext.flexfield, flexi);
214    fnd_dflex.get_contexts(fcontext.flexfield, fcontexts);
215    fcontext.context_code := fcontexts.context_code(fcontexts.global_context);
216    fnd_dflex.get_segments(fcontext,P_fsegs, TRUE);
217 
218    P_ProgName := prog_name;
219    P_ProgAppName := prog_app_name;
220 
221    /* P_delta := P_ReqStartDate - old_req_start;  */
222    set_resub_delta (old_req_start);
223 end;
224 
225 procedure stop_toy(new_req_id in number, errnum out nocopy number,
226         errbuf out nocopy varchar2) is
227 
228    argtxt             varchar2(24200) := null;
229    argtxt2            varchar2(240);
230 
231 begin
232 
233      execute_increment_proc;
234 
235      errbuf := P_errbuf;
236      errnum := P_errnum;
237 
238      /* uh-oh the incrementor found a problem */
239      if (P_errnum<0) then
240 	return;
241      end if;
242 
243      -- Count the number of arguments and build argstr
244         P_nargs := 0;
245         argtxt := '';
246 
247         for i in 1 .. 100 loop
248             exit when p_args(i) = CHR(0);
249             P_nargs := P_nargs + 1;
250             if (i > 1) then
251               argtxt := argtxt || ', ' || p_args(i);
252             else
253               argtxt := p_args(i);
254             end if;
255         end loop;
256 
257         argtxt2 := substrb (argtxt, 1, 240);
258 
259         UPDATE FND_CONCURRENT_REQUESTS
260         SET Argument_Text = argtxt2, NUMBER_OF_ARGUMENTS = P_nargs,
261         ARGUMENT1 = p_args(1), ARGUMENT2 = p_args(2), ARGUMENT3 = p_args(3), ARGUMENT4 = p_args(4),
262         ARGUMENT5 = p_args(5), ARGUMENT6 = p_args(6), ARGUMENT7 = p_args(7), ARGUMENT8 = p_args(8),
263         ARGUMENT9 = p_args(9), ARGUMENT10 = p_args(10), ARGUMENT11 = p_args(11),
264         ARGUMENT12 = p_args(12), ARGUMENT13 = p_args(13), ARGUMENT14 = p_args(14),
265         ARGUMENT15 = p_args(15), ARGUMENT16 = p_args(16), ARGUMENT17 = p_args(17),
266         ARGUMENT18 = p_args(18), ARGUMENT19 = p_args(19), ARGUMENT20 = p_args(20),
267         ARGUMENT21 = p_args(21), ARGUMENT22 = p_args(22),
268         ARGUMENT23 = p_args(23), ARGUMENT24 = p_args(24), ARGUMENT25 = p_args(25)
269         WHERE REQUEST_ID = new_req_id;
270 
271        if (P_nargs > 25) then
272         Update Fnd_Conc_Request_Arguments
273         Set Argument26 = p_args(26), Argument27 = p_args(27), Argument28 = p_args(28),
274         Argument29 = p_args(29), Argument30 = p_args(30), Argument31 = p_args(31),
275         Argument32 = p_args(32), Argument33 = p_args(33), Argument34 = p_args(34),
276         Argument35 = p_args(35), Argument36 = p_args(36), Argument37 = p_args(37),
277         Argument38 = p_args(38), Argument39 = p_args(39), Argument40 = p_args(40),
278         Argument41 = p_args(41), Argument42 = p_args(42), Argument43 = p_args(43),
279         Argument44 = p_args(44), Argument45 = p_args(45), Argument46 = p_args(46),
280         Argument47 = p_args(47), Argument48 = p_args(48), Argument49 = p_args(49),
281         Argument50 = p_args(50), Argument51 = p_args(51), Argument52 = p_args(52),
282         Argument53 = p_args(53), Argument54 = p_args(54), Argument55 = p_args(55),
283         Argument56 = p_args(56), Argument57 = p_args(57), Argument58 = p_args(58),
284         Argument59 = p_args(59), Argument60 = p_args(60), Argument61 = p_args(61),
285         Argument62 = p_args(62), Argument63 = p_args(63), Argument64 = p_args(64),
286         Argument65 = p_args(65), Argument66 = p_args(66), Argument67 = p_args(67),
287         Argument68 = p_args(68), Argument69 = p_args(69), Argument70 = p_args(70),
288         Argument71 = p_args(71), Argument72 = p_args(72), Argument73 = p_args(73),
289         Argument74 = p_args(74), Argument75 = p_args(75), Argument76 = p_args(76),
290         Argument77 = p_args(77), Argument78 = p_args(78), Argument79 = p_args(79),
291         Argument80 = p_args(80), Argument81 = p_args(81), Argument82 = p_args(82),
292         Argument83 = p_args(83), Argument84 = p_args(84), Argument85 = p_args(85),
293         Argument86 = p_args(86), Argument87 = p_args(87), Argument88 = p_args(88),
294         Argument89 = p_args(89), Argument90 = p_args(90), Argument91 = p_args(91),
295         Argument92 = p_args(92), Argument93 = p_args(93), Argument94 = p_args(94),
296         Argument95 = p_args(95), Argument96 = p_args(96), Argument97 = p_args(97),
297         Argument98 = p_args(98), Argument99 = p_args(99), Argument100 = p_args(100)
298         where Request_Id=new_req_id;
299        end if;
300 end;
301 
302 
303 
304 function is_request_set(req_id in number) return boolean is
305 
306 typ     varchar2(1);
307 begin
308 	select request_type
309         into   typ
310         from   fnd_concurrent_requests
311         where  request_id = req_id;
312 
313         /* Bug 2351842: 'M' - Request set parent, 'B' - FNDMLSUB */
314         if typ in ('M', 'B') then
315           return true;
316         end if;
317 
318         return false;
319 end;
320 
321 
322 
323 
324 
325 procedure process_set(req_id in number, new_req_start in varchar2,
326                       new_req_id in number, errnum out nocopy number, errbuf out nocopy varchar2) is
327 
328 old_req_start      date;
329 flexi              fnd_dflex.dflex_dr;
330 fcontexts          fnd_dflex.contexts_dr;
331 fcontext           fnd_dflex.context_r;
332 v_app_id           number(15);
333 v_prog_id          number(15);
334 v_rsp_id           number(15);
335 v_set_app_id       number(15);
336 v_set_id           number(15);
337 v_org_id           number(15);
338 v_print_style      varchar2(30);
339 v_save_flag        varchar2(1);
340 v_nls_lang         varchar2(30);
341 v_nls_terr         varchar2(30);
342 v_num_char         varchar2(2);
343 v_ops_instance     number;
344 
345 cursor c_requests is
346   select r.application_id, r.concurrent_program_id,
347          r.request_set_program_id, r.set_application_id, r.request_set_id,
348          r.print_style, r.save_output_flag, r.nls_language, r.nls_territory,
349          r.numeric_characters, r.ops_instance,
350          argument1, argument2, argument3, argument4, argument5,
351          argument6, argument7, argument8, argument9, argument10,
352          argument11, argument12, argument13, argument14, argument15,
353          argument16, argument17, argument18, argument19, argument20,
354          argument21, argument22, argument23, argument24, argument25,
355          argument26, argument27, argument28, argument29, argument30,
356          argument31, argument32, argument33, argument34, argument35,
357          argument36, argument37, argument38, argument39, argument40,
358          argument41, argument42, argument43, argument44, argument45,
359          argument46, argument47, argument48, argument49, argument50,
360          argument51, argument52, argument53, argument54, argument55,
361          argument56, argument57, argument58, argument59, argument60,
362          argument61, argument62, argument63, argument64, argument65,
363          argument66, argument67, argument68, argument69, argument70,
364          argument71, argument72, argument73, argument74, argument75,
365          argument76, argument77, argument78, argument79, argument80,
366          argument81, argument82, argument83, argument84, argument85,
367          argument86, argument87, argument88, argument89, argument90,
368          argument91, argument92, argument93, argument94, argument95,
369          argument96, argument97, argument98, argument99, argument100,
370          concurrent_program_name, application_short_name, increment_proc, org_id
371    from fnd_run_requests r,
372    fnd_concurrent_programs p,
373    fnd_application a
374    where r.parent_request_id = req_id
375    and r.concurrent_program_id = p.concurrent_program_id
376    and r.application_id = p.application_id
377    and r.application_id = a.application_id;
378 
379 
380 begin
381 
382    RETURN_INFO(0,NULL);
383    P_reqid := req_id;
384    P_ReqStartDate := fnd_conc_date.string_to_date(new_req_start);
385 
386    -- select information about the request set
387    select NVL(resub_count, 1), REQUESTED_START_DATE,
388           r.RESUBMIT_INTERVAL, r.RESUBMIT_INTERVAL_UNIT_CODE,
389           INCREMENT_DATES, RELEASE_CLASS_APP_ID, r.RELEASE_CLASS_ID,
390           RELEASE_CLASS_NAME, CLASS_TYPE
391    into P_count, old_req_start,
392         P_rsub_int, P_rsub_int_unit_code,
393         P_increment_flag, P_sch_app_id, P_sch_id,
394         P_sch_name, P_sch_type
395    from fnd_concurrent_requests r,
396         fnd_conc_release_classes c
397    where r.request_id = req_id
398    and c.RELEASE_CLASS_ID = r.RELEASE_CLASS_ID
399    and r.RELEASE_CLASS_APP_ID = c.APPLICATION_ID;
400 
401    /* P_delta := P_ReqStartDate - old_req_start; */
402    set_resub_delta (old_req_start);
403 
404 
405    -- loop over each request in the set
406    open c_requests;
407    loop
408       fetch c_requests into
409       v_app_id, v_prog_id, v_rsp_id, v_set_app_id, v_set_id,
410       v_print_style, v_save_flag, v_nls_lang, v_nls_terr,
411       v_num_char, v_ops_instance,
412       p_args(1), p_args(2), p_args(3), p_args(4), p_args(5),
413       p_args(6), p_args(7), p_args(8), p_args(9), p_args(10),
414       p_args(11), p_args(12), p_args(13), p_args(14), p_args(15),
415       p_args(16), p_args(17), p_args(18), p_args(19), p_args(20),
416       p_args(21), p_args(22), p_args(23), p_args(24), p_args(25),
417       p_args(26), p_args(27), p_args(28), p_args(29), p_args(30),
418       p_args(31), p_args(32), p_args(33), p_args(34), p_args(35),
419       p_args(36), p_args(37), p_args(38), p_args(39), p_args(40),
420       p_args(41), p_args(42), p_args(43), p_args(44), p_args(45),
421       p_args(46), p_args(47), p_args(48), p_args(49), p_args(50),
422       p_args(51), p_args(52), p_args(53), p_args(54), p_args(55),
423       p_args(56), p_args(57), p_args(58), p_args(59), p_args(60),
424       p_args(61), p_args(62), p_args(63), p_args(64), p_args(65),
425       p_args(66), p_args(67), p_args(68), p_args(69), p_args(70),
426       p_args(71), p_args(72), p_args(73), p_args(74), p_args(75),
427       p_args(76), p_args(77), p_args(78), p_args(79), p_args(80),
428       p_args(81), p_args(82), p_args(83), p_args(84), p_args(85),
429       p_args(86), p_args(87), p_args(88), p_args(89), p_args(90),
430       p_args(91), p_args(92), p_args(93), p_args(94), p_args(95),
431       p_args(96), p_args(97), p_args(98), p_args(99), p_args(100),
432       P_Progname, P_ProgAppName, P_inc_proc, v_org_id;
433 
434       exit when c_requests%NOTFOUND;
435 
436       -- increment the arguments if necessary
437       if P_increment_flag = 'Y' then
438 
439           if P_inc_proc is null then
440              P_inc_proc := 'FND_RESUB_PRIVATE.DEFAULT_INCREMENT_PROC';
441           end if;
442 
443           fnd_dflex.get_flexfield(P_ProgAppName, '$SRS$.' || P_progname, fcontext.flexfield, flexi);
444           fnd_dflex.get_contexts(fcontext.flexfield, fcontexts);
445           fcontext.context_code := fcontexts.context_code(fcontexts.global_context);
446           fnd_dflex.get_segments(fcontext, P_fsegs, TRUE);
447 
448           P_nargs := P_fsegs.nsegments;
449 
450           execute_increment_proc;
451 
452           errbuf := P_errbuf;
453           errnum := P_errnum;
454 
455           /* uh-oh the incrementor found a problem */
456           if (P_errnum<0) then
457 	      return;
458           end if;
459 
460       end if;
461 
462       -- insert the new row into fnd_run_requests
463       insert into fnd_run_requests (application_id, concurrent_program_id,
464 	                              parent_request_id, request_set_program_id,
465                                       set_application_id, request_set_id,
466                                       print_style, save_output_flag,
467                                       nls_language, nls_territory, numeric_characters, ops_instance,
468                                       argument1, argument2, argument3, argument4, argument5,
469                                       argument6, argument7, argument8, argument9, argument10,
470                                       argument11, argument12, argument13, argument14, argument15,
471                                       argument16, argument17, argument18, argument19, argument20,
472                                       argument21, argument22, argument23, argument24, argument25,
473                                       argument26, argument27, argument28, argument29, argument30,
474                                       argument31, argument32, argument33, argument34, argument35,
475                                       argument36, argument37, argument38, argument39, argument40,
476                                       argument41, argument42, argument43, argument44, argument45,
477                                       argument46, argument47, argument48, argument49, argument50,
478                                       argument51, argument52, argument53, argument54, argument55,
479                                       argument56, argument57, argument58, argument59, argument60,
480                                       argument61, argument62, argument63, argument64, argument65,
481                                       argument66, argument67, argument68, argument69, argument70,
482                                       argument71, argument72, argument73, argument74, argument75,
483                                       argument76, argument77, argument78, argument79, argument80,
484                                       argument81, argument82, argument83, argument84, argument85,
485                                       argument86, argument87, argument88, argument89, argument90,
486                                       argument91, argument92, argument93, argument94, argument95,
487                                       argument96, argument97, argument98, argument99, argument100, org_id)
488 	  VALUES(v_app_id, v_prog_id, new_req_id, v_rsp_id,
489 	  v_set_app_id, v_set_id,
490 	  v_print_style, v_save_flag, v_nls_lang, v_nls_terr,
491           v_num_char, v_ops_instance,
492 	  p_args(1), p_args(2), p_args(3), p_args(4), p_args(5),
493 	  p_args(6), p_args(7), p_args(8), p_args(9), p_args(10),
494 	  p_args(11), p_args(12), p_args(13), p_args(14), p_args(15),
495 	  p_args(16), p_args(17), p_args(18), p_args(19), p_args(20),
496 	  p_args(21), p_args(22), p_args(23), p_args(24), p_args(25),
497 	  p_args(26), p_args(27), p_args(28), p_args(29), p_args(30),
498 	  p_args(31), p_args(32), p_args(33), p_args(34), p_args(35),
499 	  p_args(36), p_args(37), p_args(38), p_args(39), p_args(40),
500 	  p_args(41), p_args(42), p_args(43), p_args(44), p_args(45),
501 	  p_args(46), p_args(47), p_args(48), p_args(49), p_args(50),
502 	  p_args(51), p_args(52), p_args(53), p_args(54), p_args(55),
503 	  p_args(56), p_args(57), p_args(58), p_args(59), p_args(60),
504 	  p_args(61), p_args(62), p_args(63), p_args(64), p_args(65),
505 	  p_args(66), p_args(67), p_args(68), p_args(69), p_args(70),
506 	  p_args(71), p_args(72), p_args(73), p_args(74), p_args(75),
507 	  p_args(76), p_args(77), p_args(78), p_args(79), p_args(80),
508 	  p_args(81), p_args(82), p_args(83), p_args(84), p_args(85),
509 	  p_args(86), p_args(87), p_args(88), p_args(89), p_args(90),
510 	  p_args(91), p_args(92), p_args(93), p_args(94), p_args(95),
511 	  p_args(96), p_args(97), p_args(98), p_args(99), p_args(100),
512           v_org_id);
513 
514        insert into fnd_run_req_pp_actions (
515                 request_set_program_id, request_set_id,
516                 set_application_id,
517                 parent_request_id,action_type,status_s_flag,
518                 status_w_flag,status_f_flag,
519                 program_application_id,program_id,arguments,
520                 number_of_copies,sequence,ops_instance,
521                 orig_system,orig_system_id,nls_language,
522                 argument1,argument2,argument3,argument4,argument5,
523                 argument6,argument7,argument8,argument9,argument10)
524         select  request_set_program_id, request_set_id,
525                 set_application_id,
526                 new_req_id, action_type,status_s_flag,
527                 status_w_flag,status_f_flag,
528                 program_application_id,program_id,arguments,
529                 number_of_copies,sequence,ops_instance,
530                 orig_system,orig_system_id,nls_language,
531                 argument1,argument2,argument3,argument4,argument5,
532                 argument6,argument7,argument8,argument9,argument10
533         from fnd_run_req_pp_actions
534         where parent_request_id = req_id
535 	and request_set_program_id = v_rsp_id;
536 
537    end loop;
538 
539    close c_requests;
540 
541 exception
542    when others then
543        return_info(-1, 'FND_RESUB_PRIVATE.PROCESS_SET EXCEPTION: ' || substr(sqlerrm, 1, 100));
544 
545 end;
546 
547 
548 ----------------------------------------------------------------------
549 ---           PUBLIC PROCEDURES
550 ----------------------------------------------------------------------
551 
552 FUNCTION GET_PARAM_INFO(Param_num in number, Name out nocopy varchar2)  return number is
553 begin
554 
555   if (Param_num>P_fsegs.nsegments) then
556     return (-1);
557   end if;
558 
559   Name := P_fsegs.segment_name(Param_num);
560 
561   return(0);
562 end;
563 
564 FUNCTION GET_PARAM_TYPE(Param_num in number, Param_type out nocopy varchar2) return number is
565 
566 vset 		fnd_vset.valueset_r;
567 fmt 		fnd_vset.valueset_dr;
568 
569 begin
570 
571   if (Param_num>P_fsegs.nsegments) then
572     return (-1);
573   end if;
574 
575   fnd_vset.get_valueset(P_fsegs.value_set(Param_num), vset, fmt);
576   Param_type := fmt.format_type;
577 
578   return(0);
579 
580 
581 end;
582 
583 FUNCTION GET_PARAM_NUMBER(name in varchar2, Param_num out nocopy number) return number is
584 
585 counter number;
586 
587 begin
588   if (P_fsegs.nsegments < 1) then
589      return (-1);
590   end if;
591 
592   counter := 1;
593   while ((counter < P_fsegs.nsegments) and
594          (Name <> P_fsegs.segment_name(counter))) loop
595               counter := counter + 1;
596   end loop;
597 
598   IF (Name <> P_fsegs.segment_name(counter)) then
599      return (-1);
600   end if;
601 
602   Param_num := counter;
603 
604   return(0);
605 
606 end;
607 
608 
609 FUNCTION GET_REQUESTED_START_DATE return date is
610 begin
611 return(P_ReqStartDate);
612 end;
613 
614 FUNCTION GET_RUSUB_COUNT return number is
615 begin
616 return(P_count);
617 end;
618 
619 PROCEDURE SET_PARAMETER(param_num in number, param_value in varchar2) is
620 
621 begin
622         if (param_num > P_nargs) then return; end if;
623         p_args(param_num) := param_value;
624 
625 end;
626 
627 PROCEDURE GET_PROGRAM(PROG_NAME out nocopy VARCHAR2, PROG_APP_NAME out nocopy varchar2) is
628 
629 begin
630    PROG_NAME := P_ProgName;
631    PROG_APP_NAME := P_ProgAppName;
632 end;
633 
634 PROCEDURE GET_SCHEDULE(TYPE out nocopy VARCHAR2, APP_ID out nocopy number,
635         ID out nocopy number, Name out nocopy varchar2) is
636 
637 begin
638    TYPE := P_sch_type;
639    APP_ID := P_sch_app_id;
640    ID := P_sch_ID;
641    Name := P_sch_name;
642 end;
643 
644 FUNCTION GET_INCREMENT_FLAG return varchar2 is
645 
646 begin
647   return(P_increment_flag);
648 end;
649 
650 
651 
652 FUNCTION GET_RUSUB_DELTA return number is
653 
654 begin
655   return(P_delta);
656 end;
657 
658 FUNCTION GET_PARAMETER(param_num in number) return varchar2 is
659 
660 begin
661 	if (param_num > P_nargs) then return(NULL); end if;
662         return p_args(param_num);
663 
664 end;
665 
666 
667 procedure default_increment_proc is
668 
669 param    varchar2(240);
670 retval   number;
671 ptype    varchar2(1);
672 date_fmt varchar2(32);
673 date_param date;
674 
675 begin
676 
677    if P_increment_flag <> 'Y' then
678        return_info(0, '');
679        return;
680    end if;
681 
682 
683    for i in 1 .. P_nargs loop
684 
685        param := get_parameter(i);
686        if param is not null and param <> chr(0) then
687 
688            retval := get_param_type(i, ptype);
689            if retval >= 0 then
690                if (ptype = 'X') or (ptype = 'Y')   or  (ptype = 'D') or (ptype = 'T') then
691                    date_fmt := fnd_conc_date.get_date_format(param);
692                    date_param := fnd_conc_date.string_to_date(param);
693                    if date_fmt is not null then
694                        if (upper(nvl(P_rsub_int_unit_code,'UNDEF')) <> 'MONTHS') then
695                             param := to_char((date_param + P_delta), date_fmt);
696 
697                        else
698                             /* 2316601: P_delta only works for MONTHS if request date |
699                              | month happens to have the same days as the param month */
700                             param := to_char(ADD_MONTHS(date_param, P_rsub_int), date_fmt);
701                        end if;
702                        set_parameter(i, param);
703                    end if;
704                end if;
705            end if;
706        end if;
707 
708    end loop;
709 
710    return_info(0, '');
711 
712 exception
713    when others then
714        return_info(-1, 'DEFAULT_INCREMENT_PROC EXCEPTION: ' || substr(sqlerrm, 1, 100));
715 
716 end;
717 
718 
719 
720 procedure process_increment(req_id in number, new_req_start in varchar2,
721                  new_req_id in number, errnum out nocopy number, errbuf out nocopy varchar2) is
722 
723 profile_buffer	varchar2(80) := null;
724 
725 begin
726 
727    errnum := 0;
728 
729    /*-----------------------------------------------------------------------+
730    3197639- New profile option to define how to increment date parameters:
731       S-  Start Date Interval- by subtracting the requested_start_date
732           of previous request from the requested_start_date of current request
733       R-  Resubmit Interval- by adding the amount of time represented by the
734           resubmit_interval and resubmit_unit_code defined for the request
735           when originally scheduled
736    +-----------------------------------------------------------------------*/
737 
738    FND_PROFILE.GET ('CONC_DATE_INCREMENT_OPTION', profile_buffer);
739    if ( profile_buffer in ('S', 'R') ) then
740       P_IncrOpt := profile_buffer;
741    else
742       P_IncrOpt := 'S';
743    end if;
744 
745    -- sets need to always be processed
746    if is_request_set(req_id) = TRUE then
747        process_set(req_id, new_req_start, new_req_id, errnum, errbuf);
748    else
749 
750        -- don't go any further if the increment flag is not set
751        select nvl(increment_dates, 'N')
752        into   P_increment_flag
753        from   fnd_concurrent_requests
754        where  request_id = req_id;
755 
756        if P_increment_flag <> 'Y' then
757            errnum := 0;
758            return;
759        end if;
760 
761        start_toy(req_id, new_req_start);
762        stop_toy (new_req_id, errnum, errbuf);
763 
764 
765    end if;
766 
767    -- make sure we return a non-null value
768    if errnum is null then
769       errnum := 0;
770    end if;
771 
772 exception
773    when others then
774        errnum := -1;
775        errbuf := 'FND_RESUB_PRIVATE.PROCESS_INCREMENT EXCEPTION: ' || substr(sqlerrm, 1, 100);
776 end;
777 
778 
779 
780 
781 end;