DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_ACTIVITY_SQLAPI

Source


1 PACKAGE BODY jtf_activity_sqlapi AS
2 /* $Header: jtfactsb.pls 120.2 2005/10/25 05:12:40 psanyal ship $ */
3 
4 
5 FUNCTION getActivityNameID(
6  ActivityName IN JTF_ACT_TYPES_TL.activity_name%TYPE)
7  RETURN NUMBER IS
8 
9 v_Result NUMBER;
10 
11 BEGIN
12 
13 SELECT activity_name_id
14 INTO v_Result
15 FROM JTF_ACT_TYPES_TL
16 WHERE activity_name = ActivityName AND
17       language = userenv('LANG');
18 RETURN v_Result;
19 
20 EXCEPTION
21  WHEN NO_DATA_FOUND THEN
22   RETURN 0;
23  WHEN OTHERS THEN
24   RETURN 0;
25 
26 END getActivityNameID;
27 
28 FUNCTION getActivityAttributeNameID(
29  ActivityName IN JTF_ACT_TYPES_TL.activity_name%TYPE,
30  AttributeName IN JTF_ACT_TYPES_ATTRS_TL.attribute_name%TYPE)
31  RETURN NUMBER IS
32 
33 v_Result NUMBER;
34 v_activity_name_id NUMBER;
35 BEGIN
36 
37 v_activity_name_id := getActivityNameID(ActivityName);
38 
39 SELECT b.attribute_name_id INTO v_Result
40 FROM JTF_ACT_TYPES_ATTRS_B b, JTF_ACT_TYPES_ATTRS_TL t
41 WHERE b.activity_name_id = v_activity_name_id
42 AND b.attribute_name_id = t.attribute_name_id
43 AND t.attribute_name = AttributeName
44 AND t.language = userenv('LANG');
45 
46 RETURN v_Result;
47 EXCEPTION
48   WHEN NO_DATA_FOUND THEN
49     RETURN -1;
50   WHEN OTHERS  THEN
51     RETURN  -1;
52 
53 END getActivityAttributeNameID;
54 
55 FUNCTION isActivityDefined(
56   ActivityName IN jtf_act_types_tl.activity_name%TYPE)
57 RETURN NUMBER IS
58 
59 v_row NUMBER;
60 BEGIN
61 
62 v_row := getActivityNameID(ActivityName);
63 if (v_row <0) then
64 return 0;
65 else
66 return v_row;
67 end if;
68 END isActivityDefined;
69 
70 
71 -- delete a row in jtf_activity_type_b table;
72 
73 procedure deleteActivityType(activityname IN varchar2) AS
74 name_id  NUMBER;
75 i        binary_integer;
76 
77 Cursor C is
78    select t.activity_name_id from jtf_act_types_tl t where t.language=userenv('LANG') and t.activity_name =activityname;
79 begin
80 
81   open C;
82 
83   loop
84    fetch C into name_id;
85    Exit when C%NOTFOUND;
86    delete from jtf_act_types_tl where activity_name_id = name_id;
87    delete from jtf_act_types_b where activity_name_id = name_id;
88    end loop;
89 
90    close c;
91 end deleteActivityType;
92 
93 procedure subscribeActivityType(AppID IN number, CategoryName IN varchar2, ActivityName IN varchar2)
94 AS
95 v_activityname_id NUMBER;
96 v_act_app_cats_id NUMBER;
97 v_act_types_b_id NUMBER;
98 begin
99    -- get the jtf_act_app_cats_id from jtf_act_app_cats_id table
100   select jtf_act_app_cats_id into v_act_app_cats_id from jtf_act_app_cats
101   	where application_id = AppID and category_name_code=CategoryName;
102 
103    -- get the activity name id
104   v_activityname_id := getActivityNameID(ActivityName);
105 
106   select jtf_act_types_b_id into v_act_types_b_id from jtf_act_types_b
107 	where activity_name_id = v_activityname_id;
108 
109   insert into jtf_act_activity_cats
110 	(jtf_act_types_b_id, jtf_act_app_cats_id, priority, status_code,
111 	 created_by, creation_date, last_updated_by, last_update_date)
112    values (v_act_types_b_id, v_act_app_cats_id, 1, 'ON',
113 	        AppID, sysdate, AppID, sysdate);
114 
115     end subscribeActivityType;
116 
117 procedure unsubscribeActivityType(AppID IN NUMBER, CategoryName IN varchar2, ActivityName IN varchar2)
118 AS
119 v_activityname_id NUMBER;
120 v_act_app_cats_id NUMBER;
121 v_act_types_b_id NUMBER;
122 begin
123 
124    -- get the jtf_act_app_cats_id from jtf_act_app_cats_id table
125   select jtf_act_app_cats_id into v_act_app_cats_id from jtf_act_app_cats
126 	where application_id = AppID and category_name_code=CategoryName;
127 
128    -- get the activity name id
129   v_activityname_id := getActivityNameID(ActivityName);
130 
131   select jtf_act_types_b_id into v_act_types_b_id from jtf_act_types_b
132 	where activity_name_id = v_activityname_id;
133 
134   delete from jtf_act_activity_cats
135 	where jtf_act_app_cats_id = v_act_app_cats_id and
136               jtf_act_types_b_id = v_act_types_b_id;
137 end unsubscribeActivityType;
138 
139 procedure setActivityPriority(appID IN NUMBER, categoryname IN varchar2, activityname IN varchar2, Priority IN NUMBER)
140 AS
141 
142 v_activityname_id NUMBER;
143 v_act_app_cats_id NUMBER;
144 v_act_types_b_id NUMBER;
145 begin
146   -- get the jtf_act_app_cats_id from jtf_act_app_cats_id table
147   select jtf_act_app_cats_id into v_act_app_cats_id from jtf_act_app_cats
148 	 where application_id = AppID and category_name_code=CategoryName;
149   -- get the activity name id
150   v_activityname_id := getActivityNameID(ActivityName);
151   select jtf_act_types_b_id into v_act_types_b_id from jtf_act_types_b
152 	  where activity_name_id = v_activityname_id;
153 
154   update jtf_act_activity_cats set priority = Priority
155 	  where jtf_act_app_cats_id = v_act_app_cats_id and
156               jtf_act_types_b_id = v_act_types_b_id;
157 end setActivityPriority;
158 
159 procedure setActivityStatus(appID IN NUMBER, categoryname IN varchar2, activityname IN varchar2, Status IN varchar2)
160 AS
161 
162 v_activityname_id NUMBER;
163 v_act_app_cats_id NUMBER;
164 v_act_types_b_id NUMBER;
165 begin
166   -- get the jtf_act_app_cats_id from jtf_act_app_cats_id table
167  select jtf_act_app_cats_id into v_act_app_cats_id from jtf_act_app_cats
168 	where application_id = AppID and category_name_code=CategoryName;
169 
170   -- get the activity name id
171    v_activityname_id := getActivityNameID(ActivityName);
172  select jtf_act_types_b_id into v_act_types_b_id from jtf_act_types_b
173 	where activity_name_id = v_activityname_id;
174 
175  update jtf_act_activity_cats set status_code = Status
176   	where jtf_act_app_cats_id = v_act_app_cats_id and
177               jtf_act_types_b_id = v_act_types_b_id;
178 
179 end setActivityStatus;
180 
181 
182 -- These APIs help insert rows in _B and _T tables
183 
184 PROCEDURE addActivityType (
185   p_ActivityName IN JTF_ACT_TYPES_TL.activity_name%TYPE,
186   p_appID IN JTF_ACT_TYPES_TL.last_updated_by%TYPE,
187   p_tableName IN JTF_ACT_TYPES_B.table_name%TYPE,
188   p_Desc IN JTF_ACT_TYPES_TL.description%TYPE,
189   p_PK OUT NOCOPY /* file.sql.39 change */ NUMBER,
190   p_NameID OUT NOCOPY /* file.sql.39 change */ JTF_ACT_TYPES_B.activity_name_id%TYPE)
191 AS
192 v_FKey NUMBER;
193 v_row NUMBER;
194 begin
195  -- first check whether the activity name is already defined
196 IF (isActivityDefined(p_ActivityName) = 0 ) THEN
197 
198  -- First do an insert into JTF_ACT_TYPES_B table
199  -- activity_name_id is the same as primary key
200 INSERT INTO JTF_ACT_TYPES_B
201  ( table_name, created_by, creation_date, last_updated_by, last_update_date)
202   VALUES (p_tableName, p_appID, SYSDATE, p_appID, SYSDATE);
203 
204 select jtf_act_types_b_s.currval into p_PK from dual;
205 
206  -- Finally insert the translatable columns into JTF_ProfileProperties_TL
207 INSERT INTO JTF_ACT_TYPES_TL
208 ( activity_name_id, activity_name, act_description,  language,
209   created_by, creation_date, last_updated_by, last_update_date)
210 VALUES (p_PK, p_ActivityName, p_Desc, userenv('LANG'),
211         p_appID, SYSDATE, p_appID, SYSDATE);
212 p_NameID := p_PK;
213 END IF;
214 
215 END addActivityType;
216 
217 PROCEDURE addActivityAttribute (
218   p_ActivityName IN JTF_ACT_TYPES_TL.activity_name%TYPE,
219   p_appID IN JTF_ACT_TYPES_TL.last_updated_by%TYPE,
220   p_AttributeName IN JTF_ACT_TYPES_ATTRS_TL.attribute_name%TYPE,
221   p_ColumnName IN JTF_ACT_TYPES_ATTRS_B.column_name%TYPE)
222 AS
223 v_activity_name_id NUMBER;
224 v_attribute_name_id NUMBER;
225 begin
226 
227  -- first check whether the activity name is already defined
228 IF (isActivityDefined(p_ActivityName) > 0 ) THEN
229 
230  v_activity_name_id := getActivityNameID(p_ActivityName);
231  -- First do an insert into JTF_ACT_TYPES_ATTRS_B table
232  -- activity_name_id is the same as primary key
233 INSERT INTO JTF_ACT_TYPES_ATTRS_B
234  ( activity_name_id, column_name, created_by, creation_date, last_updated_by, last_update_date)
235   VALUES (v_activity_name_id, p_ColumnName, p_appID, SYSDATE, p_appID, SYSDATE);
236 
237 SELECT  attribute_name_id INTO  v_attribute_name_id
238 FROM jtf_act_types_attrs_b
239 WHERE activity_name_id = v_activity_name_id
240      and column_name = p_ColumnName;
241 
242  -- Finally insert the translatable columns into JTF_ProfileProperties_TL
243 INSERT INTO JTF_ACT_TYPES_ATTRS_TL
244 ( attribute_name_id, attribute_name, language,
245   created_by, creation_date, last_updated_by, last_update_date)
246 VALUES (v_attribute_name_id, p_AttributeName, userenv('LANG'),
247         p_appID, SYSDATE, p_appID, SYSDATE);
248 END IF;
249 
250 END addActivityAttribute;
251 
252 
253 
254 procedure run is
255 v_PK NUMBER;
256 v_NameID NUMBER;
257 v_AttrID NUMBER;
258 v_ATTR VARCHAR2(50);
259 begin
260 -- Simply call addAttribute with dummy input
261 --v_PK := isActivityDefined('foo');
262 v_PK := getActivityNameID('Customer_DisputeBill2');
263 --addActivityType('foo', 10, 'foo','this is a sample activity type', v_PK, v_NameID);
264 --addActivityAttribute('Customer_DisputeBill', 10, 'billid', 'column1');
265 --deleteActivityType('foo3' );
266 unsubscribeActivityType(690, 'Bill Management', 'Customer_DisputeBill2');
267 --DBMS_OUTPUT.ENABLE(1000000);
268 --DBMS_OUTPUT.PUT_LINE('This is the output' );
269 --DBMS_OUTPUT.PUT_LINE('Value of primary key is: ' || v_PK);
270 --DBMS_OUTPUT.PUT_LINE('Value of name id  is: ' || v_NameID);
271 end run;
272 
273 end jtf_activity_sqlapi;