DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_BUSINESS_VARIABLES_PVT

Source


1 PACKAGE BODY OKC_BUSINESS_VARIABLES_PVT AS
2 /* $Header: OKCVBVBB.pls 120.4 2007/03/01 22:26:32 krallapa ship $ */
3  l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4  G_APP_NAME                   CONSTANT   VARCHAR2(3)   :=  OKC_API.G_APP_NAME;
5 
6   G_UNEXPECTED_ERROR           CONSTANT   varchar2(200) := 'OKC_UNEXPECTED_ERROR';
7   G_SQLERRM_TOKEN              CONSTANT   varchar2(200) := 'ERROR_MESSAGE';
8   G_SQLCODE_TOKEN              CONSTANT   varchar2(200) := 'ERROR_CODE';
9 
10   Function Resolve_Var_Data_Type(p_value_set_id IN NUMBER,
11                                   p_variable_type IN VARCHAR2,
12 						    p_variable_datatype IN VARCHAR2)
13 						    Return VARCHAR2 IS
14     l_variable_datatype OKC_BUS_VARIABLES_B.Variable_datatype%TYPE;
15     Cursor l_Data_Type_Csr(lc_value_set_id NUMBER) IS
16       Select Decode(format_type,'C','V','X','D',format_type) format_type
17 	 From fnd_flex_value_sets
18 	 Where flex_value_set_id = lc_value_set_id
19 	 And validation_type IN ('F','N','I');
20   Begin
21     l_variable_datatype := p_variable_datatype;
22     If p_variable_type = 'U' Then
23       Open l_Data_Type_Csr (p_value_set_id);
24         Fetch L_Data_Type_Csr INTO l_variable_datatype;
25       Close l_Data_Type_Csr;
26     End If;
27 
28     Return l_variable_datatype;
29 
30   Exception
31     When Others Then
32       Return l_variable_datatype;
33   End Resolve_Var_Data_Type;
34 
35 
36    procedure INSERT_ROW (
37      X_ROWID in out NOCOPY VARCHAR2,
38      X_VARIABLE_CODE in VARCHAR2,
39      X_VARIABLE_DEFAULT_VALUE in VARCHAR2,
40      X_VARIABLE_DATATYPE in VARCHAR2,
41      X_OBJECT_VERSION_NUMBER in NUMBER,
42      X_VARIABLE_TYPE in VARCHAR2,
43      X_EXTERNAL_YN in VARCHAR2,
44      X_APPLICATION_ID in NUMBER,
45      X_VARIABLE_INTENT in VARCHAR2,
46      X_CONTRACT_EXPERT_YN in VARCHAR2,
47      X_DISABLED_YN in VARCHAR2,
48      X_VALUE_SET_ID in NUMBER,
49      X_ORIG_SYSTEM_REFERENCE_CODE in VARCHAR2 DEFAULT NULL,
50 	X_ORIG_SYSTEM_REFERENCE_ID1 in VARCHAR2 DEFAULT NULL,
51 	X_ORIG_SYSTEM_REFERENCE_ID2 in VARCHAR2 DEFAULT NULL,
52 	X_DATE_PUBLISHED in DATE DEFAULT NULL,
53      X_ATTRIBUTE_CATEGORY in VARCHAR2,
54      X_ATTRIBUTE1 in VARCHAR2,
55      X_ATTRIBUTE2 in VARCHAR2,
56      X_ATTRIBUTE3 in VARCHAR2,
57      X_ATTRIBUTE4 in VARCHAR2,
58      X_ATTRIBUTE5 in VARCHAR2,
59      X_ATTRIBUTE6 in VARCHAR2,
60      X_ATTRIBUTE7 in VARCHAR2,
61      X_ATTRIBUTE8 in VARCHAR2,
62      X_ATTRIBUTE9 in VARCHAR2,
63      X_ATTRIBUTE10 in VARCHAR2,
64      X_ATTRIBUTE11 in VARCHAR2,
65      X_ATTRIBUTE12 in VARCHAR2,
66      X_ATTRIBUTE13 in VARCHAR2,
67      X_ATTRIBUTE14 in VARCHAR2,
68      X_ATTRIBUTE15 in VARCHAR2,
69      X_VARIABLE_NAME in VARCHAR2,
70      X_DESCRIPTION in VARCHAR2,
71      X_CREATION_DATE in DATE,
72      X_CREATED_BY in NUMBER,
73      X_LAST_UPDATE_DATE in DATE,
74      X_LAST_UPDATED_BY in NUMBER,
75      X_LAST_UPDATE_LOGIN in NUMBER,
76      X_XPRT_VALUE_SET_NAME in VARCHAR2,
77      X_LINE_LEVEL_FLAG in VARCHAR2,
78      X_PROCEDURE_NAME in VARCHAR2,
79      X_VARIABLE_SOURCE in VARCHAR2
80    ) is
81      cursor C is select ROWID from OKC_BUS_VARIABLES_B
82        where VARIABLE_CODE = X_VARIABLE_CODE
83        ;
84      L_VARIABLE_DATATYPE OKC_BUS_VARIABLES_B.VARIABLE_DATATYPE%TYPE;
85 
86 
87    begin
88      L_VARIABLE_DATATYPE :=
89 	    Resolve_Var_Data_Type(X_VALUE_SET_ID,X_VARIABLE_TYPE,X_VARIABLE_DATATYPE);
90      insert into OKC_BUS_VARIABLES_B (
91        VARIABLE_DEFAULT_VALUE,
92        VARIABLE_DATATYPE,
93        VARIABLE_CODE,
94        OBJECT_VERSION_NUMBER,
95        VARIABLE_TYPE,
96        EXTERNAL_YN,
97        APPLICATION_ID,
98        VARIABLE_INTENT,
99        CONTRACT_EXPERT_YN,
100        DISABLED_YN,
101        VALUE_SET_ID,
102        ORIG_SYSTEM_REFERENCE_CODE,
103 	  ORIG_SYSTEM_REFERENCE_ID1,
104 	  ORIG_SYSTEM_REFERENCE_ID2,
105 	  DATE_PUBLISHED,
106        ATTRIBUTE_CATEGORY,
107        ATTRIBUTE1,
108        ATTRIBUTE2,
109        ATTRIBUTE3,
110        ATTRIBUTE4,
111        ATTRIBUTE5,
112        ATTRIBUTE6,
113        ATTRIBUTE7,
114        ATTRIBUTE8,
115        ATTRIBUTE9,
116        ATTRIBUTE10,
117        ATTRIBUTE11,
118        ATTRIBUTE12,
119        ATTRIBUTE13,
120        ATTRIBUTE14,
121        ATTRIBUTE15,
122        CREATION_DATE,
123        CREATED_BY,
124        LAST_UPDATE_DATE,
125        LAST_UPDATED_BY,
126        LAST_UPDATE_LOGIN,
127        XPRT_VALUE_SET_NAME,
128        LINE_LEVEL_FLAG,
129        PROCEDURE_NAME,
130        VARIABLE_SOURCE
131      ) values (
132        X_VARIABLE_DEFAULT_VALUE,
133        L_VARIABLE_DATATYPE,
134        X_VARIABLE_CODE,
135        X_OBJECT_VERSION_NUMBER,
136        X_VARIABLE_TYPE,
137        X_EXTERNAL_YN,
138        X_APPLICATION_ID,
139        X_VARIABLE_INTENT,
140        X_CONTRACT_EXPERT_YN,
141        X_DISABLED_YN,
142        X_VALUE_SET_ID,
143        X_ORIG_SYSTEM_REFERENCE_CODE,
144 	  X_ORIG_SYSTEM_REFERENCE_ID1,
145 	  X_ORIG_SYSTEM_REFERENCE_ID2,
146 	  X_DATE_PUBLISHED,
147        X_ATTRIBUTE_CATEGORY,
148        X_ATTRIBUTE1,
149        X_ATTRIBUTE2,
150        X_ATTRIBUTE3,
151        X_ATTRIBUTE4,
152        X_ATTRIBUTE5,
153        X_ATTRIBUTE6,
154        X_ATTRIBUTE7,
155        X_ATTRIBUTE8,
156        X_ATTRIBUTE9,
157        X_ATTRIBUTE10,
158        X_ATTRIBUTE11,
159        X_ATTRIBUTE12,
160        X_ATTRIBUTE13,
161        X_ATTRIBUTE14,
162        X_ATTRIBUTE15,
163        X_CREATION_DATE,
164        X_CREATED_BY,
165        X_LAST_UPDATE_DATE,
166        X_LAST_UPDATED_BY,
167        X_LAST_UPDATE_LOGIN,
168        X_XPRT_VALUE_SET_NAME,
169        X_LINE_LEVEL_FLAG,
170        X_PROCEDURE_NAME,
171        X_VARIABLE_SOURCE
172 
173      );
174 
175      insert into OKC_BUS_VARIABLES_TL (
176        VARIABLE_CODE,
177        VARIABLE_NAME,
178        DESCRIPTION,
179        CREATED_BY,
180        CREATION_DATE,
181        LAST_UPDATE_DATE,
182        LAST_UPDATED_BY,
183        LAST_UPDATE_LOGIN,
184        LANGUAGE,
185        SOURCE_LANG
186      ) select
187        X_VARIABLE_CODE,
188        X_VARIABLE_NAME,
189        X_DESCRIPTION,
190        X_CREATED_BY,
191        X_CREATION_DATE,
192        X_LAST_UPDATE_DATE,
193        X_LAST_UPDATED_BY,
194        X_LAST_UPDATE_LOGIN,
195        L.LANGUAGE_CODE,
196        userenv('LANG')
197      from FND_LANGUAGES L
198      where L.INSTALLED_FLAG in ('I', 'B')
199      and not exists
200        (select NULL
201        from OKC_BUS_VARIABLES_TL T
202        where T.VARIABLE_CODE = X_VARIABLE_CODE
203        and T.LANGUAGE = L.LANGUAGE_CODE);
204 
205      open c;
206      fetch c into X_ROWID;
207      if (c%notfound) then
208        close c;
209        raise no_data_found;
210      end if;
211      close c;
212 
213    end INSERT_ROW;
214 
215    procedure LOCK_ROW (
216      X_VARIABLE_CODE in VARCHAR2,
217      X_VARIABLE_DEFAULT_VALUE in VARCHAR2,
218      X_VARIABLE_DATATYPE in VARCHAR2,
219      X_OBJECT_VERSION_NUMBER in NUMBER,
220      X_VARIABLE_TYPE in VARCHAR2,
221      X_EXTERNAL_YN in VARCHAR2,
222      X_APPLICATION_ID in NUMBER,
223      X_VARIABLE_INTENT in VARCHAR2,
224      X_CONTRACT_EXPERT_YN in VARCHAR2,
225      X_DISABLED_YN in VARCHAR2,
226      X_VALUE_SET_ID in NUMBER,
227      X_ORIG_SYSTEM_REFERENCE_CODE in VARCHAR2 DEFAULT NULL,
228 	X_ORIG_SYSTEM_REFERENCE_ID1 in VARCHAR2 DEFAULT NULL,
229 	X_ORIG_SYSTEM_REFERENCE_ID2 in VARCHAR2 DEFAULT NULL,
230 	X_DATE_PUBLISHED in DATE DEFAULT NULL,
231      X_ATTRIBUTE_CATEGORY in VARCHAR2,
232      X_ATTRIBUTE1 in VARCHAR2,
233      X_ATTRIBUTE2 in VARCHAR2,
234      X_ATTRIBUTE3 in VARCHAR2,
235      X_ATTRIBUTE4 in VARCHAR2,
236      X_ATTRIBUTE5 in VARCHAR2,
237      X_ATTRIBUTE6 in VARCHAR2,
238      X_ATTRIBUTE7 in VARCHAR2,
239      X_ATTRIBUTE8 in VARCHAR2,
240      X_ATTRIBUTE9 in VARCHAR2,
241      X_ATTRIBUTE10 in VARCHAR2,
242      X_ATTRIBUTE11 in VARCHAR2,
243      X_ATTRIBUTE12 in VARCHAR2,
244      X_ATTRIBUTE13 in VARCHAR2,
245      X_ATTRIBUTE14 in VARCHAR2,
246      X_ATTRIBUTE15 in VARCHAR2,
247      X_VARIABLE_NAME in VARCHAR2,
248      X_DESCRIPTION in VARCHAR2,
249      X_XPRT_VALUE_SET_NAME in VARCHAR2,
250      X_LINE_LEVEL_FLAG in VARCHAR2,
251      X_PROCEDURE_NAME in VARCHAR2,
252      X_VARIABLE_SOURCE in VARCHAR2
253    ) is
254      cursor c is select
255          VARIABLE_DEFAULT_VALUE,
256          VARIABLE_DATATYPE,
257          OBJECT_VERSION_NUMBER,
258          VARIABLE_TYPE,
259          EXTERNAL_YN,
260          APPLICATION_ID,
261          VARIABLE_INTENT,
262          CONTRACT_EXPERT_YN,
263          DISABLED_YN,
264          VALUE_SET_ID,
265          ORIG_SYSTEM_REFERENCE_CODE,
266 	    ORIG_SYSTEM_REFERENCE_ID1,
267 	    ORIG_SYSTEM_REFERENCE_ID2,
268 	    DATE_PUBLISHED,
269          ATTRIBUTE_CATEGORY,
270          ATTRIBUTE1,
271          ATTRIBUTE2,
272          ATTRIBUTE3,
273          ATTRIBUTE4,
274          ATTRIBUTE5,
275          ATTRIBUTE6,
276          ATTRIBUTE7,
277          ATTRIBUTE8,
278          ATTRIBUTE9,
279          ATTRIBUTE10,
280          ATTRIBUTE11,
281          ATTRIBUTE12,
282          ATTRIBUTE13,
283          ATTRIBUTE14,
284          ATTRIBUTE15,
285          XPRT_VALUE_SET_NAME,
286          LINE_LEVEL_FLAG,
287          PROCEDURE_NAME,
288          VARIABLE_SOURCE
289        from OKC_BUS_VARIABLES_B
290        where VARIABLE_CODE = X_VARIABLE_CODE
291        for update of VARIABLE_CODE nowait;
292      recinfo c%rowtype;
293 
294      cursor c1 is select
295          VARIABLE_NAME,
296          DESCRIPTION,
297          decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
298        from OKC_BUS_VARIABLES_TL
299        where VARIABLE_CODE = X_VARIABLE_CODE
300        and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
301        for update of VARIABLE_CODE nowait;
302    begin
303      open c;
304      fetch c into recinfo;
305      if (c%notfound) then
306        close c;
307        fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
308        app_exception.raise_exception;
309      end if;
310      close c;
311      if (    ((recinfo.VARIABLE_DEFAULT_VALUE = X_VARIABLE_DEFAULT_VALUE)
312               OR ((recinfo.VARIABLE_DEFAULT_VALUE is null) AND (X_VARIABLE_DEFAULT_VALUE is null)))
313          AND ((recinfo.VARIABLE_DATATYPE = X_VARIABLE_DATATYPE)
314               OR ((recinfo.VARIABLE_DATATYPE is null) AND (X_VARIABLE_DATATYPE is null)))
315          AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
316          AND (recinfo.VARIABLE_TYPE = X_VARIABLE_TYPE)
317          AND (recinfo.EXTERNAL_YN = X_EXTERNAL_YN)
318          AND ((recinfo.APPLICATION_ID = X_APPLICATION_ID)
319               OR ((recinfo.APPLICATION_ID is null) AND (X_APPLICATION_ID is null)))
320          AND (recinfo.VARIABLE_INTENT = X_VARIABLE_INTENT)
321          AND (recinfo.CONTRACT_EXPERT_YN = X_CONTRACT_EXPERT_YN)
322          AND (recinfo.DISABLED_YN = X_DISABLED_YN)
323          AND ((recinfo.VALUE_SET_ID = X_VALUE_SET_ID)
324               OR ((recinfo.VALUE_SET_ID is null) AND (X_VALUE_SET_ID is null)))
325          AND ((recinfo.ORIG_SYSTEM_REFERENCE_CODE = X_ORIG_SYSTEM_REFERENCE_CODE)
326               OR ((recinfo.ORIG_SYSTEM_REFERENCE_CODE is null) AND (X_ORIG_SYSTEM_REFERENCE_CODE is null)))
327          AND ((recinfo.ORIG_SYSTEM_REFERENCE_ID1 = X_ORIG_SYSTEM_REFERENCE_ID1)
328               OR ((recinfo.ORIG_SYSTEM_REFERENCE_ID1 is null) AND (X_ORIG_SYSTEM_REFERENCE_ID1 is null)))
329          AND ((recinfo.ORIG_SYSTEM_REFERENCE_ID2 = X_ORIG_SYSTEM_REFERENCE_ID2)
330               OR ((recinfo.ORIG_SYSTEM_REFERENCE_ID2 is null) AND (X_ORIG_SYSTEM_REFERENCE_ID2 is null)))
331          AND ((recinfo.DATE_PUBLISHED = X_DATE_PUBLISHED)
332               OR ((recinfo.DATE_PUBLISHED is null) AND (X_DATE_PUBLISHED is null)))
333          AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
334               OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
335          AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
336               OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
337          AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
338               OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
339          AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
340               OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
341          AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
342               OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
343          AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
344               OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
345          AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
346               OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
347          AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
348               OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
349          AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
350               OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
351          AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
352               OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
353          AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
354               OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
355          AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
356               OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
357          AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
358               OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
359          AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
360               OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
361          AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
362               OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
363          AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
364               OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
365 	 AND ((recinfo.XPRT_VALUE_SET_NAME = X_XPRT_VALUE_SET_NAME)
366               OR ((recinfo.XPRT_VALUE_SET_NAME is null) AND (X_XPRT_VALUE_SET_NAME is null)))
367 	 AND ((recinfo.LINE_LEVEL_FLAG = X_LINE_LEVEL_FLAG)
368               OR ((recinfo.LINE_LEVEL_FLAG is null) AND (X_LINE_LEVEL_FLAG is null)))
369      AND ((recinfo.PROCEDURE_NAME = X_PROCEDURE_NAME)
370               OR ((recinfo.PROCEDURE_NAME is null) AND (X_PROCEDURE_NAME is null)))
371      AND ((recinfo.VARIABLE_SOURCE = X_VARIABLE_SOURCE)
372               OR ((recinfo.VARIABLE_SOURCE is null) AND (X_VARIABLE_SOURCE is null)))
373      ) then
374        null;
375      else
376        fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
377        app_exception.raise_exception;
378      end if;
379 
380      for tlinfo in c1 loop
381        if (tlinfo.BASELANG = 'Y') then
382           if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
383                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
384           AND (tlinfo.VARIABLE_NAME = X_VARIABLE_NAME)
385           ) then
386            null;
387          else
388            fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
389            app_exception.raise_exception;
390          end if;
391        end if;
392      end loop;
393      return;
394    end LOCK_ROW;
395 
396    procedure UPDATE_ROW (
397      X_VARIABLE_CODE in VARCHAR2,
398      X_VARIABLE_DEFAULT_VALUE in VARCHAR2,
399      X_VARIABLE_DATATYPE in VARCHAR2,
400      X_OBJECT_VERSION_NUMBER in NUMBER,
401      X_VARIABLE_TYPE in VARCHAR2,
402      X_EXTERNAL_YN in VARCHAR2,
403      X_APPLICATION_ID in NUMBER,
404      X_VARIABLE_INTENT in VARCHAR2,
405      X_CONTRACT_EXPERT_YN in VARCHAR2,
406      X_DISABLED_YN in VARCHAR2,
407      X_VALUE_SET_ID in NUMBER,
408      X_ORIG_SYSTEM_REFERENCE_CODE in VARCHAR2,
409 	X_ORIG_SYSTEM_REFERENCE_ID1 in VARCHAR2,
410 	X_ORIG_SYSTEM_REFERENCE_ID2 in VARCHAR2,
411 	X_DATE_PUBLISHED in DATE,
412      X_ATTRIBUTE_CATEGORY in VARCHAR2,
413      X_ATTRIBUTE1 in VARCHAR2,
414      X_ATTRIBUTE2 in VARCHAR2,
415      X_ATTRIBUTE3 in VARCHAR2,
416      X_ATTRIBUTE4 in VARCHAR2,
417      X_ATTRIBUTE5 in VARCHAR2,
418      X_ATTRIBUTE6 in VARCHAR2,
419      X_ATTRIBUTE7 in VARCHAR2,
420      X_ATTRIBUTE8 in VARCHAR2,
421      X_ATTRIBUTE9 in VARCHAR2,
422      X_ATTRIBUTE10 in VARCHAR2,
423      X_ATTRIBUTE11 in VARCHAR2,
424      X_ATTRIBUTE12 in VARCHAR2,
425      X_ATTRIBUTE13 in VARCHAR2,
426      X_ATTRIBUTE14 in VARCHAR2,
427      X_ATTRIBUTE15 in VARCHAR2,
428      X_VARIABLE_NAME in VARCHAR2,
429      X_DESCRIPTION in VARCHAR2,
430      X_LAST_UPDATE_DATE in DATE,
431      X_LAST_UPDATED_BY in NUMBER,
432      X_LAST_UPDATE_LOGIN in NUMBER,
433      X_XPRT_VALUE_SET_NAME in VARCHAR2,
434      X_LINE_LEVEL_FLAG in VARCHAR2,
435      X_PROCEDURE_NAME in VARCHAR2,
436      X_VARIABLE_SOURCE in VARCHAR2
437    ) is
438      L_VARIABLE_DATATYPE OKC_BUS_VARIABLES_B.VARIABLE_DATATYPE%TYPE;
439    begin
440      L_VARIABLE_DATATYPE :=
441 	           Resolve_Var_Data_Type(X_VALUE_SET_ID,X_VARIABLE_TYPE,X_VARIABLE_DATATYPE);
442      update OKC_BUS_VARIABLES_B set
443        VARIABLE_DEFAULT_VALUE = X_VARIABLE_DEFAULT_VALUE,
444        VARIABLE_DATATYPE = L_VARIABLE_DATATYPE,
445        OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
446        VARIABLE_TYPE = X_VARIABLE_TYPE,
447        EXTERNAL_YN = X_EXTERNAL_YN,
448        APPLICATION_ID = X_APPLICATION_ID,
449        VARIABLE_INTENT = X_VARIABLE_INTENT,
450        CONTRACT_EXPERT_YN = X_CONTRACT_EXPERT_YN,
451        DISABLED_YN = X_DISABLED_YN,
452        VALUE_SET_ID = X_VALUE_SET_ID,
453        ORIG_SYSTEM_REFERENCE_CODE = X_ORIG_SYSTEM_REFERENCE_CODE,
454 	  ORIG_SYSTEM_REFERENCE_ID1  = X_ORIG_SYSTEM_REFERENCE_ID1,
455 	  ORIG_SYSTEM_REFERENCE_ID2  = X_ORIG_SYSTEM_REFERENCE_ID2,
456 	  DATE_PUBLISHED = X_DATE_PUBLISHED,
457        ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
458        ATTRIBUTE1 = X_ATTRIBUTE1,
459        ATTRIBUTE2 = X_ATTRIBUTE2,
460        ATTRIBUTE3 = X_ATTRIBUTE3,
461        ATTRIBUTE4 = X_ATTRIBUTE4,
462        ATTRIBUTE5 = X_ATTRIBUTE5,
463        ATTRIBUTE6 = X_ATTRIBUTE6,
464        ATTRIBUTE7 = X_ATTRIBUTE7,
465        ATTRIBUTE8 = X_ATTRIBUTE8,
466        ATTRIBUTE9 = X_ATTRIBUTE9,
467        ATTRIBUTE10 = X_ATTRIBUTE10,
468        ATTRIBUTE11 = X_ATTRIBUTE11,
469        ATTRIBUTE12 = X_ATTRIBUTE12,
470        ATTRIBUTE13 = X_ATTRIBUTE13,
471        ATTRIBUTE14 = X_ATTRIBUTE14,
472        ATTRIBUTE15 = X_ATTRIBUTE15,
473        LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
474        LAST_UPDATED_BY = X_LAST_UPDATED_BY,
475        LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
476        XPRT_VALUE_SET_NAME =X_XPRT_VALUE_SET_NAME,
477        LINE_LEVEL_FLAG = X_LINE_LEVEL_FLAG,
478        PROCEDURE_NAME = X_PROCEDURE_NAME,
479        VARIABLE_SOURCE = X_VARIABLE_SOURCE
480      where VARIABLE_CODE = X_VARIABLE_CODE;
481 
482      if (sql%notfound) then
483        raise no_data_found;
484      end if;
485 
486      update OKC_BUS_VARIABLES_TL set
487        VARIABLE_NAME = X_VARIABLE_NAME,
488        DESCRIPTION = X_DESCRIPTION,
489        LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
490        LAST_UPDATED_BY = X_LAST_UPDATED_BY,
491        LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
492        SOURCE_LANG = userenv('LANG')
493      where VARIABLE_CODE = X_VARIABLE_CODE
494      and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
495 
496      if (sql%notfound) then
497        raise no_data_found;
498      end if;
499    end UPDATE_ROW;
500 
501    procedure DELETE_ROW (
502      X_VARIABLE_CODE in VARCHAR2
503    ) is
504    l_existing_variables_tbl     variable_code_tbl_type;
505 
506    CURSOR variable_doc_assoc_csr (cp_variable_code IN VARCHAR) IS
507           SELECT VARIABLE_CODE FROM OKC_VARIABLE_DOC_TYPES
508              WHERE VARIABLE_CODE = cp_variable_code;
509    begin
510      delete from OKC_BUS_VARIABLES_TL
511      where VARIABLE_CODE = X_VARIABLE_CODE;
512 
513      if (sql%notfound) then
514       raise no_data_found;
515 
516      end if;
517 
518      delete from OKC_BUS_VARIABLES_B
519      where VARIABLE_CODE = X_VARIABLE_CODE;
520 
521      if (sql%notfound) then
522       raise no_data_found;
523      end if;
524 
525      OPEN  variable_doc_assoc_csr(X_VARIABLE_CODE);
526           FETCH variable_doc_assoc_csr BULK COLLECT INTO l_existing_variables_tbl;
527           CLOSE  variable_doc_assoc_csr;
528 
529             IF l_existing_variables_tbl.COUNT > 0 Then
530               FORALL i in l_existing_variables_tbl.FIRST .. l_existing_variables_tbl.LAST
531                 DELETE FROM OKC_VARIABLE_DOC_TYPES
532                  WHERE VARIABLE_CODE = l_existing_variables_tbl(i);
533                 END IF;
534 
535 
536     EXCEPTION
537     WHEN NO_DATA_FOUND
538     THEN
539        Okc_Api.Set_Message(G_APP_NAME, 'OKC_ART_VAR_DEL_ERROR');
540      WHEN OTHERS THEN
541       IF (l_debug = 'Y') THEN
542         okc_debug.log('1750: Leaving DELETE_ROW in OKC_BUSINESS_VARIABLES_PVT because of EXCEPTION: '||sqlerrm, 2);
543       END IF;
544       Okc_Api.Set_Message(p_app_name     => G_APP_NAME,
545                         p_msg_name     => G_UNEXPECTED_ERROR,
546                         p_token1       => G_SQLCODE_TOKEN,
547                         p_token1_value => sqlcode,
548                         p_token2       => G_SQLERRM_TOKEN,
549                         p_token2_value => sqlerrm);
550 
551       IF variable_doc_assoc_csr%ISOPEN THEN
552         CLOSE variable_doc_assoc_csr;
553       END IF;
554    end DELETE_ROW;
555 
556    procedure ADD_LANGUAGE
557    is
558    begin
559      delete from OKC_BUS_VARIABLES_TL T
560      where not exists
561        (select NULL
562        from OKC_BUS_VARIABLES_B B
563        where B.VARIABLE_CODE = T.VARIABLE_CODE
564        );
565 
566      update OKC_BUS_VARIABLES_TL T set (
567          VARIABLE_NAME,
568          DESCRIPTION
569        ) = (select
570          B.VARIABLE_NAME,
571          B.DESCRIPTION
572        from OKC_BUS_VARIABLES_TL B
573        where B.VARIABLE_CODE = T.VARIABLE_CODE
574        and B.LANGUAGE = T.SOURCE_LANG)
575      where (
576          T.VARIABLE_CODE,
577          T.LANGUAGE
578      ) in (select
579          SUBT.VARIABLE_CODE,
580          SUBT.LANGUAGE
581        from OKC_BUS_VARIABLES_TL SUBB, OKC_BUS_VARIABLES_TL SUBT
582        where SUBB.VARIABLE_CODE = SUBT.VARIABLE_CODE
583        and SUBB.LANGUAGE = SUBT.SOURCE_LANG
584        and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
585          or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
586          or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
587          or SUBB.VARIABLE_NAME <> SUBT.VARIABLE_NAME
588         ));
589 
590      insert into OKC_BUS_VARIABLES_TL (
591        VARIABLE_CODE,
592        VARIABLE_NAME,
593        DESCRIPTION,
594        CREATED_BY,
595        CREATION_DATE,
596        LAST_UPDATE_DATE,
597        LAST_UPDATED_BY,
598        LAST_UPDATE_LOGIN,
599        LANGUAGE,
600        SOURCE_LANG
601      ) select
602        B.VARIABLE_CODE,
603        B.VARIABLE_NAME,
604        B.DESCRIPTION,
605        B.CREATED_BY,
606        B.CREATION_DATE,
607        B.LAST_UPDATE_DATE,
608        B.LAST_UPDATED_BY,
609        B.LAST_UPDATE_LOGIN,
610        L.LANGUAGE_CODE,
611        B.SOURCE_LANG
612      from OKC_BUS_VARIABLES_TL B, FND_LANGUAGES L
613      where L.INSTALLED_FLAG in ('I', 'B')
614      and B.LANGUAGE = userenv('LANG')
615      and not exists
616        (select NULL
617        from OKC_BUS_VARIABLES_TL T
618        where T.VARIABLE_CODE = B.VARIABLE_CODE
619        and T.LANGUAGE = L.LANGUAGE_CODE);
620    end ADD_LANGUAGE;
621 
622 
623 
624 
625 
626 END OKC_BUSINESS_VARIABLES_PVT;
627