DBA Data[Home] [Help]

PACKAGE BODY: APPS.EGO_UPGRADE_USER_ATTR_VAL_PUB

Source


1 PACKAGE BODY EGO_UPGRADE_USER_ATTR_VAL_PUB AS
2 /* $Header: EGOUPGAB.pls 120.0 2005/05/26 21:35:12 appldev noship $ */
3 
4 
5 
6                    ------------------------------
7                    -- Private Global Variables --
8                    ------------------------------
9 
10     G_PKG_NAME                               CONSTANT VARCHAR2(30) := 'EGO_UPGRADE_USER_ATTR_VAL_PUB';
11 
12 
13                           ----------------
14                           -- Procedures --
15                           ----------------
16 
17 ----------------------------------------------------------------------
18 
19 PROCEDURE Upgrade_Cat_User_Attrs_Data
20 (
21         p_api_version                   IN  NUMBER DEFAULT 1.0
22        ,p_functional_area_id 		IN  NUMBER
23        ,p_attr_group_name          	IN  VARCHAR2 DEFAULT NULL
24        ,x_return_status                 OUT NOCOPY VARCHAR2
25        ,x_errorcode                     OUT NOCOPY NUMBER
26        ,x_msg_count                     OUT NOCOPY NUMBER
27        ,x_msg_data                      OUT NOCOPY VARCHAR2
28 ) IS
29 
30     l_proc_name  CONSTANT    VARCHAR2(30)  :=  'Upgrade_Cat_User_Attrs_Data';
31     l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
32     l_data_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
33     l_attr_group_id NUMBER;
34     l_category_set_id NUMBER;
35     l_return_status VARCHAR2(1);
36 
37     ---------------------------------------------------
38     -- For finding the default category set for the  --
39     -- functional area				     --
40     ---------------------------------------------------
41     CURSOR category_set_cursor
42     IS
43     SELECT CATEGORY_SET_ID
44       FROM MTL_DEFAULT_CATEGORY_SETS
45      WHERE FUNCTIONAL_AREA_ID = p_functional_area_id;
46 
47     -----------------------------------------------------
48     -- For finding all categories in the category set  --
49     -- that don't already have attribute group entries --
50     -----------------------------------------------------
51     CURSOR category_cursor (p_cat_set_id IN NUMBER
52 			    ,p_attr_group_id IN NUMBER)
53     IS
54    SELECT CAT.CATEGORY_ID
55       FROM MTL_CATEGORY_SET_VALID_CATS CAT, MTL_CATEGORY_SETS_B CATSET
56      WHERE CAT.CATEGORY_SET_ID = CATSET.CATEGORY_SET_ID
57        AND CATSET.CATEGORY_SET_ID = p_cat_set_id
58        AND NOT EXISTS
59                 (SELECT CATEGORY_ID
60                  FROM EGO_PRODUCT_CAT_SET_EXT
61                  WHERE CATEGORY_SET_ID = CATSET.CATEGORY_SET_ID
62 				 AND CATEGORY_ID = CAT.CATEGORY_ID
63                  AND ATTR_GROUP_ID = p_attr_group_id);
64 
65     -------------------------------------------------------
66     -- For finding ids for all category-level attribute  --
67     -- groups. This cursor contains hard-coded 		 --
68     -- attribute group names as there is currently no	 --
69     -- mechanism to determine whether a particular	 --
70     -- attribute group is at the category level or	 --
71     -- catalog level. In addition, there is currently no --
72     -- means to determine functional area to attribute   --
73     -- group type association                           --
74     -------------------------------------------------------
75     CURSOR cat_level_attr_gp_cursor
76     IS
77     SELECT ATTRS.ATTR_GROUP_ID, ATTRS.ATTR_GROUP_NAME
78       FROM EGO_ATTR_GROUPS_V ATTRS
79      WHERE ATTRS.ATTR_GROUP_NAME = 'SalesAndMarketing'
80        AND p_functional_area_id = 11;
81 
82     ----------------------------------------------
83     -- For finding the id of an attribute group --
84     ----------------------------------------------
85     CURSOR attr_gp_id_cursor (attribute_group_name IN VARCHAR2)
86     IS
87     SELECT ATTRS.ATTR_GROUP_ID
88       FROM EGO_ATTR_GROUPS_V ATTRS
89      WHERE ATTRS.ATTR_GROUP_NAME = attribute_group_name;
90 
91   BEGIN
92 
93 
94     ---------------------------------------------------
95     -- Get default category set for functional area  --
96     ---------------------------------------------------
97     OPEN category_set_cursor;
98     FETCH category_set_cursor INTO l_category_set_id;
99     CLOSE category_set_cursor;
100 
101     ------------------------------------------------------------------
102     -- Initialize the PK column array and the attribute data array  --
103     -- before we start iterating thru the categories in the category--
104     -- set				                            --
105     ------------------------------------------------------------------
106     l_pk_column_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY(
107                           EGO_COL_NAME_VALUE_PAIR_OBJ('CATEGORY_SET_ID',
108 						      l_category_set_id));
109 
110     l_data_column_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY(
111                           EGO_COL_NAME_VALUE_PAIR_OBJ('CATEGORY_ID', null));
112 
113     ------------------------------------------------------------------
114     -- If no specific attribute group has come in, then process all --
115     -- attribute groups attached to the category set                --
116     ------------------------------------------------------------------
117     IF (p_attr_group_name IS NULL) THEN
118 
119         FOR attr_gp_rec IN cat_level_attr_gp_cursor
120         LOOP
121     	  ------------------------------------------------------------------
122     	  -- We loop through the categories in the category set, and      --
123     	  -- build appropriate objects to call                            --
124     	  -- EGO_USER_ATTRS_DATA_PVT.Perform_DML_On_Row                   --
125     	  ------------------------------------------------------------------
126        	  FOR cat_rec IN category_cursor(l_category_set_id,
127 	  			  	 attr_gp_rec.attr_group_id)
128           LOOP
129           	------------------------------------------------------------------
130           	-- Now we update the Primary Key value, and clear out the Attr  --
131           	-- Data table                                                 --
132           	------------------------------------------------------------------
133           	l_data_column_name_value_pairs(1).VALUE := cat_rec.CATEGORY_ID;
134 
135         	EGO_USER_ATTRS_DATA_PVT.Perform_DML_On_Row(
136                   p_api_version                  => 1.0
137                   ,p_object_name                 => 'EGO_CATEGORY_SET'
138                   ,p_application_id              => 431
139                   ,p_attr_group_type             => 'EGO_PRODUCT_CATEGORY_SET'
140                   ,p_attr_group_name             => attr_gp_rec.attr_group_name
141                   ,p_pk_column_name_value_pairs  => l_pk_column_name_value_pairs
142                   ,p_class_code_name_value_pairs => NULL
143                   ,p_data_level_name_value_pairs => l_data_column_name_value_pairs
144                   ,p_attr_name_value_pairs       => null
145                   ,p_use_def_vals_on_insert      => FND_API.G_TRUE
146 		  ,x_return_status               => x_return_status
147                   ,x_errorcode                   => x_errorcode
148                   ,x_msg_count                   => x_msg_count
149                   ,x_msg_data                    => x_msg_data
150                   );
151 
152 	  END LOOP; -- category loop
153 	END LOOP; -- attribute gp loop
154 
155     ELSE
156 
157         ------------------------------------------------------------------
158         -- If a  specific attribute group has come in, then process     --
159         -- only that attribute group                                    --
160         ------------------------------------------------------------------
161 
162     	OPEN attr_gp_id_cursor(p_attr_group_name);
163     	FETCH attr_gp_id_cursor INTO l_attr_group_id;
164     	IF (attr_gp_id_cursor%FOUND) THEN
165 
166            ------------------------------------------------------------------
167            -- We loop through the categories in the category set, and      --
168            -- build appropriate objects to call                            --
169            -- EGO_USER_ATTRS_DATA_PVT.Perform_DML_On_Row                   --
170            ------------------------------------------------------------------
171 
172            FOR cat_rec IN category_cursor(l_category_set_id,
173                                           l_attr_group_id)
174            LOOP
175            	------------------------------------------
176 	   	-- Now we update the Primary Key value  --
177            	------------------------------------------
178            	l_data_column_name_value_pairs(1).VALUE := cat_rec.CATEGORY_ID;
179 
180     	   	EGO_USER_ATTRS_DATA_PVT.Perform_DML_On_Row(
181         	   p_api_version                  => 1.0
182        		   ,p_object_name                 => 'EGO_CATEGORY_SET'
183        		   ,p_application_id              => 431
184        		   ,p_attr_group_type             => 'EGO_PRODUCT_CATEGORY_SET'
185        		   ,p_attr_group_name             => p_attr_group_name
186        		   ,p_pk_column_name_value_pairs  => l_pk_column_name_value_pairs
187        		   ,p_class_code_name_value_pairs => NULL
188        		   ,p_data_level_name_value_pairs => l_data_column_name_value_pairs
189        		   ,p_attr_name_value_pairs       => null
190        		   ,p_use_def_vals_on_insert      => FND_API.G_TRUE
191 		   ,x_return_status               => x_return_status
192        		   ,x_errorcode                   => x_errorcode
193        		   ,x_msg_count                   => x_msg_count
194        		   ,x_msg_data                    => x_msg_data
195     		   );
196 
197 	    END LOOP; -- Loop thru all categories in the category set
198 	END IF; -- IF attribute group id was found
199     END IF; -- If attribute_group_name is NULL
200 
201 
202     COMMIT WORK;
203 
204   EXCEPTION
205 
206     WHEN OTHERS THEN
207       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
208       x_msg_data := 'Executing - '||G_PKG_NAME||'.'||l_proc_name||' '||SQLERRM;
209 
210 END Upgrade_Cat_User_Attrs_Data;
211 
212 ----------------------------------------------------------------------
213 
214 END EGO_UPGRADE_USER_ATTR_VAL_PUB;
215