DBA Data[Home] [Help]

PACKAGE BODY: APPS.PJI_MT_MEASURE_SETS_PKG

Source


1 PACKAGE BODY Pji_Mt_Measure_Sets_Pkg AS
2 /* $Header: PJIMTMSB.pls 120.1 2005/05/31 08:01:25 appldev  $ */
3 
4 g_module_name   VARCHAR2(100) := 'pa.plsql.pji_mt_measure_sets_pkg';
5 g_debug_mode    VARCHAR2(1) := NVL(Fnd_Profile.value('PA_DEBUG_MODE'),'N');
6 
7 
8 /*==================================================================
9    This api locks the row in pji_mt_measure_sets_b before updating
10  ==================================================================*/
11 
12 PROCEDURE LOCK_ROW (
13   p_measure_set_code       IN pji_mt_measure_sets_b.measure_set_code%TYPE,
14   p_object_version_number IN pji_mt_measure_sets_b.object_version_number%TYPE
15  ) IS
16 
17   CURSOR c IS
18     SELECT object_version_number
19     FROM   pji_mt_measure_sets_B
20     WHERE  measure_set_code = p_measure_set_code
21     FOR UPDATE OF measure_set_code NOWAIT;
22 
23   recinfo c%ROWTYPE;
24 
25 BEGIN
26 
27   OPEN c;
28   FETCH c INTO recinfo;
29   IF (c%NOTFOUND) THEN
30     CLOSE c;
31     Fnd_Message.set_name('FND', 'FORM_RECORD_DELETED');
32     App_Exception.raise_exception;
33   END IF;
34   CLOSE c;
35 
36   IF recinfo.object_version_number = p_object_version_number THEN
37     NULL;
38   ELSE
39     Fnd_Message.set_name('FND', 'FORM_RECORD_CHANGED');
40     App_Exception.raise_exception;
41   END IF;
42 
43   RETURN;
44 
45 END LOCK_ROW;
46 
47 PROCEDURE DELETE_ROW (
48   p_measure_set_code IN 	pji_mt_measure_sets_b.measure_set_code%TYPE
49 ) IS
50 BEGIN
51   DELETE FROM pji_mt_measure_sets_TL
52   WHERE measure_set_code = p_measure_set_code;
53 
54   IF (SQL%NOTFOUND) THEN
55     RAISE NO_DATA_FOUND;
56   END IF;
57 
58   DELETE FROM pji_mt_measure_sets_b
59   WHERE measure_set_code = p_measure_set_code;
60 
61   IF (SQL%NOTFOUND) THEN
62     RAISE NO_DATA_FOUND;
63   END IF;
64 END DELETE_ROW;
65 
66 
67 PROCEDURE Insert_Row (
68  X_Rowid                           IN  OUT NOCOPY  ROWID,
69  X_Measure_Set_Code                IN      pji_mt_measure_sets_b.Measure_Set_Code%TYPE,
70  X_Measure_Set_Type                IN      pji_mt_measure_sets_b.Measure_Set_Type%TYPE,
71  X_Measure_Format                  IN      pji_mt_measure_sets_b.Measure_Format%TYPE,
72  X_DB_Column_Name                  IN      pji_mt_measure_sets_b.DB_Column_Name%TYPE,
73  X_Object_Version_Number           IN      pji_mt_measure_sets_b.Object_Version_Number%TYPE,
74  X_Name                            IN      pji_mt_measure_sets_Tl.Name%TYPE,
75  X_Description                     IN      pji_mt_measure_sets_Tl.Description%TYPE,
76  X_Last_Update_Date                IN      pji_mt_measure_sets_b.Last_Update_Date%TYPE,
77  X_Last_Updated_by                 IN      pji_mt_measure_sets_b.Last_Updated_by%TYPE,
78  X_Creation_Date                   IN      pji_mt_measure_sets_b.Creation_Date%TYPE,
79  X_Created_By                      IN      pji_mt_measure_sets_b.Created_By%TYPE,
80  X_Last_Update_Login               IN      pji_mt_measure_sets_b.Last_Update_Login%TYPE,
81  X_Measure_Formula				   IN	   pji_mt_measure_sets_b.Measure_Formula%TYPE,
82  X_Measure_Source				   IN	   pji_mt_measure_sets_b.Measure_Source%TYPE,
83  X_Return_Status	           OUT NOCOPY      VARCHAR2,
84  X_Msg_Data                        OUT NOCOPY      VARCHAR2,
85  X_Msg_Count                       OUT NOCOPY      NUMBER
86 )IS
87 
88    CURSOR C IS SELECT ROWID FROM pji_mt_measure_sets_b
89     WHERE measure_set_code = x_measure_set_code;
90 
91    l_return_status          VARCHAR2(1) := NULL;
92    l_msg_count              NUMBER      := 0;
93    l_data               VARCHAR2(2000) := NULL;
94    l_msg_data               VARCHAR2(2000) := NULL;
95    l_msg_index_out   NUMBER;
96 
97   BEGIN
98 
99    x_msg_count := 0;
100    x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
101 
102    IF g_debug_mode = 'Y' THEN
103           Pa_Debug.set_curr_function( p_function   => 'validate',
104                                       p_debug_mode => g_debug_mode );
105    END IF;
106 
107    IF g_debug_mode = 'Y' THEN
108         Pa_Debug.g_err_stage:= 'Inserting record in pji_mt_measure_sets_B '||X_Measure_Set_Code;
109         Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
110                                      Pa_Fp_Constants_Pkg.g_debug_level3);
111    END IF;
112 
113    INSERT INTO pji_mt_measure_sets_B
114    (
115     Measure_Set_Code
116     , Measure_Set_Type
117     , Measure_Format
118     , Db_Column_Name
119     , Object_Version_Number
120     , Creation_Date
121     , Last_Update_Date
122     , Last_Updated_By
123     , Created_By
124     , Last_Update_Login
125 	, Measure_Formula
126 	, Measure_Source )
127    VALUES
128    (
129     X_Measure_Set_Code
130     , X_Measure_Set_Type
131     , X_Measure_Format
132     , X_Db_Column_Name
133     , X_Object_Version_Number
134     , X_Creation_Date
135     , X_Last_Update_Date
136     , X_Last_Updated_By
137     , X_Created_By
138     , X_Last_Update_Login
139 	, X_Measure_Formula
140 	, X_Measure_Source
141    );
142 
143    IF g_debug_mode = 'Y' THEN
144         Pa_Debug.g_err_stage:= 'Inserting record in pji_mt_measure_sets_tl '||X_Measure_Set_Code;
145         Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage, Pa_Fp_Constants_Pkg.g_debug_level3);
146    END IF;
147 
148    INSERT INTO pji_mt_measure_sets_tl
149    (
150        Measure_Set_Code,
151        Name,
152        Description,
153        Last_Update_Date,
154        Last_Updated_By,
155        Creation_Date,
156        Created_By,
157        Last_Update_Login,
158        LANGUAGE,
159        Source_Lang
160    )
161    SELECT
162        X_Measure_Set_Code,
163        X_Name,
164        X_Description,
165        X_Last_Update_Date,
166        X_Last_Updated_By,
167        X_Creation_Date,
168        X_Created_By,
169        X_Last_Update_Login,
170        L.Language_Code,
171        USERENV('Lang')
172    FROM  Fnd_Languages L
173    WHERE L.Installed_Flag IN ('I', 'B')
174    AND NOT EXISTS
175        (SELECT NULL FROM pji_mt_measure_sets_tl T
176         WHERE T.measure_set_code = X_Measure_Set_Code
177         AND T.LANGUAGE = L.Language_Code);
178 
179 Hr_Utility.trace('after inserting t row');
180 
181 
182    OPEN C;
183    FETCH C INTO X_ROWID;
184    IF (C%NOTFOUND) THEN
185 
186       CLOSE C;
187 
188       IF g_debug_mode = 'Y' THEN
189            Pa_Debug.g_err_stage:= 'Rowid could not be fetched after Inserting for '||X_Measure_Set_Code;
190            Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage, Pa_Fp_Constants_Pkg.g_debug_level5);
191       END IF;
192 
193       RAISE NO_DATA_FOUND;
194 
195    END IF;
196    CLOSE C;
197 
198  EXCEPTION
199     WHEN NO_DATA_FOUND THEN
200 
201       x_return_status := Fnd_Api.G_RET_STS_ERROR;
202       l_msg_count := Fnd_Msg_Pub.count_msg;
203 
204       IF l_msg_count = 1 AND x_msg_data IS NULL THEN
205          Pa_Interface_Utils_Pub.get_messages
206              (p_encoded        => Fnd_Api.G_TRUE
207              ,p_msg_index      => 1
208              ,p_msg_count      => l_msg_count
209              ,p_msg_data       => l_msg_data
210              ,p_data           => l_data
211              ,p_msg_index_out  => l_msg_index_out);
212          x_msg_data := l_data;
213          x_msg_count := l_msg_count;
214       ELSE
215          x_msg_count := l_msg_count;
216       END IF;
217 
218       IF g_debug_mode = 'Y' THEN
219               Pa_Debug.reset_curr_function;
220       END IF;
221 
222       RETURN;
223 
224     WHEN OTHERS THEN
225 
226       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
227       x_msg_count     := 1;
228       x_msg_data      := SQLERRM;
229 
230       Fnd_Msg_Pub.add_exc_msg
231          ( p_pkg_name        => 'PJI_MT_MEASURE_SETS_PKG'
232          ,p_procedure_name  => 'Insert Row'
233          ,p_error_text      => x_msg_data);
234 
235      IF g_debug_mode = 'Y' THEN
236         Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
237         Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
238                                Pa_Fp_Constants_Pkg.g_debug_level5);
239         Pa_Debug.reset_curr_function;
240      END IF;
241 
242      RAISE;
243 
244  END Insert_Row;
245 
246 
247  PROCEDURE Update_Row (
248      X_Measure_Set_Code                IN      pji_mt_measure_sets_b.Measure_Set_Code%TYPE,
249      X_Measure_Set_Type                IN      pji_mt_measure_sets_b.Measure_Set_Type%TYPE,
250      X_Measure_Format                  IN      pji_mt_measure_sets_b.Measure_Format%TYPE,
251      X_DB_Column_Name                  IN      pji_mt_measure_sets_b.DB_Column_Name%TYPE,
252      X_Object_Version_Number           IN      pji_mt_measure_sets_b.Object_Version_Number%TYPE,
253      X_Name                            IN      pji_mt_measure_sets_Tl.Name%TYPE,
254      X_Description                     IN      pji_mt_measure_sets_Tl.Description%TYPE,
255      X_Last_Update_Date                IN      pji_mt_measure_sets_b.Last_Update_Date%TYPE,
256      X_Last_Updated_by                 IN      pji_mt_measure_sets_b.Last_Updated_by%TYPE,
257      X_Last_Update_Login               IN      pji_mt_measure_sets_b.Last_Update_Login%TYPE,
258 	 X_Measure_Formula				   IN	   pji_mt_measure_sets_b.Measure_Formula%TYPE,
259 	 X_Measure_Source				   IN	   pji_mt_measure_sets_b.Measure_Source%TYPE,
260      X_Return_Status	               OUT NOCOPY     VARCHAR2,
261      X_Msg_Data                        OUT NOCOPY     VARCHAR2,
262      X_Msg_Count                       OUT NOCOPY     NUMBER
263   ) IS
264 
265      l_return_status          VARCHAR2(1) := NULL;
266      l_msg_count              NUMBER      := 0;
267      l_data               VARCHAR2(2000) := NULL;
268      l_msg_data               VARCHAR2(2000) := NULL;
269 	 l_object_version_number NUMBER;
270      l_msg_index_out   NUMBER;
271 	 l_update_conflict EXCEPTION;
272   BEGIN
273 
274      x_msg_count := 0;
275      x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
276 
277      IF g_debug_mode = 'Y' THEN
278             Pa_Debug.set_curr_function( p_function   => 'validate',
279                                         p_debug_mode => g_debug_mode );
280      END IF;
281 
282      IF g_debug_mode = 'Y' THEN
283           Pa_Debug.g_err_stage:= 'Updating pji_mt_measure_sets_b for '||X_measure_set_code;
284           Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,Pa_Fp_Constants_Pkg.g_debug_level3);
285      END IF;
286 
287 	 BEGIN
288 		 SELECT object_version_number
289 		 INTO l_object_version_number
290 		 FROM pji_mt_measure_sets_B
291 		 WHERE measure_set_code = X_measure_set_code FOR UPDATE;
292 	 EXCEPTION
293 	 WHEN TOO_MANY_ROWS OR NO_DATA_FOUND THEN
294         IF g_debug_mode = 'Y' THEN
295              Pa_Debug.g_err_stage:= 'select error while checking object version number in pji_mt_measure_sets_B '||X_measure_set_code;
296              Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage, Pa_Fp_Constants_Pkg.g_debug_level5);
297         END IF;
298         RAISE;
299 	 END;
300 
301 	 IF X_Object_Version_Number IS NOT NULL THEN
302 		 IF l_object_version_number <> X_Object_Version_Number THEN
303 		 	Fnd_Message.set_name('PJI', 'PJI_CM_UPDATE_CONFLICT');
304 			Fnd_Msg_Pub.add_detail(Fnd_Api.G_RET_STS_ERROR);
305 		 	RAISE l_update_conflict;
306 		 ELSE
307 		 	l_object_version_number := X_Object_Version_Number + 1;
308 		 END IF;
309 	 END IF;
310 
311      UPDATE pji_mt_measure_sets_B
312      SET
313             Measure_Set_Code = X_Measure_Set_Code
314             , Measure_Set_Type = X_Measure_Set_Type
315             , Measure_Format = X_Measure_Format
316             , Db_Column_Name = X_Db_Column_Name
317             , Object_Version_Number = l_object_version_number
318             , Last_Update_Date = X_Last_Update_Date
319             , Last_Updated_By = X_Last_Updated_By
320             , Last_Update_Login = X_Last_Update_Login
321 			, Measure_Formula = X_Measure_Formula
322 			, Measure_Source = X_Measure_Source
323             WHERE measure_set_code = X_measure_set_code;
324 
325      IF (SQL%NOTFOUND) THEN
326         IF g_debug_mode = 'Y' THEN
327              Pa_Debug.g_err_stage:= 'NDF while updating pji_mt_measure_sets_B '||X_measure_set_code;
328              Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage, Pa_Fp_Constants_Pkg.g_debug_level5);
329         END IF;
330 
331         RAISE NO_DATA_FOUND;
332      END IF;
333 
334      IF g_debug_mode = 'Y' THEN
335             Pa_Debug.g_err_stage:= 'Updating pji_mt_measure_sets_tl for '||X_measure_set_code;
336             Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,Pa_Fp_Constants_Pkg.g_debug_level3);
337      END IF;
338 
339      UPDATE pji_mt_measure_sets_tl
340      SET    Name = X_Name,
341             Description = X_Description,
342             Last_Update_Date = X_Last_Update_Date,
343             Last_Updated_By = X_Last_Updated_By,
344             Last_Update_Login = X_Last_Update_Login,
345             Source_Lang = USERENV('Lang')
346      WHERE  Measure_Set_Code = X_Measure_Set_Code
347      AND    USERENV('Lang') IN (LANGUAGE, Source_Lang);
348 
349      IF (SQL%NOTFOUND) THEN
350         IF g_debug_mode = 'Y' THEN
351              Pa_Debug.g_err_stage:= 'NDF while updating pji_mt_measure_sets_T '||X_measure_set_code;
352              Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage, Pa_Fp_Constants_Pkg.g_debug_level5);
353         END IF;
354 
355         RAISE NO_DATA_FOUND;
356      END IF;
357 
358   EXCEPTION
359   WHEN  NO_DATA_FOUND THEN
360 
361     x_return_status := Fnd_Api.G_RET_STS_ERROR;
362     l_msg_count := Fnd_Msg_Pub.count_msg;
363 
364     IF l_msg_count = 1 AND x_msg_data IS NULL THEN
365        Pa_Interface_Utils_Pub.get_messages
366            (p_encoded        => Fnd_Api.G_TRUE
367            ,p_msg_index      => 1
368            ,p_msg_count      => l_msg_count
369            ,p_msg_data       => l_msg_data
370            ,p_data           => l_data
371            ,p_msg_index_out  => l_msg_index_out);
372        x_msg_data := l_data;
373        x_msg_count := l_msg_count;
374     ELSE
375        x_msg_count := l_msg_count;
376     END IF;
377 
378     IF g_debug_mode = 'Y' THEN
379             Pa_Debug.reset_curr_function;
380     END IF;
381 
382     RAISE NO_DATA_FOUND;
383 
384   WHEN OTHERS THEN
385 
386     x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
387     x_msg_count     := 1;
388     x_msg_data      := SQLERRM;
389 
390     Fnd_Msg_Pub.add_exc_msg
391        ( p_pkg_name        => 'PJI_MT_MEASURE_SETS_PKG'
392        ,p_procedure_name  => 'UPDATE_ROW'
393        ,p_error_text      => x_msg_data);
394 
395    IF g_debug_mode = 'Y' THEN
396       Pa_Debug.g_err_stage:= 'Unexpected Error'||x_msg_data;
397       Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
398                              Pa_Fp_Constants_Pkg.g_debug_level5);
399       Pa_Debug.reset_curr_function;
400    END IF;
401 
402 
403  RAISE;
404 END Update_Row;
405 
406  PROCEDURE Load_Row (
407      X_Measure_Set_Code                IN      pji_mt_measure_sets_b.Measure_Set_Code%TYPE,
408      X_Measure_Set_Type                IN      pji_mt_measure_sets_b.Measure_Set_Type%TYPE,
409      X_Measure_Format                  IN      pji_mt_measure_sets_b.Measure_Format%TYPE,
410      X_DB_Column_Name                  IN      pji_mt_measure_sets_b.DB_Column_Name%TYPE,
411      X_Object_Version_Number           IN      pji_mt_measure_sets_b.Object_Version_Number%TYPE,
412      X_Name                            IN      pji_mt_measure_sets_Tl.Name%TYPE,
413      X_Description                     IN      pji_mt_measure_sets_Tl.Description%TYPE,
414      X_Owner                           IN      VARCHAR2,
415 	 X_Measure_Formula				   IN	   pji_mt_measure_sets_b.Measure_Formula%TYPE,
416 	 X_Measure_Source				   IN	   pji_mt_measure_sets_b.Measure_Source%TYPE
417 )
418 IS
419 
420    User_Id NUMBER := NULL;
421    X_ROWID VARCHAR2(64);
422    l_return_status          VARCHAR2(1) := NULL;
423    l_msg_count              NUMBER      := 0;
424    l_data               VARCHAR2(2000) := NULL;
425    l_msg_data               VARCHAR2(2000) := NULL;
426    l_msg_index_out   NUMBER;
427  BEGIN
428    g_debug_mode:='N';
429 
430    IF (X_Owner = 'SEED')THEN
431        User_Id := 1;
432    ELSE
433        User_Id := 0;
434    END IF;
435 
436 
437 
438   Pji_Mt_Measure_Sets_Pkg.Update_Row (
439      X_Measure_Set_Code                   => X_Measure_Set_Code
440      , X_Measure_Set_Type                 => X_Measure_Set_Type
441      , X_Measure_Format                   => X_Measure_Format
442      , X_DB_Column_Name                   => X_DB_Column_Name
443      , X_Object_Version_Number            => NULL
444      , X_Name                             => X_Name
445      , X_Description                      => X_Description
446      , X_Last_Update_Date                 => SYSDATE
447      , X_Last_Updated_By                  => User_Id
448      , X_Last_Update_Login                => 0
449 	 , X_Measure_Formula				  => X_Measure_Formula
450 	 , X_Measure_Source					  => X_Measure_Source
451      , X_Return_Status	                  => l_Return_Status
452      , X_Msg_Data                         => l_Msg_Data
453      , X_Msg_Count                        => l_Msg_Count);
454 
455   EXCEPTION
456     WHEN NO_DATA_FOUND THEN
457 	Hr_Utility.trace('Calling Insert row');
458       Pji_Mt_Measure_Sets_Pkg.Insert_Row (
459             X_Rowid                            => X_Rowid
460           , X_Measure_Set_Code                 => X_Measure_Set_Code
461           , X_Measure_Set_Type                 => X_Measure_Set_Type
462           , X_Measure_Format                   => X_Measure_Format
463           , X_DB_Column_Name                   => X_DB_Column_Name
464           , X_Object_Version_Number            => 1
465           , X_Name                             => X_Name
466           , X_Description                      => X_Description
467           , X_Last_Update_Date                 => SYSDATE
468           , X_Last_Updated_By                  => User_Id
469           , X_Creation_Date                    => SYSDATE
470           , X_Created_By                       => User_Id
471           , X_Last_Update_Login                => 0
472 		  , X_Measure_Formula				   => X_Measure_Formula
473 	 	  , X_Measure_Source				   => X_Measure_Source
474           , X_Return_Status	                   => l_Return_Status
475           , X_Msg_Data                         => l_Msg_Data
476           , X_Msg_Count                        => l_Msg_Count);
477 
478      WHEN OTHERS THEN
479 
480      l_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
481      l_msg_count     := 1;
482      l_msg_data      := SQLERRM;
483 
484      Fnd_Msg_Pub.add_exc_msg
485         ( p_pkg_name        => 'PJI_MT_MEASURE_SETS_PKG'
486         ,p_procedure_name  => 'UPDATE_ROW'
487         ,p_error_text      => l_msg_data);
488 
489     IF g_debug_mode = 'Y' THEN
490        Pa_Debug.g_err_stage:= 'Unexpected Error'||l_msg_data;
491        Pa_Debug.WRITE(g_module_name,Pa_Debug.g_err_stage,
492                               Pa_Fp_Constants_Pkg.g_debug_level5);
493        Pa_Debug.reset_curr_function;
494     END IF;
495 
496 
497     RAISE;
498  END Load_Row;
499 
500 
501  PROCEDURE Add_Language
502  IS
503  BEGIN
504 
505   DELETE FROM pji_mt_measure_sets_tl T
506   WHERE NOT EXISTS
507     (SELECT NULL
508     FROM pji_mt_measure_sets_b B
509     WHERE B.measure_set_code  = T.measure_set_code
510     );
511 
512   UPDATE pji_mt_measure_sets_tl T SET (
513       NAME,
514       DESCRIPTION
515     ) = (SELECT
516       B.NAME,
517       B.DESCRIPTION
518     FROM pji_mt_measure_sets_tl B
519     WHERE B.measure_set_code = T.measure_set_code
520     AND B.LANGUAGE = T.SOURCE_LANG)
521     WHERE (
522       T.measure_set_code,
523       T.LANGUAGE
524   ) IN (SELECT
525       SUBT.measure_set_code,
526       SUBT.LANGUAGE
527     FROM pji_mt_measure_sets_tl SUBB, pji_mt_measure_sets_tl SUBT
528     WHERE SUBB.measure_set_code = SUBT.measure_set_code
529     AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
530     AND (SUBB.NAME <> SUBT.NAME
531       OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
532       OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
533       OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
534   ));
535 
536    INSERT INTO pji_mt_measure_sets_tl(
537     LAST_UPDATE_LOGIN,
538     CREATION_DATE,
539     CREATED_BY,
540     LAST_UPDATE_DATE,
541     LAST_UPDATED_BY,
542     measure_set_code,
543     NAME,
544     DESCRIPTION,
545     LANGUAGE,
546     SOURCE_LANG
547   )SELECT
548     B.LAST_UPDATE_LOGIN,
549     B.CREATION_DATE,
550     B.CREATED_BY,
551     B.LAST_UPDATE_DATE,
552     B.LAST_UPDATED_BY,
553     B.measure_set_code,
554     B.NAME,
555     B.DESCRIPTION,
556     L.LANGUAGE_CODE,
557     B.SOURCE_LANG
558   FROM pji_mt_measure_sets_tl B, FND_LANGUAGES L
559   WHERE L.INSTALLED_FLAG IN ('I', 'B')
560   AND B.LANGUAGE = USERENV('LANG')
561   AND NOT EXISTS
562     (SELECT NULL
563     FROM pji_mt_measure_sets_tl T
564     WHERE T.measure_set_code = B.measure_set_code
565     AND T.LANGUAGE = L.LANGUAGE_CODE);
566 END ADD_LANGUAGE;
567 
568 
569 PROCEDURE TRANSLATE_ROW (
570   X_measure_set_code                  IN pji_mt_measure_sets_b.measure_set_code%TYPE,
571   X_owner                             IN VARCHAR2 ,
572   X_name                              IN pji_mt_measure_sets_TL.NAME%TYPE,
573   X_description                       IN pji_mt_measure_sets_TL.DESCRIPTION%TYPE
574  )IS
575 BEGIN
576 
577   g_debug_mode:='N';
578 
579   UPDATE pji_mt_measure_sets_tl SET
580     NAME = X_NAME,
581     DESCRIPTION = X_DESCRIPTION,
582     LAST_UPDATE_DATE  = SYSDATE,
583     LAST_UPDATED_BY   = DECODE(X_OWNER, 'SEED', 1, 0),
584     LAST_UPDATE_LOGIN = 0,
585     SOURCE_LANG = USERENV('LANG')
586   WHERE measure_set_code = x_measure_set_code
587   AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG) ;
588 
589   IF (SQL%NOTFOUND) THEN
590     RAISE NO_DATA_FOUND;
591   END IF;
592 
593 END TRANSLATE_ROW;
594 
595 
596 END Pji_Mt_Measure_Sets_Pkg;