1 package body FND_PORTLET_DEPENDENCY_PKG as
2 /* $Header: FNDPRTRB.pls 120.2 2005/11/04 13:55:18 sdstratt noship $ */
3
4 procedure INSERT_CONCURRENT_ROW (
5 X_CONCURRENT_PROGRAM_NAME in VARCHAR2,
6 X_CONCURRENT_APPLICATION_CODE in VARCHAR2,
7 X_FUNCTION_NAME in VARCHAR2
8 ) IS
9
10 l_rowid rowid;
11
12 begin
13
14 FND_PORTLET_DEPENDENCY_PKG.INSERT_ROW (
15 l_rowid,
16 X_CONCURRENT_PROGRAM_NAME,
17 X_CONCURRENT_APPLICATION_CODE,
18 X_FUNCTION_NAME,
19 sysdate,
20 2,
21 sysdate,
22 2,
23 0);
24
25 end INSERT_CONCURRENT_ROW;
26
27 procedure DELETE_CONCURRENT_ROW (
28 X_CONCURRENT_PROGRAM_NAME in VARCHAR2,
29 X_CONCURRENT_APPLICATION_CODE in VARCHAR2,
30 X_FUNCTION_NAME in VARCHAR2
31 ) IS
32
33
34 begin
35
36 FND_PORTLET_DEPENDENCY_PKG.DELETE_ROW (
37 X_CONCURRENT_PROGRAM_NAME,
38 X_CONCURRENT_APPLICATION_CODE,
39 X_FUNCTION_NAME);
40
41 end DELETE_CONCURRENT_ROW;
42
43 procedure INSERT_ROW (
44 X_ROWID in out NOCOPY VARCHAR2,
45 X_REFRESH_DEPENDENCY in VARCHAR2,
46 X_REFRESH_DEPENDENCY_CONTEXT in VARCHAR2,
47 X_FUNCTION_NAME in VARCHAR2,
48 X_CREATION_DATE in DATE,
49 X_CREATED_BY in NUMBER,
50 X_LAST_UPDATE_DATE in DATE,
51 X_LAST_UPDATED_BY in NUMBER,
52 X_LAST_UPDATE_LOGIN in NUMBER
53 ) is
54 cursor C is select ROWID from FND_PORTLET_DEPENDENCY
55 where REFRESH_DEPENDENCY = X_REFRESH_DEPENDENCY
56 and REFRESH_DEPENDENCY_CONTEXT = X_REFRESH_DEPENDENCY_CONTEXT
57 and FUNCTION_NAME = X_FUNCTION_NAME
58 ;
59 begin
60
61 insert into FND_PORTLET_DEPENDENCY (
62 REFRESH_DEPENDENCY,
63 REFRESH_DEPENDENCY_CONTEXT,
64 FUNCTION_NAME,
65 CREATION_DATE,
66 CREATED_BY,
67 LAST_UPDATE_DATE,
68 LAST_UPDATED_BY,
69 LAST_UPDATE_LOGIN
70 ) SELECT
71 X_REFRESH_DEPENDENCY,
72 X_REFRESH_DEPENDENCY_CONTEXT,
73 X_FUNCTION_NAME,
74 X_CREATION_DATE,
75 X_CREATED_BY,
76 X_LAST_UPDATE_DATE,
77 X_LAST_UPDATED_BY,
78 X_LAST_UPDATE_LOGIN
79 FROM DUAL
80 where not exists
81 (select NULL
82 from FND_PORTLET_DEPENDENCY D
83 where D.REFRESH_DEPENDENCY = X_REFRESH_DEPENDENCY
84 and D.REFRESH_DEPENDENCY_CONTEXT = X_REFRESH_DEPENDENCY_CONTEXT
85 and D.FUNCTION_NAME = X_FUNCTION_NAME);
86
87 open c;
88 fetch c into X_ROWID;
89 if (c%notfound) then
90 close c;
91 raise no_data_found;
92 end if;
93 close c;
94
95 end INSERT_ROW;
96
97 procedure DELETE_ROW (
98 X_REFRESH_DEPENDENCY in VARCHAR2,
99 X_REFRESH_DEPENDENCY_CONTEXT in VARCHAR2,
100 X_FUNCTION_NAME in VARCHAR2
101 ) is
102 begin
103 delete from FND_PORTLET_DEPENDENCY
104 where REFRESH_DEPENDENCY = X_REFRESH_DEPENDENCY
105 and REFRESH_DEPENDENCY_CONTEXT = X_REFRESH_DEPENDENCY_CONTEXT
106 and FUNCTION_NAME = X_FUNCTION_NAME;
107
108 if (sql%notfound) then
109 raise no_data_found;
110 end if;
111
112 end DELETE_ROW;
113
114 Procedure PP_ACTION ( errbuff out NOCOPY varchar2,
115 retcode out NOCOPY varchar2,
116 step in number ) is
117
118 request_id number;
119 program_name varchar2(30);
120 program_application_name varchar2(30);
121
122 cursor portlet_dependency (c_REFRESH_DEPENDENCY varchar2,
123 c_REFRESH_DEPENDENCY_CONTEXT varchar2)is
124 select PORT.FUNCTION_NAME FUNCTION_NAME
125 from FND_PORTLET_DEPENDENCY PORT
126 where PORT.REFRESH_DEPENDENCY = c_REFRESH_DEPENDENCY
127 and PORT.REFRESH_DEPENDENCY_CONTEXT = c_REFRESH_DEPENDENCY_CONTEXT;
128
129 begin
130 request_id := FND_GLOBAL.CONC_REQUEST_ID;
131
132 -- call FND_CONC_PP.RETRIVE procedure to get any parameters set at the
133 -- time of assigning this PP_ACTION
134 --
135
136 -- call FND_REQUEST_INFO.INITIALIZE followed by GET_PARAM_INFO/GET_PROGRAM
137 -- GET_PARAMETER to get request specific information
138
139 select p.concurrent_program_name, a.APPLICATION_SHORT_NAME
140 into program_name, program_application_name
141 from fnd_application A, fnd_concurrent_programs P
142 where P.concurrent_program_id = fnd_global.conc_program_id
143 and P.application_id = fnd_global.prog_appl_id
144 and P.application_id = A.application_id;
145
146 -- insert into geo_test values ('Program: ' || program_name);
147 -- insert into geo_test values ('Program App: ' || program_application_name);
148
149 -- code your logic
150 -- get the portlet functions that should be marked as dirty based on the
151 -- execution of this concurrent program
152 for func in portlet_dependency (program_name, program_application_name) loop
153
154 -- insert into geo_test values ('Found Func: ' || func.function_name);
155
156 icx_portlet.updCacheByFuncName (func.function_name);
157
158 end loop;
159
160
161 -- Assing errbuff, retcode values to see the assigned value in request log
162 -- file .
163 pp_action.errbuff := 'FND_CP_TEMPLATE.pp_action Completed';
164 pp_action.retcode := 0;
165
166 commit;
167 end;
168
169 end FND_PORTLET_DEPENDENCY_PKG;