DBA Data[Home] [Help]

PACKAGE BODY: APPS.RG_DSS_DIMENSIONS_PKG

Source


1 PACKAGE BODY RG_DSS_DIMENSIONS_PKG AS
2 /* $Header: rgiddimb.pls 120.5 2004/09/20 06:34:53 adesu ship $ */
3 --
4 -- Name
5 --   RG_DSS_DIMENSIONS_PKG
6 -- Purpose
7 --   to include all server side procedures AND packages for table
8 --   rg_dss_dimensions
9 -- Notes
10 --
11 -- History
12 --   06/16/95	A Chen	Created
13 --
14 
15 /* Variables */
16 
17 G_Account_Column_Name VARCHAR2(30);
18 
19 
20 --
21 -- PRIVATE FUNCTIONS
22 --   None.
23 --
24 -- PUBLIC FUNCTIONS
25 --
26 PROCEDURE get_cache_data(COAId NUMBER,
27                          AccountingSegmentColumn IN OUT NOCOPY VARCHAR2) IS
28 BEGIN
29   IF (NOT fnd_flex_apis.get_segment_column(101,
30                                            'GL#',
31                                            COAId,
32                                            'GL_ACCOUNT',
33                                            AccountingSegmentColumn)) THEN
34     FND_MESSAGE.set_name('SQLGL', 'GL_NO_ACCOUNT_SEG_DEFINED');
35     APP_EXCEPTION.raise_exception;
36   END IF;
37   G_Account_Column_Name := AccountingSegmentColumn;
38 END get_cache_data;
39 
40 
41 FUNCTION used_in_frozen_system(X_Dimension_Id NUMBER) RETURN NUMBER IS
42   dummy   NUMBER;
43 BEGIN
44   SELECT    1
45   INTO      dummy
46   FROM      dual
47   WHERE     NOT EXISTS
48              (SELECT    1
49               FROM      rg_dss_systems sys,
50                         rg_dss_system_variables svr,
51                         rg_dss_var_dimensions vdm,
52                         rg_dss_dimensions dim
53               WHERE     dim.dimension_id = X_Dimension_Id
54               AND       dim.dimension_id = vdm.dimension_id
55               AND       vdm.variable_id = svr.variable_id
56               AND       svr.system_id = sys.system_id
57               AND       sys.freeze_flag = 'Y');
58   RETURN(0);
59 EXCEPTION
60   WHEN NO_DATA_FOUND THEN
61     RETURN(1);
62 END used_in_frozen_system;
63 
64 
65 PROCEDURE check_unique_name(X_rowid VARCHAR2,
66                             X_name VARCHAR2) IS
67   dummy NUMBER;
68 BEGIN
69   SELECT    1
70   INTO      dummy
71   FROM      dual
72   WHERE     NOT EXISTS
73              (SELECT    1
74               FROM      rg_dss_dimensions
75               WHERE     name = X_name
76               AND       ((X_rowid IS NULL) OR (rowid <> X_rowid))
77              );
78 
79   EXCEPTION
80     WHEN NO_DATA_FOUND THEN
81       FND_MESSAGE.set_name('RG','RG_FORMS_OBJECT_EXISTS');
82       FND_MESSAGE.set_token('OBJECT', 'RG_DSS_DIMENSION',TRUE);
83       APP_EXCEPTION.raise_exception;
84 END check_unique_name;
85 
86 
87 PROCEDURE check_unique_object_name(X_rowid VARCHAR2,
88                                    X_object_name VARCHAR2) IS
89   dummy NUMBER;
90 BEGIN
91   SELECT    1
92   INTO      dummy
93   FROM      dual
94   WHERE     NOT EXISTS
95              (SELECT    1
96               FROM      rg_dss_dimensions
97               WHERE     object_name = X_object_name
98               AND       ((X_rowid IS NULL) OR (rowid <> X_rowid))
99              );
100 
101   EXCEPTION
102     WHEN NO_DATA_FOUND THEN
103       FND_MESSAGE.set_name('RG','RG_FORMS_OBJECT_EXISTS');
104       FND_MESSAGE.set_token('OBJECT','RG_DSS_OBJECT_NAME',TRUE);
105       APP_EXCEPTION.raise_exception;
106 END check_unique_object_name;
107 
108 
109 PROCEDURE check_unique_object_prefix(
110             X_rowid VARCHAR2,
111             X_object_prefix VARCHAR2) IS
112   dummy NUMBER;
113 BEGIN
114   SELECT    1
115   INTO      dummy
116   FROM      dual
117   WHERE     NOT EXISTS
118              (SELECT    1
119               FROM      rg_dss_dimensions
120               WHERE     object_prefix = X_object_prefix
121               AND       ((X_rowid IS NULL) OR (rowid <> X_rowid))
122              );
123 
124   EXCEPTION
125     WHEN NO_DATA_FOUND THEN
126       FND_MESSAGE.set_name('RG','RG_FORMS_OBJECT_EXISTS');
127       FND_MESSAGE.set_token('OBJECT','RG_DSS_OBJECT_PREFIX',TRUE);
128       APP_EXCEPTION.raise_exception;
129 END check_unique_object_prefix;
130 
131 
132 PROCEDURE check_unique(X_Rowid VARCHAR2,
133                        X_Name  VARCHAR2,
134                        X_Object_Name VARCHAR2,
135                        X_Object_Prefix VARCHAR2) IS
136 BEGIN
137   check_unique_name(X_Rowid, X_Name);
138   check_unique_object_name(X_Rowid, X_Object_Name);
139   check_unique_object_prefix(X_Rowid, X_Object_Prefix);
140 END check_unique;
141 
142 
143 PROCEDURE check_references(X_dimension_id NUMBER) IS
144   dummy NUMBER;
145 BEGIN
146   SELECT    1
147   INTO      dummy
148   FROM      dual
149   WHERE     NOT EXISTS
150              (SELECT    1
151               FROM      rg_dss_var_dimensions
152               WHERE     dimension_id = X_dimension_id
153               UNION ALL
154               SELECT    1
155               FROM      rg_dss_hierarchies
156               WHERE     dimension_id = X_dimension_id
157              );
158 
159   EXCEPTION
160     WHEN NO_DATA_FOUND THEN
161       FND_MESSAGE.set_name('RG','RG_DSS_REF_DIMENSION');
162       APP_EXCEPTION.raise_exception;
163 END check_references;
164 
165 
166 FUNCTION get_new_id RETURN NUMBER IS
167   next_dimension_id NUMBER;
168 BEGIN
169   SELECT    rg_dss_dimensions_s.nextval
170   INTO      next_dimension_id
171   FROM      dual;
172 
173   RETURN (next_dimension_id);
174 END get_new_id;
175 
176 
177 FUNCTION num_details(X_Dimension_Id NUMBER) RETURN NUMBER IS
178   NumRecords NUMBER;
179 BEGIN
180   SELECT COUNT(dimension_id)
181   INTO   NumRecords
182   FROM   rg_dss_dim_segments
183   WHERE  dimension_id = X_dimension_id;
184 
185   RETURN(NumRecords);
186 END num_details;
187 
188 
189 PROCEDURE set_dimension_type(
190             X_Dimension_Id NUMBER,
191             X_Dimension_Type IN OUT NOCOPY VARCHAR2,
192             Num_Records NUMBER DEFAULT NULL) IS
193   NumRecords  NUMBER;
194   RangeSetId  NUMBER;
195   ApplicationColumnName VARCHAR2(30);
196   AccountType VARCHAR2(1);
197 BEGIN
198   NumRecords := NVL(Num_Records, num_details(X_Dimension_Id));
199 
200   IF (NumRecords = 1) THEN
201     /* There is only one record; check its range_set_id */
202     SELECT range_set_id, application_column_name, account_type
203     INTO   RangeSetId, ApplicationColumnName, AccountType
204     FROM   rg_dss_dim_segments
205     WHERE  dimension_id = X_dimension_id;
206 
207     IF (RangeSetId IS NULL) THEN
208       /* If account segment, then account_type = All  => type = 'P',
209        *                          account_type <> All => type = 'S'
210        */
211       IF ((ApplicationColumnName = G_Account_Column_Name) AND
212           (AccountType <> 'F')) THEN
213         X_Dimension_Type := 'S';
214       ELSE
215         X_Dimension_Type := 'P';
216       END IF;
217     ELSE
218       X_Dimension_Type := 'S';
219     END IF;
220   ELSIF (NumRecords > 1) THEN
221     X_Dimension_Type := 'M';
222   ELSE
223     NULL;
224   END IF;
225 END set_dimension_type;
226 
227 
228 PROCEDURE pre_insert(X_Rowid VARCHAR2,
229                      X_Name  VARCHAR2,
230                      X_Object_Name VARCHAR2,
231                      X_Object_Prefix VARCHAR2,
232                      X_Level_Code    VARCHAR2,
233                      X_Dimension_Id IN OUT NOCOPY NUMBER,
234                      X_Dimension_Type IN OUT NOCOPY VARCHAR2) IS
235   NumRecords NUMBER;
236 BEGIN
237   check_unique(X_Rowid, X_Name, X_Object_Name, X_Object_Prefix);
238 
239   IF (X_dimension_id IS NULL) THEN
240     X_Dimension_Id := get_new_id;
241   END IF;
242 
243   /* Ensure that there are detail records and set dimension_type */
244   NumRecords := num_details(X_Dimension_Id);
245   IF (NumRecords = 0) THEN
246     /* No rows returned - Error: at least one detail must exist */
247     FND_MESSAGE.set_name('RG','RG_DSS_DETAIL_REQUIRED');
248     APP_EXCEPTION.raise_exception;
249   ELSIF (NumRecords > 1 AND X_Level_Code = 'S') THEN
250     FND_MESSAGE.set_name('RG','RG_DSS_SUM_DIM_VIOL');
251     APP_EXCEPTION.raise_exception;
252   ELSE
253     set_dimension_type(X_Dimension_Id, X_Dimension_Type, NumRecords);
254   END IF;
255 END pre_insert;
256 
257 
258 PROCEDURE pre_update(X_Level_Code  VARCHAR2,
259                      X_Dimension_Id NUMBER) IS
260   NumRecords NUMBER;
261 BEGIN
262   IF (RG_DSS_DIMENSIONS_PKG.used_in_frozen_system(X_Dimension_Id) = 1) THEN
263     -- can't modify a dimension that is used in a frozen system
264     FND_MESSAGE.set_name('RG', 'RG_DSS_FROZEN_SYSTEM');
265     FND_MESSAGE.set_token('OBJECT', 'RG_DSS_DIMENSION', TRUE);
266     APP_EXCEPTION.raise_exception;
267   END IF;
268 
269   IF (X_Level_Code = 'S') THEN
270     NumRecords := num_details(X_Dimension_Id);
271     IF (NumRecords > 1 ) THEN
272        FND_MESSAGE.set_name('RG','RG_DSS_SUM_DIM_VIOL');
273        APP_EXCEPTION.raise_exception;
274     END IF;
275   END IF;
276 
277 END pre_update;
278 
279 
280 PROCEDURE pre_delete(X_Dimension_Id NUMBER) IS
281 BEGIN
282   IF (RG_DSS_DIMENSIONS_PKG.used_in_frozen_system(X_Dimension_Id) = 1) THEN
283     -- can't modify a dimension that is used in a frozen system
284     FND_MESSAGE.set_name('RG', 'RG_DSS_FROZEN_SYSTEM');
285     FND_MESSAGE.set_token('OBJECT', 'RG_DSS_DIMENSION', TRUE);
286     APP_EXCEPTION.raise_exception;
287   END IF;
288 END pre_delete;
289 
290   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2,
291                        X_Dimension_Id                   NUMBER,
292                        X_Name                           VARCHAR2,
293                        X_Object_Name                    VARCHAR2,
294                        X_Object_Prefix                  VARCHAR2,
295                        X_Value_Prefix                   VARCHAR2,
296                        X_Row_Label                      VARCHAR2,
297                        X_Column_Label                   VARCHAR2,
298                        X_Selector_Label                 VARCHAR2,
299                        X_Level_Code                     VARCHAR2,
300                        X_Dimension_Type                 VARCHAR2,
301                        X_Dimension_By_Currency          VARCHAR2,
302                        X_Last_Update_Date               DATE,
303                        X_Last_Updated_By                NUMBER,
304                        X_Creation_Date                  DATE,
305                        X_Created_By                     NUMBER,
306                        X_Last_Update_Login              NUMBER,
307                        X_Id_Flex_Code                   VARCHAR2,
308                        X_Id_Flex_Num                    NUMBER,
309                        X_Description                    VARCHAR2,
310                        X_Context                        VARCHAR2,
311                        X_Attribute1                     VARCHAR2,
312                        X_Attribute2                     VARCHAR2,
313                        X_Attribute3                     VARCHAR2,
314                        X_Attribute4                     VARCHAR2,
315                        X_Attribute5                     VARCHAR2,
316                        X_Attribute6                     VARCHAR2,
317                        X_Attribute7                     VARCHAR2,
318                        X_Attribute8                     VARCHAR2,
319                        X_Attribute9                     VARCHAR2,
320                        X_Attribute10                    VARCHAR2,
321                        X_Attribute11                    VARCHAR2,
322                        X_Attribute12                    VARCHAR2,
323                        X_Attribute13                    VARCHAR2,
324                        X_Attribute14                    VARCHAR2,
325                        X_Attribute15                    VARCHAR2
326   ) IS
327     CURSOR C IS SELECT rowid FROM rg_dss_dimensions
328                  WHERE dimension_id = X_Dimension_Id;
329    BEGIN
330        INSERT INTO rg_dss_dimensions(
331               dimension_id,
332               name,
333               object_name,
334               object_prefix,
335               value_prefix,
336               row_label,
337               column_label,
338               selector_label,
339               level_code,
340               dimension_type,
341               dimension_by_currency,
342               last_update_date,
343               last_updated_by,
344               creation_date,
345               created_by,
346               last_update_login,
347               id_flex_code,
348               id_flex_num,
349               description,
350               context,
351               attribute1,
352               attribute2,
353               attribute3,
354               attribute4,
355               attribute5,
356               attribute6,
357               attribute7,
358               attribute8,
359               attribute9,
360               attribute10,
361               attribute11,
362               attribute12,
363               attribute13,
364               attribute14,
365               attribute15
366              ) VALUES (
367               X_Dimension_Id,
368               X_Name,
369               X_Object_Name,
370               X_Object_Prefix,
371               X_Value_Prefix,
372               X_Row_Label,
373               X_Column_Label,
374               X_Selector_Label,
375               X_Level_Code,
376               X_Dimension_Type,
377               X_Dimension_By_Currency,
378               X_Last_Update_Date,
379               X_Last_Updated_By,
380               X_Creation_Date,
381               X_Created_By,
382               X_Last_Update_Login,
383               X_Id_Flex_Code,
384               X_Id_Flex_Num,
385               X_Description,
386               X_Context,
387               X_Attribute1,
388               X_Attribute2,
389               X_Attribute3,
390               X_Attribute4,
391               X_Attribute5,
392               X_Attribute6,
393               X_Attribute7,
394               X_Attribute8,
395               X_Attribute9,
396               X_Attribute10,
397               X_Attribute11,
398               X_Attribute12,
399               X_Attribute13,
400               X_Attribute14,
401               X_Attribute15
402              );
403 
404     OPEN C;
405     FETCH C INTO X_Rowid;
406     if (C%NOTFOUND) then
407       CLOSE C;
408       Raise NO_DATA_FOUND;
409     end if;
410     CLOSE C;
411   END Insert_Row;
412 
413 
414   PROCEDURE Update_Row(X_Rowid                          VARCHAR2,
415                        X_Dimension_Id                   NUMBER,
416                        X_Name                           VARCHAR2,
417                        X_Object_Name                    VARCHAR2,
418                        X_Object_Prefix                  VARCHAR2,
419                        X_Value_Prefix                   VARCHAR2,
420                        X_Row_Label                      VARCHAR2,
421                        X_Column_Label                   VARCHAR2,
422                        X_Selector_Label                 VARCHAR2,
423                        X_Level_Code                     VARCHAR2,
424                        X_Dimension_Type                 VARCHAR2,
425                        X_Dimension_By_Currency          VARCHAR2,
426                        X_Last_Update_Date               DATE,
427                        X_Last_Updated_By                NUMBER,
428                        X_Last_Update_Login              NUMBER,
429                        X_Id_Flex_Code                   VARCHAR2,
433                        X_Attribute1                     VARCHAR2,
430                        X_Id_Flex_Num                    NUMBER,
431                        X_Description                    VARCHAR2,
432                        X_Context                        VARCHAR2,
434                        X_Attribute2                     VARCHAR2,
435                        X_Attribute3                     VARCHAR2,
436                        X_Attribute4                     VARCHAR2,
437                        X_Attribute5                     VARCHAR2,
438                        X_Attribute6                     VARCHAR2,
439                        X_Attribute7                     VARCHAR2,
440                        X_Attribute8                     VARCHAR2,
441                        X_Attribute9                     VARCHAR2,
442                        X_Attribute10                    VARCHAR2,
443                        X_Attribute11                    VARCHAR2,
444                        X_Attribute12                    VARCHAR2,
445                        X_Attribute13                    VARCHAR2,
446                        X_Attribute14                    VARCHAR2,
447                        X_Attribute15                    VARCHAR2
448   ) IS
449   BEGIN
450     UPDATE rg_dss_dimensions
451     SET
452        dimension_id                    =     X_Dimension_Id,
453        name                            =     X_Name,
454        object_name                     =     X_Object_Name,
455        object_prefix                   =     X_Object_Prefix,
456        value_prefix                    =     X_Value_Prefix,
457        row_label                       =     X_Row_Label,
458        column_label                    =     X_Column_Label,
459        selector_label                  =     X_Selector_Label,
460        level_code                      =     X_Level_Code,
461        dimension_type                  =     X_Dimension_Type,
462        dimension_by_currency           =     X_Dimension_By_Currency,
463        last_update_date                =     X_Last_Update_Date,
464        last_updated_by                 =     X_Last_Updated_By,
465        last_update_login               =     X_Last_Update_Login,
466        id_flex_code                    =     X_Id_Flex_Code,
467        id_flex_num                     =     X_Id_Flex_Num,
468        description                     =     X_Description,
469        context                         =     X_Context,
470        attribute1                      =     X_Attribute1,
471        attribute2                      =     X_Attribute2,
472        attribute3                      =     X_Attribute3,
473        attribute4                      =     X_Attribute4,
474        attribute5                      =     X_Attribute5,
475        attribute6                      =     X_Attribute6,
476        attribute7                      =     X_Attribute7,
477        attribute8                      =     X_Attribute8,
478        attribute9                      =     X_Attribute9,
479        attribute10                     =     X_Attribute10,
480        attribute11                     =     X_Attribute11,
481        attribute12                     =     X_Attribute12,
482        attribute13                     =     X_Attribute13,
483        attribute14                     =     X_Attribute14,
484        attribute15                     =     X_Attribute15
485     WHERE rowid = X_Rowid;
486 
487     if (SQL%NOTFOUND) then
488       Raise NO_DATA_FOUND;
489     end if;
490   END Update_Row;
491 
492   PROCEDURE Load_Row(  X_Dimension_Id                   NUMBER,
493                        X_Name                           VARCHAR2,
494                        X_Object_Name                    VARCHAR2,
495                        X_Object_Prefix                  VARCHAR2,
496                        X_Value_Prefix                   VARCHAR2,
497                        X_Row_Label                      VARCHAR2,
498                        X_Column_Label                   VARCHAR2,
499                        X_Selector_Label                 VARCHAR2,
500                        X_Level_Code                     VARCHAR2,
501                        X_Dimension_Type                 VARCHAR2,
502                        X_Dimension_By_Currency          VARCHAR2,
503                        X_Id_Flex_Code                   VARCHAR2,
504                        X_Id_Flex_Num                    NUMBER,
505                        X_Description                    VARCHAR2,
506                        X_Context                        VARCHAR2,
507                        X_Attribute1                     VARCHAR2,
508                        X_Attribute2                     VARCHAR2,
509                        X_Attribute3                     VARCHAR2,
510                        X_Attribute4                     VARCHAR2,
511                        X_Attribute5                     VARCHAR2,
512                        X_Attribute6                     VARCHAR2,
513                        X_Attribute7                     VARCHAR2,
514                        X_Attribute8                     VARCHAR2,
515                        X_Attribute9                     VARCHAR2,
516                        X_Attribute10                    VARCHAR2,
517                        X_Attribute11                    VARCHAR2,
518                        X_Attribute12                    VARCHAR2,
519                        X_Attribute13                    VARCHAR2,
520                        X_Attribute14                    VARCHAR2,
524     user_id number := 0;
521                        X_Attribute15                    VARCHAR2,
522                        X_Owner                          VARCHAR2,
523 		       X_Force_Edits                    VARCHAR2) IS
525     v_rowid rowid := null;
526   BEGIN
527 
528     -- validate input parameters
529     IF ( X_Dimension_Id IS NULL OR X_Name IS NULL ) THEN
530       fnd_message.set_name('SQLGL', 'GL_LOAD_ROW_NO_DATA');
531       app_exception.raise_exception;
532     END IF;
533 
534     IF (X_Owner = 'SEED') THEN
535       user_id := 1;
536     END IF;
537 
538     BEGIN
539 
540        /* Check if the row exists in the database. If it does, retrieves
541           the creation date for update_row. */
542         SELECT rowid
543         into   v_rowid
544         FROM   rg_dss_dimensions
545         WHERE  dimension_id = X_Dimension_Id;
546     EXCEPTION
547         WHEN NO_DATA_FOUND THEN
548             RG_DSS_DIMENSIONS_PKG.Insert_Row(
549                 X_Rowid                => v_rowid,
550                 X_Dimension_Id         => X_Dimension_Id,
551                 X_Name                 => X_Name,
552                 X_Object_Name          => X_Object_Name,
553                 X_Object_Prefix        => X_Object_Prefix,
554                 X_Value_Prefix         => X_Value_Prefix,
555                 X_Row_Label            => X_Row_Label,
556                 X_Column_Label         => X_Column_Label,
557                 X_Selector_Label       => X_Selector_Label,
558                 X_Level_Code           => X_Level_Code,
559                 X_Dimension_Type       => X_Dimension_Type,
560                 X_Dimension_By_Currency=> X_Dimension_By_Currency,
561                 X_Last_Update_Date     => sysdate,
562                 X_Last_Updated_By      => user_id,
563                 X_Creation_Date        => sysdate,
564                 X_Created_By           => user_id,
565                 X_Last_Update_Login    => 0,
566                 X_Id_Flex_Code         => X_Id_Flex_Code,
567                 X_Id_Flex_Num          => X_Id_Flex_Num,
568                 X_Description          => X_Description,
569                 X_Context              => X_Context,
570                 X_Attribute1           => X_Attribute1,
571                 X_Attribute2           => X_Attribute2,
572                 X_Attribute3           => X_Attribute3,
573                 X_Attribute4           => X_Attribute4,
574                 X_Attribute5           => X_Attribute5,
575                 X_Attribute6           => X_Attribute6,
576                 X_Attribute7           => X_Attribute7,
577                 X_Attribute8           => X_Attribute8,
578                 X_Attribute9           => X_Attribute9,
579                 X_Attribute10          => X_Attribute10,
580                 X_Attribute11          => X_Attribute11,
581                 X_Attribute12          => X_Attribute12,
582                 X_Attribute13          => X_Attribute13,
583                 X_Attribute14          => X_Attribute14,
584                 X_Attribute15          => X_Attribute15);
585             return;
586     END;
587 
588     IF ( user_id = 1 or X_Force_Edits = 'Y' ) THEN
589             RG_DSS_DIMENSIONS_PKG.Update_Row(
590                 X_Rowid                => v_rowid,
591                 X_Dimension_Id         => X_Dimension_Id,
592                 X_Name                 => X_Name,
593                 X_Object_Name          => X_Object_Name,
594                 X_Object_Prefix        => X_Object_Prefix,
595                 X_Value_Prefix         => X_Value_Prefix,
596                 X_Row_Label            => X_Row_Label,
597                 X_Column_Label         => X_Column_Label,
598                 X_Selector_Label       => X_Selector_Label,
599                 X_Level_Code           => X_Level_Code,
600                 X_Dimension_Type       => X_Dimension_Type,
601                 X_Dimension_By_Currency=> X_Dimension_By_Currency,
602                 X_Last_Update_Date     => sysdate,
603                 X_Last_Updated_By      => user_id,
604                 X_Last_Update_Login    => 0,
605                 X_Id_Flex_Code         => X_Id_Flex_Code,
606                 X_Id_Flex_Num          => X_Id_Flex_Num,
607                 X_Description          => X_Description,
608                 X_Context              => X_Context,
609                 X_Attribute1           => X_Attribute1,
610                 X_Attribute2           => X_Attribute2,
611                 X_Attribute3           => X_Attribute3,
612                 X_Attribute4           => X_Attribute4,
613                 X_Attribute5           => X_Attribute5,
614                 X_Attribute6           => X_Attribute6,
615                 X_Attribute7           => X_Attribute7,
616                 X_Attribute8           => X_Attribute8,
617                 X_Attribute9           => X_Attribute9,
618                 X_Attribute10          => X_Attribute10,
619                 X_Attribute11          => X_Attribute11,
620                 X_Attribute12          => X_Attribute12,
621                 X_Attribute13          => X_Attribute13,
622                 X_Attribute14          => X_Attribute14,
623                 X_Attribute15          => X_Attribute15);
624     END IF;
625   END Load_Row;
626 
627   PROCEDURE Translate_Row(  X_Dimension_Id                   NUMBER,
628                        X_Name                           VARCHAR2,
629                        X_Description                    VARCHAR2,
630                        X_Owner                          VARCHAR2,
631 		       X_Force_Edits                    VARCHAR2) IS
632     user_id number := 0;
633   BEGIN
634 
635     IF (X_Owner = 'SEED') THEN
636       user_id := 1;
637     END IF;
638 
639     IF ( user_id = 1 or X_Force_Edits = 'Y' ) THEN
640          UPDATE rg_dss_dimensions
641          SET
642              dimension_id  =     X_Dimension_Id,
643              name          =     nvl(X_Name, name),
644              description   =     nvl(X_Description, description),
645 	     last_update_date  = sysdate,
646 	     last_updated_by   = user_id,
647 	     last_Update_login = 0
648          WHERE  dimension_id = X_Dimension_Id
649          AND    userenv('LANG') =
650              ( SELECT language_code
651                 FROM  FND_LANGUAGES
652 		WHERE  installed_flag = 'B' );
653          /*If base language is not set to the language being uploaded, then do nothing*/
654          IF SQL%NOTFOUND THEN
655            NULL;
656          END IF;
657     END IF;
658 
659   END Translate_Row;
660 
661 END RG_DSS_DIMENSIONS_PKG;